X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fsol005%2Fvim.py;h=4962a912cd6226a3d9ee8a8ab37196653d3c23ed;hb=bbeda5dd93453c359da0f754f73c369e3ddfc385;hp=8b11c8dd3f7534cf3476f99f2acbb11bc154d956;hpb=961145b6c1ab65c8cc5953aae008781e285c1461;p=osm%2Fosmclient.git diff --git a/osmclient/sol005/vim.py b/osmclient/sol005/vim.py index 8b11c8d..4962a91 100644 --- a/osmclient/sol005/vim.py +++ b/osmclient/sol005/vim.py @@ -70,7 +70,13 @@ class Vim(object): return "" def create( - self, name, vim_access, sdn_controller=None, sdn_port_mapping=None, wait=False + self, + name, + vim_access, + config={}, + sdn_controller=None, + sdn_port_mapping=None, + wait=False, ): vca_id = None @@ -92,9 +98,7 @@ class Vim(object): vim_account = self.update_vim_account_dict(vim_account, vim_access) if vca_id: vim_account["vca"] = vca_id - vim_config = {} - if "config" in vim_access and vim_access["config"] is not None: - vim_config = yaml.safe_load(vim_access["config"]) + vim_config = config if sdn_controller: sdnc = self._client.sdnc.get(sdn_controller) vim_config["sdn-controller"] = sdnc["_id"] @@ -129,22 +133,26 @@ class Vim(object): # raise ClientException("failed to create vim {} - {}".format(name, msg)) def update( - self, vim_name, vim_account, sdn_controller, sdn_port_mapping, wait=False + self, + vim_name, + vim_account, + config, + sdn_controller, + sdn_port_mapping, + wait=False, ): self._logger.debug("") self._client.get_token() vim = self.get(vim_name) vim_id_for_wait = self._get_id_for_wait(vim_name) vim_config = {} - if "config" in vim_account: - if vim_account.get("config") == "" and (sdn_controller or sdn_port_mapping): + if config is not None: + if not config and (sdn_controller or sdn_port_mapping): + # If config is empty (clearing config) raise ClientException( "clearing config is incompatible with updating SDN info" ) - if vim_account.get("config") == "": - vim_config = None - else: - vim_config = yaml.safe_load(vim_account["config"]) + vim_config = config if sdn_controller == "": vim_config["sdn-controller"] = None vim_config["sdn-port-mapping"] = None @@ -185,10 +193,12 @@ class Vim(object): self._logger.debug("") vim_account["vim_type"] = vim_access["vim-type"] vim_account["description"] = vim_access["description"] - vim_account["vim_url"] = vim_access["vim-url"] - vim_account["vim_user"] = vim_access["vim-username"] - vim_account["vim_password"] = vim_access["vim-password"] - vim_account["vim_tenant_name"] = vim_access["vim-tenant-name"] + vim_account["vim_url"] = vim_access["vim-url"] or "null" + vim_account["vim_user"] = vim_access["vim-username"] or "null" + vim_account["vim_password"] = vim_access["vim-password"] or "null" + vim_account["vim_tenant_name"] = vim_access["vim-tenant-name"] or "null" + if "prometheus-config" in vim_access: + vim_account["prometheus-config"] = vim_access["prometheus-config"] return vim_account def get_id(self, name):