Change in vdsm[master]: client: add the domainsMap in connectStoragePool

Federico Simoncelli fsimonce at redhat.com
Fri Feb 14 16:51:10 UTC 2014


Federico Simoncelli has uploaded a new change for review.

Change subject: client: add the domainsMap in connectStoragePool
......................................................................

client: add the domainsMap in connectStoragePool

Change-Id: I5c3037456ac045b7ac03043bb2f46ccd48b67045
Signed-off-by: Federico Simoncelli <fsimonce at redhat.com>
---
M client/vdsClient.py
1 file changed, 26 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/91/24491/1

diff --git a/client/vdsClient.py b/client/vdsClient.py
index 3868c6e..1b2c71a 100644
--- a/client/vdsClient.py
+++ b/client/vdsClient.py
@@ -822,15 +822,18 @@
             return res['status']['code'], res['status']['message']
         return 0, ''
 
+    def _parseDomainsMap(self, domMapString):
+        """
+        Parse domains map string: "sdUUID1=status1,sdUUID2=status2,..."
+        into a dictionary: {'sdUUID1': 'status1', 'sdUUID2': 'status2', ...}
+        """
+        return dict(x.split("=", 1) for x in domMapString.split(','))
+
     def reconstructMaster(self, args):
         spUUID = args[0]
         poolName = args[1]
         masterDom = args[2]
-        domList = args[3].split(",")
-        domDict = {}
-        for item in domList:
-            key, value = item.split('=')
-            domDict[key] = value
+        domDict = self._parseDomainsMap(args[3])
         mVer = int(args[4])
         if len(args) > 5:
             st = self.s.reconstructMaster(spUUID, poolName, masterDom, domDict,
@@ -875,18 +878,20 @@
         spUUID = args[0]
         ID = int(args[1])
         scsi_key = args[2]
-        if len(args) > 3:
-            master = args[3]
+        master = args[3] if len(args) > 3 else BLANK_UUID
+        master_ver = int(args[4]) if len(args) > 4 else -1
+
+        if len(args) > 5:
+            domainsMap = self._parseDomainsMap(args[5])
+            pool = self.s.connectStoragePool(
+                spUUID, ID, scsi_key, master, master_ver, domainsMap)
         else:
-            master = BLANK_UUID
-        if len(args) > 4:
-            master_ver = int(args[4])
-        else:
-            master_ver = -1
-        pool = self.s.connectStoragePool(spUUID, ID, scsi_key,
-                                         master, master_ver)
+            pool = self.s.connectStoragePool(
+                spUUID, ID, scsi_key, master, master_ver)
+
         if pool['status']['code']:
             return pool['status']['code'], pool['status']['message']
+
         return 0, ''
 
     def disconnectStoragePool(self, args):
@@ -2145,14 +2150,13 @@
                                 'only for the command line backward '
                                 'compatibility)'
                                 )),
-        'connectStoragePool': (serv.connectStoragePool,
-                               ('<spUUID> <id> <scsi-key> [masterUUID] '
-                                '[masterVer]',
-                                'Connect a Host to specific storage pool',
-                                'Parameter scsi-key is ignored (maintained '
-                                'only for the command line backward '
-                                'compatibility)'
-                                )),
+        'connectStoragePool': (serv.connectStoragePool, (
+            '<spUUID> <id> <scsi-key> [masterUUID] [masterVer] '
+            '[<domDict>({sdUUID1=status,sdUUID2=status,...})]',
+            'Connect a Host to specific storage pool',
+            'Parameter scsi-key is ignored (maintained only for the command '
+            'line backward compatibility)'
+        )),
         'disconnectStoragePool': (serv.disconnectStoragePool,
                                   ('<spUUID> <id> <scsi-key>',
                                    'Disconnect a Host from the specific '


-- 
To view, visit http://gerrit.ovirt.org/24491
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5c3037456ac045b7ac03043bb2f46ccd48b67045
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Federico Simoncelli <fsimonce at redhat.com>


More information about the vdsm-patches mailing list