update vim config
[osm/osmclient.git] / osmclient / v1 / vim.py
index d8a9835..dd6a5e0 100644 (file)
@@ -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))