Sandro Bonazzola has uploaded a new change for review. Change subject: vdsm: use startMonitoringDomain ......................................................................
vdsm: use startMonitoringDomain Use startMonitoringDomain VDSM API for monitoring hosted engine storage domain in order to support shared:exclusive images without a pool. Use getVdsStats for waiting the start of the domain monitor. Updated vdsm minimum version required according to VDSM API documentation for startMonitoringDomain. Change-Id: I3099081b79d461685901a1a32e9d526bd3bb758a Requires: http://gerrit.ovirt.org/19762 Requires: http://gerrit.ovirt.org/20099 Bug-Url: https://bugzilla.redhat.com/1015136 Signed-off-by: Sandro Bonazzola <[email protected]> --- M ovirt-hosted-engine-setup.spec.in M src/ovirt_hosted_engine_setup/tasks.py M src/plugins/ovirt-hosted-engine-setup/storage/storage.py 3 files changed, 53 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-hosted-engine-setup refs/changes/66/20166/1 diff --git a/ovirt-hosted-engine-setup.spec.in b/ovirt-hosted-engine-setup.spec.in index e21672a..6265a99 100644 --- a/ovirt-hosted-engine-setup.spec.in +++ b/ovirt-hosted-engine-setup.spec.in @@ -40,9 +40,9 @@ Requires: python Requires: python-ethtool >= 0.6-3 Requires: otopi >= 1.1.0 -Requires: vdsm >= 4.12.0 -Requires: vdsm-cli >= 4.12.0 -Requires: vdsm-python >= 4.12.0 +Requires: vdsm >= 4.12.2 +Requires: vdsm-cli >= 4.12.2 +Requires: vdsm-python >= 4.12.2 Requires: ovirt-host-deploy >= 1.1.0 Requires: openssh-server Requires: python-paramiko diff --git a/src/ovirt_hosted_engine_setup/tasks.py b/src/ovirt_hosted_engine_setup/tasks.py index 77fad58..49dd910 100644 --- a/src/ovirt_hosted_engine_setup/tasks.py +++ b/src/ovirt_hosted_engine_setup/tasks.py @@ -107,4 +107,38 @@ return destroyed [email protected] +class DomainMonitorWaiter(base.Base): + """ + VM down waiting utility. + """ + + POLLING_INTERVAL = 5 + + def __init__(self, environment): + super(DomainMonitorWaiter, self).__init__() + self.environment = environment + + def wait(self, sdUUID): + serv = self.environment[ohostedcons.VDSMEnv.VDS_CLI] + acquired = False + while not acquired: + time.sleep(self.POLLING_INTERVAL) + self.logger.debug('Waiting for domain monitor') + response = serv.s.getVdsStats() + self.logger.debug(response) + if response['status']['code'] != 0: + self.logger.debug(response['status']['message']) + raise RuntimeError(_('Error acquiring VDS status')) + try: + domains = response['info']['storageDomains'] + acquired = domains[sdUUID]['acquired'] + except KeyError: + self.logger.debug( + 'Error getting VDS status', + exc_info=True, + ) + raise RuntimeError(_('Error acquiring VDS status')) + + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/plugins/ovirt-hosted-engine-setup/storage/storage.py b/src/plugins/ovirt-hosted-engine-setup/storage/storage.py index 1adeef0..6016ea2 100644 --- a/src/plugins/ovirt-hosted-engine-setup/storage/storage.py +++ b/src/plugins/ovirt-hosted-engine-setup/storage/storage.py @@ -463,6 +463,19 @@ if status != 0: raise RuntimeError(message) + def _startMonitoringDomain(self): + self.logger.debug('_startMonitoringDomain') + status = self.serv.s.startMonitoringDomain( + self.environment[ohostedcons.StorageEnv.SD_UUID], + self.environment[ohostedcons.StorageEnv.HOST_ID] + ) + self.logger.debug(status) + if status['status']['code'] != 0: + raise RuntimeError(status['status']['message']) + + waiter = tasks.DomainMonitorWaiter(self.environment) + waiter.wait(self.environment[ohostedcons.StorageEnv.SD_UUID]) + def _storagePoolConnection(self, disconnect=False): spUUID = self.environment[ohostedcons.StorageEnv.SP_UUID] sdUUID = self.environment[ohostedcons.StorageEnv.SD_UUID] @@ -804,10 +817,12 @@ ], ) def _disconnect_pool(self): - self.logger.info(_('Disonnecting Storage Pool')) + self.logger.info(_('Disconnecting Storage Pool')) self.waiter.wait() self._spmStop() self._storagePoolConnection(disconnect=True) + self.logger.info(_('Start monitoring domain')) + self._startMonitoringDomain() # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit http://gerrit.ovirt.org/20166 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3099081b79d461685901a1a32e9d526bd3bb758a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-hosted-engine-setup Gerrit-Branch: ovirt-hosted-engine-setup-1.0 Gerrit-Owner: Sandro Bonazzola <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
