X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fv1%2Fnsd.py;h=52c5772d8a69ee92198825f8c313e5de5cc14312;hb=6d10e04620f3985e23dcce03d366f5734ba72a7c;hp=c79ab271165e78c8b8c11f3c9a5c39b4f4847080;hpb=e84eb31aded0cb62a5523422ddc4524f6e615209;p=osm%2Fosmclient.git diff --git a/osmclient/v1/nsd.py b/osmclient/v1/nsd.py index c79ab27..52c5772 100644 --- a/osmclient/v1/nsd.py +++ b/osmclient/v1/nsd.py @@ -23,26 +23,38 @@ from osmclient.common.exceptions import ClientException class Nsd(object): - def __init__(self,http=None): - self._http=http + + def __init__(self, http=None, client=None): + self._http = http + self._client = client def list(self): - resp = self._http.get_cmd('api/running/nsd-catalog/nsd') - if resp and 'nsd:nsd' in resp: - return resp['nsd:nsd'] + resp = self._http.get_cmd('api/running/{}nsd-catalog/nsd' + .format(self._client.so_rbac_project_path)) + + if self._client._so_version == 'v3': + if resp and 'project-nsd:nsd' in resp: + return resp['project-nsd:nsd'] + else: + # Backwards Compatibility + if resp and 'nsd:nsd' in resp: + return resp['nsd:nsd'] + return list() - def get(self,name): + def get(self, name): for nsd in self.list(): - if name == nsd['name']: - return nsd - raise NotFound("cannot find nsd {}".format(name)) + if name == nsd['name']: + return nsd + raise NotFound("cannot find nsd {}".format(name)) - def delete(self,nsd_name): - nsd=self.get(nsd_name) + def delete(self, nsd_name): + nsd = self.get(nsd_name) if nsd is None: - raise NotFound("cannot find nsd {}".format(nsd_name)) + raise NotFound("cannot find nsd {}".format(nsd_name)) - resp=self._http.delete_cmd('api/running/nsd-catalog/nsd/{}'.format(nsd['id'])) + resp = self._http.delete_cmd( + 'api/running/{}nsd-catalog/nsd/{}' + .format(self._client.so_rbac_project_path, nsd['id'])) if 'success' not in resp: - raise ClientException("failed to delete nsd {}".format(nsd_name)) + raise ClientException("failed to delete nsd {}".format(nsd_name))