Hello Dan Kenigsberg, Eduardo,
I'd like you to do a code review. Please visit
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@redhat.com Reviewed-on: http://gerrit.ovirt.org/14672 Reviewed-by: Dan Kenigsberg danken@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': []}
Federico Simoncelli has abandoned this change.
Change subject: Read pool metadata once in StoragePool.getInfo() ......................................................................
Abandoned
vdsm-patches@lists.fedorahosted.org