Hello Dan Kenigsberg, Eduardo,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/20191
to review the following change.
Change subject: Read pool metadata once in StoragePool.getInfo()
......................................................................
Read pool metadata once in StoragePool.getInfo()
The behavioural change of spm_id should be safe since
StoragePool.getInfo() call in hsm.getStoragePoolInfo() is under
the (shared) pool lock making startSpm block in this host when
the info is retrieved.
Making repoStats pool independent.
Bug-Url:
https://bugzilla.redhat.com/show_bug.cgi?id=1019273
Change-Id: I41a79662a4bd01fc310aa5554c38a16f3f8ba546
Signed-off-by: Eduardo <ewarszaw(a)redhat.com>
Reviewed-on:
http://gerrit.ovirt.org/14672
Reviewed-by: Dan Kenigsberg <danken(a)redhat.com>
---
M vdsm/storage/sp.py
1 file changed, 15 insertions(+), 13 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/91/20191/1
diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py
index 8bab500..7dab69d 100644
--- a/vdsm/storage/sp.py
+++ b/vdsm/storage/sp.py
@@ -1496,26 +1496,28 @@
raise se.StoragePoolMasterNotFound(self.spUUID, msdUUID)
try:
- poolInfo = {
- 'type': msdInfo['type'],
- 'name': self.getDescription(),
- 'domains': domainListEncoder(self.getDomains()),
- 'master_uuid': msdUUID,
- 'master_ver': self.getMasterVersion(),
- 'lver': self.getMetaParam(PMDK_LVER),
- 'spm_id': self.getSpmId(),
- 'pool_status': 'uninitialized',
- 'version': str(self.getVersion()),
- 'isoprefix': '',
- }
+ pmd = self._getPoolMD(self.masterDomain)
except Exception:
self.log.error("Pool metadata error", exc_info=True)
raise se.StoragePoolActionError(self.spUUID)
+ poolInfo = {
+ 'type': msdInfo['type'],
+ 'name': pmd[PMDK_POOL_DESCRIPTION],
+ 'domains': domainListEncoder(pmd[PMDK_DOMAINS]),
+ 'master_uuid': self.masterDomain.sdUUID,
+ 'master_ver': pmd[PMDK_MASTER_VER],
+ 'lver': pmd[PMDK_LVER],
+ 'spm_id': pmd[PMDK_SPM_ID],
+ 'pool_status': 'uninitialized',
+ 'version': str(msdInfo['version']),
+ 'isoprefix': '',
+ }
+
domInfo = {}
repoStats = self.getRepoStats()
- for sdUUID, sdStatus in self.getDomains().iteritems():
+ for sdUUID, sdStatus in pmd[PMDK_DOMAINS].iteritems():
# Return statistics for active domains only
domInfo[sdUUID] = {'status': sdStatus, 'alerts': []}
--
To view, visit
http://gerrit.ovirt.org/20191
To unsubscribe, visit
http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I41a79662a4bd01fc310aa5554c38a16f3f8ba546
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-3.3
Gerrit-Owner: Federico Simoncelli <fsimonce(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Eduardo <ewarszaw(a)redhat.com>