X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fsol005%2Fnsi.py;h=20065b72ee5354bfde2bab55897347c3c3fb540a;hb=91f93e9042e27846474213b231f4319d7c08bb40;hp=b582ae1ab1ec664ee0285b336d4c3ba655d6e6f2;hpb=70d6f1843686f323ced68a253127fedde86a1c25;p=osm%2Fosmclient.git diff --git a/osmclient/sol005/nsi.py b/osmclient/sol005/nsi.py index b582ae1..20065b7 100644 --- a/osmclient/sol005/nsi.py +++ b/osmclient/sol005/nsi.py @@ -22,7 +22,6 @@ from osmclient.common import utils from osmclient.common import wait as WaitForStatus from osmclient.common.exceptions import ClientException from osmclient.common.exceptions import NotFound -from osmclient.common.exceptions import OsmHttpException import yaml import json import logging @@ -41,16 +40,18 @@ class Nsi(object): self._apiVersion, self._apiResource) # NSI '--wait' option - def _wait(self, id, deleteFlag=False): + def _wait(self, id, wait_time, deleteFlag=False): self._logger.debug("") self._client.get_token() # Endpoint to get operation status apiUrlStatus = '{}{}{}'.format(self._apiName, self._apiVersion, '/nsi_lcm_op_occs') # Wait for status for NSI instance creation/update/deletion + if isinstance(wait_time, bool): + wait_time = WaitForStatus.TIMEOUT_NSI_OPERATION WaitForStatus.wait_for_status( 'NSI', str(id), - WaitForStatus.TIMEOUT_NSI_OPERATION, + wait_time, apiUrlStatus, self._http.get2_cmd, deleteFlag=deleteFlag) @@ -92,11 +93,14 @@ class Nsi(object): if name == nsi['name']: nsi_id = nsi['_id'] break - _, resp = self._http.get2_cmd('{}/{}'.format(self._apiBase, nsi_id)) - #resp = self._http.get_cmd('{}/{}/nsd_content'.format(self._apiBase, nsi_id)) - #print(yaml.safe_dump(resp)) - if resp: - return json.loads(resp) + try: + _, resp = self._http.get2_cmd('{}/{}'.format(self._apiBase, nsi_id)) + #resp = self._http.get_cmd('{}/{}/nsd_content'.format(self._apiBase, nsi_id)) + #print(yaml.safe_dump(resp)) + if resp: + return json.loads(resp) + except NotFound: + raise NotFound("nsi '{}' not found".format(name)) raise NotFound("nsi {} not found".format(name)) def delete(self, name, force=False, wait=False): @@ -114,19 +118,19 @@ class Nsi(object): resp = json.loads(resp) # Wait for status for NSI instance deletion # For the 'delete' operation, '_id' is used - self._wait(resp.get('_id'), deleteFlag=True) + self._wait(resp.get('_id'), wait, deleteFlag=True) else: print('Deletion in progress') elif http_code == 204: print('Deleted') else: - msg = "" - if resp: - try: - msg = json.loads(resp) - except ValueError: - msg = resp - raise OsmHttpException("failed to delete nsi {} - {}".format(name, msg)) + msg = resp or "" + # if resp: + # try: + # msg = json.loads(resp) + # except ValueError: + # msg = resp + raise ClientException("failed to delete nsi {} - {}".format(name, msg)) def create(self, nst_name, nsi_name, account, config=None, ssh_keys=None, description='default description', @@ -191,7 +195,7 @@ class Nsi(object): vim_network_name_dict[get_vim_account_id(vim_account)] = vim_net vld["vim-network-name"] = vim_network_name_dict if "vnf" in nssubnet: - for vnf in nsi_config["vnf"]: + for vnf in nssubnet["vnf"]: if vnf.get("vim_account"): vnf["vimAccountId"] = get_vim_account_id(vnf.pop("vim_account")) nsi["netslice-subnet"] = nsi_config["netslice-subnet"] @@ -238,7 +242,7 @@ class Nsi(object): resp)) if wait: # Wait for status for NSI instance creation - self._wait(resp.get('nsilcmop_id')) + self._wait(resp.get('nsilcmop_id'), wait) print(resp['id']) #else: # msg = "" @@ -253,7 +257,7 @@ class Nsi(object): nsi_name, nst_name, str(exc)) - raise OsmHttpException(message) + raise ClientException(message) def list_op(self, name, filter=None): """Returns the list of operations of a NSI @@ -267,7 +271,7 @@ class Nsi(object): filter_string = '' if filter: filter_string = '&{}'.format(filter) - http_code, resp = self._http.get2_cmd('{}?netsliceInstanceId={}'.format( + http_code, resp = self._http.get2_cmd('{}?netsliceInstanceId={}{}'.format( self._apiBase, nsi['_id'], filter_string) ) #print('HTTP CODE: {}'.format(http_code)) @@ -291,7 +295,7 @@ class Nsi(object): message="failed to get operation list of NSI {}:\nerror:\n{}".format( name, str(exc)) - raise OsmHttpException(message) + raise ClientException(message) def get_op(self, operationId): """Returns the status of an operation @@ -324,7 +328,7 @@ class Nsi(object): message="failed to get status of operation {}:\nerror:\n{}".format( operationId, str(exc)) - raise OsmHttpException(message) + raise ClientException(message) def exec_op(self, name, op_name, op_data=None): """Executes an operation on a NSI @@ -360,5 +364,5 @@ class Nsi(object): message="failed to exec operation {}:\nerror:\n{}".format( name, str(exc)) - raise OsmHttpException(message) + raise ClientException(message)