X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fv1%2Fvnfd.py;h=dd3b11740567d5e7222da692878a8a47fa91c464;hb=91b80f35e103943adb4ebbdee890e23131488e57;hp=5b2c5eea828858c9c1fb3dbafa8368c0734f8800;hpb=e84eb31aded0cb62a5523422ddc4524f6e615209;p=osm%2Fosmclient.git diff --git a/osmclient/v1/vnfd.py b/osmclient/v1/vnfd.py index 5b2c5ee..dd3b117 100644 --- a/osmclient/v1/vnfd.py +++ b/osmclient/v1/vnfd.py @@ -18,29 +18,39 @@ 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'])) + 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))