Idan Shaby has uploaded a new change for review. Change subject: clusterlock: Remove unneeded workaround ......................................................................
clusterlock: Remove unneeded workaround Sanlock 2.8 had a off-by-one bug when calling get_hosts with a host id, returning info for the next host. This bug is fixed in version 2.8-2. Now we can use the hostId parameter, making the call more efficient and simplifying clusterlock code. Change-Id: Ide75e749fbc2916540c2b526b78fedc247b5c6f9 Bug-Url: https://bugzilla.redhat.com/1131192 Signed-off-by: Nir Soffer <[email protected]> --- M vdsm.spec.in M vdsm/storage/clusterlock.py 2 files changed, 5 insertions(+), 16 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/74/48574/1 diff --git a/vdsm.spec.in b/vdsm.spec.in index 9d27b1e..28b7705 100644 --- a/vdsm.spec.in +++ b/vdsm.spec.in @@ -173,7 +173,7 @@ Requires: iscsi-initiator-utils >= 6.2.0.873-21 %endif -Requires: sanlock >= 2.8, sanlock-python +Requires: sanlock >= 2.8-2, sanlock-python %if 0%{?rhel} %if 0%{?centos} diff --git a/vdsm/storage/clusterlock.py b/vdsm/storage/clusterlock.py index 2a2effc..52b5c93 100644 --- a/vdsm/storage/clusterlock.py +++ b/vdsm/storage/clusterlock.py @@ -262,26 +262,15 @@ return False def getHostStatus(self, hostId): - # Note: get_hosts has off-by-one bug when asking for particular host - # id, so get all hosts info and filter. - # See https://bugzilla.redhat.com/1111210 try: - hosts = sanlock.get_hosts(self._sdUUID) + hosts = sanlock.get_hosts(self._sdUUID, hostId) except sanlock.SanlockException as e: self.log.debug("Unable to get host %d status in lockspace %s: %s", hostId, self._sdUUID, e) return HOST_STATUS_UNAVAILABLE - - for info in hosts: - if info['host_id'] == hostId: - status = info['flags'] - return self.STATUS_NAME[status] - - # get_hosts with host_id=0 returns only hosts with timestamp != 0, - # which means that no host is using this host id now. If there a - # timestamp, sanlock will return HOST_UNKNOWN and then HOST_LIVE or - # HOST_FAIL. - return HOST_STATUS_FREE + else: + status = hosts[0]['flags'] + return self.STATUS_NAME[status] # The hostId parameter is maintained here only for compatibility with # ClusterLock. We could consider to remove it in the future but keeping it -- To view, visit https://gerrit.ovirt.org/48574 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ide75e749fbc2916540c2b526b78fedc247b5c6f9 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: ovirt-3.6 Gerrit-Owner: Idan Shaby <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
