X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fsol005%2Fsdncontroller.py;h=5b85ef46a36d91f2fefcaafcfed32cdb2631c006;hb=refs%2Fchanges%2F38%2F8738%2F9;hp=35ad9ee2a569a70826015c2e2eb77acae42b485d;hpb=bd39b09580560307a1ac23be4984783d1bea9238;p=osm%2Fosmclient.git diff --git a/osmclient/sol005/sdncontroller.py b/osmclient/sol005/sdncontroller.py index 35ad9ee..5b85ef4 100644 --- a/osmclient/sol005/sdncontroller.py +++ b/osmclient/sol005/sdncontroller.py @@ -24,6 +24,7 @@ from osmclient.common.exceptions import ClientException from osmclient.common.exceptions import NotFound import json import logging +import yaml class SdnController(object): @@ -38,16 +39,18 @@ class SdnController(object): self._apiVersion, self._apiResource) # SDNC '--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, '/sdns') # Wait for status for SDN instance creation/update/deletion + if isinstance(wait_time, bool): + wait_time = WaitForStatus.TIMEOUT_SDNC_OPERATION WaitForStatus.wait_for_status( 'SDNC', str(id), - WaitForStatus.TIMEOUT_SDNC_OPERATION, + wait_time, apiUrlStatus, self._http.get2_cmd, deleteFlag=deleteFlag) @@ -66,6 +69,8 @@ class SdnController(object): def create(self, name, sdn_controller, wait=False): self._logger.debug("") + if 'config' in sdn_controller and isinstance(sdn_controller["config"], str): + sdn_controller["config"] = yaml.safe_load(sdn_controller["config"]) self._client.get_token() http_code, resp = self._http.post_cmd(endpoint=self._apiBase, postfields_dict=sdn_controller) @@ -79,7 +84,7 @@ class SdnController(object): resp)) if wait: # Wait for status for SDNC instance creation - self._wait(resp.get('id')) + self._wait(resp.get('id'), wait) print(resp['id']) #else: # msg = "" @@ -92,6 +97,8 @@ class SdnController(object): def update(self, name, sdn_controller, wait=False): self._logger.debug("") + if 'config' in sdn_controller and isinstance(sdn_controller["config"], str): + sdn_controller["config"] = yaml.safe_load(sdn_controller["config"]) self._client.get_token() sdnc = self.get(name) sdnc_id_for_wait = self._get_id_for_wait(name) @@ -105,7 +112,7 @@ class SdnController(object): # Use the previously obtained id instead. wait_id = sdnc_id_for_wait # Wait for status for VI instance update - self._wait(wait_id) + self._wait(wait_id, wait) # else: # pass #else: @@ -132,7 +139,7 @@ class SdnController(object): if http_code == 202: if wait: # Wait for status for SDNC instance deletion - self._wait(sdnc_id_for_wait, deleteFlag=True) + self._wait(sdnc_id_for_wait, wait, deleteFlag=True) else: print('Deletion in progress') elif http_code == 204: