+ self._attach(name, vim_account)
+ self._update_ro_accounts()
+
+ def _update_ro_accounts(self):
+ get_ro_accounts = self._http.get_cmd(
+ "api/operational/{}ro-account".format(self._client.so_rbac_project_path)
+ )
+ if not get_ro_accounts or "rw-ro-account:ro-account" not in get_ro_accounts:
+ return
+ for account in get_ro_accounts["rw-ro-account:ro-account"]["account"]:
+ if account["ro-account-type"] == "openmano":
+ # Refresh the Account Status
+ refresh_body = {
+ "input": {
+ "ro-account": account["name"],
+ "project-name": self._client._so_project,
+ }
+ }
+ refresh_status = self._http.post_cmd(
+ "api/operations/update-ro-account-status", refresh_body
+ )
+ if refresh_status and "error" in refresh_status:
+ raise ClientException("Failed to refersh RO Account Status")
+
+ def update_vim_account_dict(self, vim_account, vim_access, vim_config):
+ if vim_access["vim-type"] == "vmware":
+ if "admin_username" in vim_config:
+ vim_account["datacenter"]["admin_username"] = vim_config[
+ "admin_username"
+ ]
+ if "admin_password" in vim_config:
+ vim_account["datacenter"]["admin_password"] = vim_config[
+ "admin_password"
+ ]
+ if "nsx_manager" in vim_config:
+ vim_account["datacenter"]["nsx_manager"] = vim_config["nsx_manager"]
+ if "nsx_user" in vim_config:
+ vim_account["datacenter"]["nsx_user"] = vim_config["nsx_user"]
+ if "nsx_password" in vim_config:
+ vim_account["datacenter"]["nsx_password"] = vim_config["nsx_password"]
+ if "orgname" in vim_config:
+ vim_account["datacenter"]["orgname"] = vim_config["orgname"]
+ if "vcenter_ip" in vim_config:
+ vim_account["datacenter"]["vcenter_ip"] = vim_config["vcenter_ip"]
+ if "vcenter_user" in vim_config:
+ vim_account["datacenter"]["vcenter_user"] = vim_config["vcenter_user"]
+ if "vcenter_password" in vim_config:
+ vim_account["datacenter"]["vcenter_password"] = vim_config[
+ "vcenter_password"
+ ]
+ if "vcenter_port" in vim_config:
+ vim_account["datacenter"]["vcenter_port"] = vim_config["vcenter_port"]
+ vim_account["datacenter"]["vim_url"] = vim_access["vim-url"]
+ vim_account["datacenter"]["vim_url_admin"] = vim_access["vim-url"]
+ vim_account["datacenter"]["description"] = vim_access["description"]
+ vim_account["datacenter"]["vim_username"] = vim_access["vim-username"]
+ vim_account["datacenter"]["vim_password"] = vim_access["vim-password"]
+ vim_account["datacenter"]["vim_tenant_name"] = vim_access["vim-tenant-name"]
+ else:
+ vim_account["datacenter"]["vim_url"] = vim_access["vim-url"]
+ vim_account["datacenter"]["vim_url_admin"] = vim_access["vim-url"]
+ vim_account["datacenter"]["description"] = vim_access["description"]
+ vim_account["datacenter"]["vim_username"] = vim_access["vim-username"]
+ vim_account["datacenter"]["vim_password"] = vim_access["vim-password"]
+ vim_account["datacenter"]["vim_tenant_name"] = vim_access["vim-tenant-name"]
+ return vim_account