Yedidyah Bar David has uploaded a new change for review.

Change subject: packaging: setup: Update engine db only if not cleared
......................................................................

packaging: setup: Update engine db only if not cleared

Also do not fail engine-cleanup if updating the engine db fails.

Change-Id: I400a5fc84e9e82902b223dd13a85e9f80424c893
Bug-Url: https://bugzilla.redhat.com/1140986
Signed-off-by: Yedidyah Bar David <[email protected]>
---
M packaging/setup/ovirt_engine_setup/dwh/constants.py
M packaging/setup/plugins/ovirt-engine-remove/ovirt-engine-dwh/db/single_etl.py
2 files changed, 46 insertions(+), 21 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-dwh refs/changes/10/33310/1

diff --git a/packaging/setup/ovirt_engine_setup/dwh/constants.py 
b/packaging/setup/ovirt_engine_setup/dwh/constants.py
index 064523a..1fde9e8 100644
--- a/packaging/setup/ovirt_engine_setup/dwh/constants.py
+++ b/packaging/setup/ovirt_engine_setup/dwh/constants.py
@@ -281,6 +281,9 @@
     def REMOVE_DATABASE(self):
         return 'OVESETUP_DWH_REMOVE/database'
 
+    # sync with the engine
+    REMOVE_ENGINE_DATABASE = 'OVESETUP_REMOVE/engineDatabase'
+
 
 @util.export
 @util.codegen
diff --git 
a/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine-dwh/db/single_etl.py 
b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine-dwh/db/single_etl.py
index 578226b..b692b7e 100644
--- 
a/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine-dwh/db/single_etl.py
+++ 
b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine-dwh/db/single_etl.py
@@ -35,36 +35,58 @@
         super(Plugin, self).__init__(context=context)
 
     @plugin.event(
+        stage=plugin.Stages.STAGE_INIT,
+    )
+    def _init(self):
+        self.environment.setdefault(
+            odwhcons.RemoveEnv.REMOVE_ENGINE_DATABASE,
+            False,
+        )
+
+    @plugin.event(
         stage=plugin.Stages.STAGE_MISC,
         after=(
             odwhcons.Stages.ENGINE_DB_CONNECTION_AVAILABLE,
         ),
-        condition=lambda self: self.environment[odwhcons.CoreEnv.ENABLE],
+        condition=lambda self: (
+            self.environment[odwhcons.CoreEnv.ENABLE] and
+            not self.environment[odwhcons.RemoveEnv.REMOVE_ENGINE_DATABASE]
+        ),
     )
     def _misc(self):
-        statement = self.environment[odwhcons.EngineDBEnv.STATEMENT]
-        db_dwh_uuid = engine_db_timekeeping.getValueFromTimekeeping(
-            statement=statement,
-            name=engine_db_timekeeping.DB_KEY_UUID
-        )
-        if self.environment[odwhcons.CoreEnv.UUID] != db_dwh_uuid:
-            self.logger.debug('_ is %s' % _)
+        try:
+            statement = self.environment[odwhcons.EngineDBEnv.STATEMENT]
+            db_dwh_uuid = engine_db_timekeeping.getValueFromTimekeeping(
+                statement=statement,
+                name=engine_db_timekeeping.DB_KEY_UUID
+            )
+            if self.environment[odwhcons.CoreEnv.UUID] != db_dwh_uuid:
+                self.logger.debug('_ is %s' % _)
+                self.logger.warning(
+                    _(
+                        'Not updating engine database to disconnect from dwh - 
'
+                        'seems like a different dwh was already setup for it'
+                    )
+                )
+            else:
+                engine_db_timekeeping.updateValueInTimekeeping(
+                    statement=statement,
+                    name=engine_db_timekeeping.DB_KEY_HOSTNAME,
+                    value=''
+                )
+                engine_db_timekeeping.updateValueInTimekeeping(
+                    statement=statement,
+                    name=engine_db_timekeeping.DB_KEY_UUID,
+                    value=''
+                )
+        except RuntimeError as e:
+            self.logger.debug('exception', exc_info=True)
             self.logger.warning(
                 _(
-                    'Not updating engine database to disconnect from dwh - '
-                    'seems like a different dwh was already setup for it'
+                    'Cannot update Engine database: {error}'
+                ).format(
+                    error=e,
                 )
-            )
-        else:
-            engine_db_timekeeping.updateValueInTimekeeping(
-                statement=statement,
-                name=engine_db_timekeeping.DB_KEY_HOSTNAME,
-                value=''
-            )
-            engine_db_timekeeping.updateValueInTimekeeping(
-                statement=statement,
-                name=engine_db_timekeeping.DB_KEY_UUID,
-                value=''
             )
 
 


-- 
To view, visit http://gerrit.ovirt.org/33310
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I400a5fc84e9e82902b223dd13a85e9f80424c893
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-dwh
Gerrit-Branch: master
Gerrit-Owner: Yedidyah Bar David <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to