X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fv1%2Fvim.py;h=dd6a5e03387fae0806d1765cf53317cab89bbfc8;hb=7a1d77c2e4a74d7b24ef6644a032841d514c06d9;hp=d8a98355cde6ecf142a8a3a5f117c5cf8a071d16;hpb=b4b793f9f3ddb6e6fec93530a37e6f00cf0f4e84;p=osm%2Fosmclient.git diff --git a/osmclient/v1/vim.py b/osmclient/v1/vim.py index d8a9835..dd6a5e0 100644 --- a/osmclient/v1/vim.py +++ b/osmclient/v1/vim.py @@ -20,7 +20,8 @@ OSM vim API handling from osmclient.common.exceptions import ClientException from osmclient.common.exceptions import NotFound -import json +import yaml +import time class Vim(object): @@ -64,17 +65,8 @@ class Vim(object): vim_account['datacenter']['type'] = vim_access['vim-type'] vim_config = {} - vim_config['use_floating_ip'] = False - - if ('floating_ip_pool' in vim_access and - vim_access['floating_ip_pool'] is not None): - vim_config['use_floating_ip'] = True - - if 'keypair' in vim_access and vim_access['keypair'] is not None: - vim_config['keypair'] = vim_access['keypair'] - elif 'config' in vim_access and vim_access['config'] is not None: - if any(var in vim_access['config'] for var in ["admin_password","admin_username","orgname","nsx_user","nsx_password","nsx_manager","vcenter_ip","vcenter_port","vcenter_user","vcenter_password"]): - vim_config = json.loads(vim_access['config']) + if 'config' in vim_access and vim_access['config'] is not None: + vim_config = yaml.load(vim_access['config']) vim_account['datacenter']['config'] = vim_config @@ -155,8 +147,13 @@ class Vim(object): raise ClientException("failed to delete vim {} - {}".format(vim_name, resp)) self._update_ro_accounts() - def list(self): - self._update_ro_accounts() + def list(self, ro_update): + if ro_update: + self._update_ro_accounts() + # the ro_update needs to be made synchronous, for now this works around the issue + # and waits a resonable amount of time for the update to finish + time.sleep(2) + if self._client._so_version == 'v3': resp = self._http.get_cmd('v1/api/operational/{}ro-account-state' .format(self._client.so_rbac_project_path))