Change in vdsm[master]: Fix getStorageDomainInfo() logic.

ewarszaw at redhat.com ewarszaw at redhat.com
Sun May 12 06:09:54 UTC 2013


Eduardo has uploaded a new change for review.

Change subject: Fix getStorageDomainInfo() logic.
......................................................................

Fix getStorageDomainInfo() logic.

Making repoStats pool independent.

Change-Id: I8b0b2ad3dca19cf203d937c1a9f6a12ab0f1095f
Signed-off-by: Eduardo <ewarszaw at redhat.com>
---
M vdsm/storage/hsm.py
1 file changed, 18 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/71/14671/1

diff --git a/vdsm/storage/hsm.py b/vdsm/storage/hsm.py
index c90ea07..9a44795 100644
--- a/vdsm/storage/hsm.py
+++ b/vdsm/storage/hsm.py
@@ -2664,17 +2664,26 @@
         # BC) so it's not that horrible. In any case please
         # remove this when we can stop supporting this API.
         info.update({'lver': -1, 'spm_id': -1, 'master_ver': 0})
-        if dom.getDomainRole() == sd.MASTER_DOMAIN:
-            # make sure it's THE master
+        if info['role'] == sd.MASTER_DOMAIN:
             try:
-                pool = self.getPool(dom.getPools()[0])
-                if pool.masterDomain.sdUUID == sdUUID:
-                    poolInfo = pool.getInfo()
-                    for key in ['lver', 'spm_id', 'master_ver']:
-                        info[key] = poolInfo['info'][key]
+                pool = self.getPool(info['pool'][0])
+            except IndexError:
+                self.log.error("Domain %s is marked as master but is not "
+                               "attached to any pool", sdUUID, exc_info=True)
             except se.StoragePoolUnknown:
-                # Its pool is not connected
-                pass
+                self.log.error("Domain %s, marked as master, is attached to "
+                               "pool %s but this host is connected to pool %s",
+                               sdUUID, pool.spUUID)
+            else:
+                # make sure it's THE master of this pool
+                if pool.masterDomain.sdUUID != sdUUID:
+                    self.log.error("Domain %s is marked as master but actual "
+                                   "master is %s",
+                                   sdUUID, pool.masterDomain.sdUUID)
+                else:
+                    poolInfo = pool.getInfo()
+                    for key in ('lver', 'spm_id', 'master_ver'):
+                        info[key] = poolInfo['info'][key]
 
         return dict(info=info)
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8b0b2ad3dca19cf203d937c1a9f6a12ab0f1095f
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Eduardo <ewarszaw at redhat.com>


More information about the vdsm-patches mailing list