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
+
+ def get_vca_id(vca):
+ vca = self._client.vca.get(vca)
+ if vca is None:
+ raise NotFound("cannot find vca '{}'".format(vca))
+ return vca["_id"]
+
self._logger.debug("")
self._client.get_token()
+ if "vca" in vim_access:
+ vca_id = get_vca_id(vim_access["vca"])
if "vim-type" not in vim_access:
# 'openstack' not in vim_access['vim-type']):
raise Exception("vim type not provided")
-
vim_account = {}
vim_account["name"] = name
vim_account = self.update_vim_account_dict(vim_account, vim_access)
-
- vim_config = {}
- if "config" in vim_access and vim_access["config"] is not None:
- vim_config = yaml.safe_load(vim_access["config"])
+ if vca_id:
+ vim_account["vca"] = vca_id
+ vim_config = config
if sdn_controller:
sdnc = self._client.sdnc.get(sdn_controller)
vim_config["sdn-controller"] = sdnc["_id"]
# 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
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):