Sandro Bonazzola has uploaded a new change for review. Change subject: draft: disconnecting from storage pool ......................................................................
draft: disconnecting from storage pool - disconnecting from storage pool after image creation. - VM configuration has now blank uuid Change-Id: Ib3052c62316bc3bd6ddc82f10356e3bf665816bc Signed-off-by: Sandro Bonazzola <[email protected]> --- M src/ovirt_hosted_engine_setup/constants.py M src/plugins/ovirt-hosted-engine-setup/storage/storage.py M src/plugins/ovirt-hosted-engine-setup/vm/boot_disk.py M src/plugins/ovirt-hosted-engine-setup/vm/configurevm.py 4 files changed, 49 insertions(+), 11 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-hosted-engine-setup refs/changes/76/17676/1 diff --git a/src/ovirt_hosted_engine_setup/constants.py b/src/ovirt_hosted_engine_setup/constants.py index 516fe7b..b84c34e 100644 --- a/src/ovirt_hosted_engine_setup/constants.py +++ b/src/ovirt_hosted_engine_setup/constants.py @@ -406,6 +406,8 @@ VDSMD_CONFIGURED = 'ohosted.vdsm.configured' STORAGE_AVAILABLE = 'ohosted.storage.available' VM_IMAGE_AVAILABLE = 'ohosted.vm.image.available' + OVF_IMPORTED = 'ohosted.vm.ovf.imported' + STORAGE_POOL_DISCONNECTED = 'ohosted.storage.pool.disconnected' VM_CONFIGURED = 'ohosted.vm.state.configured' VM_RUNNING = 'ohosted.vm.state.running' BRIDGE_AVAILABLE = 'ohosted.network.bridge.available' diff --git a/src/plugins/ovirt-hosted-engine-setup/storage/storage.py b/src/plugins/ovirt-hosted-engine-setup/storage/storage.py index d778d88..b1b7c80 100644 --- a/src/plugins/ovirt-hosted-engine-setup/storage/storage.py +++ b/src/plugins/ovirt-hosted-engine-setup/storage/storage.py @@ -201,7 +201,7 @@ self.environment[ ohostedcons.StorageEnv.SP_UUID ] = spUUID - self._connectStoragePool() + self.__storagePoolConnection() pool_info = self._getStoragePoolInfo(spUUID) if pool_info: self.environment[ @@ -327,21 +327,29 @@ if status != 0: raise RuntimeError(message) - def _connectStoragePool(self): - self.logger.debug('connectStoragePool') + def _storagePoolConnection(self, disconnect=False): spUUID = self.environment[ohostedcons.StorageEnv.SP_UUID] sdUUID = self.environment[ohostedcons.StorageEnv.SD_UUID] ID = self.environment[ohostedcons.StorageEnv.HOST_ID] scsi_key = spUUID master = sdUUID master_ver = 1 - status, message = self.serv.connectStoragePool(args=[ + method = self.serv.connectStoragePool + method_args = [ spUUID, ID, scsi_key, - master, - master_ver - ]) + ] + debug_msg = 'connectStoragePool' + if disconnect: + method = self.serv.disconnectStoragePool + debug_msg = 'disconnectStoragePool' + else: + method_args += [ + master, + master_ver, + ] + status, message = method(args=method_args) if status != 0: raise RuntimeError(message) @@ -362,6 +370,16 @@ scsiFencing, maxHostID, version + ]) + if status != 0: + raise RuntimeError(status_uuid) + self.logger.debug(status_uuid) + + def _spmStop(self): + self.logger.debug('spmStop') + spUUID = self.environment[ohostedcons.StorageEnv.SP_UUID] + status, status_uuid = self.serv.spmStop(args=[ + spUUID, ]) if status != 0: raise RuntimeError(status_uuid) @@ -578,9 +596,23 @@ else: self.logger.info(_('Creating Storage Pool')) self._createStoragePool() - self._connectStoragePool() if not self.environment[ohostedcons.CoreEnv.IS_ADDITIONAL_HOST]: + self._storagePoolConnection() self._spmStart() self._activateStorageDomain() + @plugin.event( + stage=plugin.Stages.STAGE_MISC, + name=ohostedcons.Stages.STORAGE_POOL_DISCONNECTED, + after=( + ohostedcons.Stages.VM_IMAGE_AVAILABLE, + ohostedcons.Stages.OVF_IMPORTED, + ), + ) + def _disconnect_pool(self): + self.logger.info(_('Disonnecting Storage Pool')) + self._spmStop() + self._storagePoolConnection(disconnect=True) + + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/plugins/ovirt-hosted-engine-setup/vm/boot_disk.py b/src/plugins/ovirt-hosted-engine-setup/vm/boot_disk.py index 0162c2a..ab9f597 100644 --- a/src/plugins/ovirt-hosted-engine-setup/vm/boot_disk.py +++ b/src/plugins/ovirt-hosted-engine-setup/vm/boot_disk.py @@ -375,6 +375,7 @@ @plugin.event( stage=plugin.Stages.STAGE_MISC, + name=ohostedcons.Stages.OVF_IMPORTED, after=( ohostedcons.Stages.VM_IMAGE_AVAILABLE, ), diff --git a/src/plugins/ovirt-hosted-engine-setup/vm/configurevm.py b/src/plugins/ovirt-hosted-engine-setup/vm/configurevm.py index ca09bde..44fbe65 100644 --- a/src/plugins/ovirt-hosted-engine-setup/vm/configurevm.py +++ b/src/plugins/ovirt-hosted-engine-setup/vm/configurevm.py @@ -55,6 +55,10 @@ def __init__(self, context): super(Plugin, self).__init__(context=context) + self.vdsClient = util.loadModule( + path=ohostedcons.FileLocations.VDS_CLIENT_DIR, + name='vdsClient' + ) @plugin.event( stage=plugin.Stages.STAGE_INIT, @@ -130,6 +134,7 @@ after=( ohostedcons.Stages.VM_IMAGE_AVAILABLE, ohostedcons.Stages.BRIDGE_AVAILABLE, + ohostedcons.Stages.STORAGE_POOL_DISCONNECTED, ), name=ohostedcons.Stages.VM_CONFIGURED, condition=lambda self: not self.environment[ @@ -139,9 +144,7 @@ def _misc(self): self.logger.info(_('Configuring VM')) subst = { - '@SP_UUID@': self.environment[ - ohostedcons.StorageEnv.SP_UUID - ], + '@SP_UUID@': self.vdsClient.BLANK_UUID, '@SD_UUID@': self.environment[ ohostedcons.StorageEnv.SD_UUID ], -- To view, visit http://gerrit.ovirt.org/17676 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib3052c62316bc3bd6ddc82f10356e3bf665816bc Gerrit-PatchSet: 1 Gerrit-Project: ovirt-hosted-engine-setup Gerrit-Branch: master Gerrit-Owner: Sandro Bonazzola <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
