+ 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
+
+ def delete(self, vim_name):