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

Reply via email to