X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fv1%2Fnsd.py;h=527a45f009ab343ed22f89098eabe1d089c18c09;hb=4335f9962fec0516628b5d0b8337fc977e55669c;hp=c79ab271165e78c8b8c11f3c9a5c39b4f4847080;hpb=e84eb31aded0cb62a5523422ddc4524f6e615209;p=osm%2Fosmclient.git diff --git a/osmclient/v1/nsd.py b/osmclient/v1/nsd.py index c79ab27..527a45f 100644 --- a/osmclient/v1/nsd.py +++ b/osmclient/v1/nsd.py @@ -23,26 +23,40 @@ 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)) - - resp=self._http.delete_cmd('api/running/nsd-catalog/nsd/{}'.format(nsd['id'])) - if 'success' not in resp: - raise ClientException("failed to delete nsd {}".format(nsd_name)) + raise NotFound("cannot find nsd {}".format(nsd_name)) + + 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))