X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fv1%2Fvnfd.py;h=e43475d3e1ce07d21186f895b76cdc0db72f84dc;hb=refs%2Fchanges%2F33%2F11033%2F6;hp=5b2c5eea828858c9c1fb3dbafa8368c0734f8800;hpb=e84eb31aded0cb62a5523422ddc4524f6e615209;p=osm%2Fosmclient.git diff --git a/osmclient/v1/vnfd.py b/osmclient/v1/vnfd.py index 5b2c5ee..e43475d 100644 --- a/osmclient/v1/vnfd.py +++ b/osmclient/v1/vnfd.py @@ -18,29 +18,42 @@ OSM vnfd API handling """ -from osmclient.common.exceptions import NotFound +from osmclient.common.exceptions import NotFound from osmclient.common.exceptions import ClientException class Vnfd(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/vnfd-catalog/vnfd') - if resp and 'vnfd:vnfd' in resp: - return resp['vnfd:vnfd'] + resp = self._http.get_cmd( + "api/running/{}vnfd-catalog/vnfd".format(self._client.so_rbac_project_path) + ) + + if self._client._so_version == "v3": + if resp and "project-vnfd:vnfd" in resp: + return resp["project-vnfd:vnfd"] + else: + # Backwards Compatibility + if resp and "vnfd:vnfd" in resp: + return resp["vnfd:vnfd"] + return list() - def get(self,name): + def get(self, name): for vnfd in self.list(): - if name == vnfd['name']: - return vnfd + if name == vnfd["name"]: + return vnfd raise NotFound("vnfd {} not found".format(name)) - def delete(self,vnfd_name): - vnfd=self.get(vnfd_name) - resp=self._http.delete_cmd('api/running/vnfd-catalog/vnfd/{}'.format(vnfd['id'])) - if 'success' not in resp: + def delete(self, vnfd_name): + vnfd = self.get(vnfd_name) + resp = self._http.delete_cmd( + "api/running/{}vnfd-catalog/vnfd/{}".format( + self._client.so_rbac_project_path, vnfd["id"] + ) + ) + if "success" not in resp: raise ClientException("failed to delete vnfd {}".format(vnfd_name))