Sandro Bonazzola has uploaded a new change for review. Change subject: packaging: setup: cleanup storagePool/domainMonitor on error ......................................................................
packaging: setup: cleanup storagePool/domainMonitor on error disconnect storage pool connection and domain monitoring if an error occurs while deploying the hosted engine VM Change-Id: If8a408a7291b7a4478380fb6a98a0120699563e3 Bug-Url: https://bugzilla.redhat.com/1026344 Signed-off-by: Sandro Bonazzola <[email protected]> --- M src/plugins/ovirt-hosted-engine-setup/storage/storage.py 1 file changed, 31 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-hosted-engine-setup refs/changes/15/21915/1 diff --git a/src/plugins/ovirt-hosted-engine-setup/storage/storage.py b/src/plugins/ovirt-hosted-engine-setup/storage/storage.py index 8e4b4f3..ade3b57 100644 --- a/src/plugins/ovirt-hosted-engine-setup/storage/storage.py +++ b/src/plugins/ovirt-hosted-engine-setup/storage/storage.py @@ -31,6 +31,7 @@ import time +from otopi import constants as otopicons from otopi import util from otopi import plugin @@ -71,6 +72,8 @@ self.storageType = None self.domain_exists = False self.pool_exists = False + self._connected = False + self._monitoring = False def _mount(self, path, connection, domain_type): mount_cmd = ( @@ -500,6 +503,16 @@ waiter = tasks.DomainMonitorWaiter(self.environment) waiter.wait(self.environment[ohostedcons.StorageEnv.SD_UUID]) + def _stopMonitoringDomain(self): + self.logger.debug('_stopMonitoringDomain') + status = self.serv.s.stopMonitoringDomain( + 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']) + def _storagePoolConnection(self, disconnect=False): spUUID = self.environment[ohostedcons.StorageEnv.SP_UUID] sdUUID = self.environment[ohostedcons.StorageEnv.SD_UUID] @@ -526,6 +539,7 @@ status, message = method(args=method_args) if status != 0: raise RuntimeError(message) + self._connected = not disconnect def _spmStart(self): self.logger.debug('spmStart') @@ -852,6 +866,23 @@ self._storagePoolConnection(disconnect=True) self.logger.info(_('Start monitoring domain')) self._startMonitoringDomain() + self._monitoring = True + + @plugin.event( + stage=plugin.Stages.STAGE_CLEANUP, + condition=lambda self: self.environment[ + otopicons.BaseEnv.ERROR + ], + ) + def _cleanup(self): + if self._connected: + try: + self._spmStop() + except RuntimeError: + self.logger.debug('Not SPM?', exc_info=True) + self._storagePoolConnection(disconnect=True) + if self._monitoring: + self._stopMonitoringDomain() # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit http://gerrit.ovirt.org/21915 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If8a408a7291b7a4478380fb6a98a0120699563e3 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
