Sandro Bonazzola has uploaded a new change for review.

Change subject: packaging: setup: check engine version on upgrade
......................................................................

packaging: setup: check engine version on upgrade

abort engine-setup-2 if upgrading with datacenters and
clusters with unsupported versions.

Change-Id: I76eac3e8c177291fea574024618f7feb6e12ff69
Signed-off-by: Sandro Bonazzola <sbona...@redhat.com>
---
M packaging/setup/ovirt_engine_setup/constants.py
M packaging/setup/plugins/ovirt-engine-common/core/misc.py
M packaging/setup/plugins/ovirt-engine-setup/db/schema.py
3 files changed, 44 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/27/15127/1

diff --git a/packaging/setup/ovirt_engine_setup/constants.py 
b/packaging/setup/ovirt_engine_setup/constants.py
index 80e72b3..466f30e 100644
--- a/packaging/setup/ovirt_engine_setup/constants.py
+++ b/packaging/setup/ovirt_engine_setup/constants.py
@@ -518,6 +518,7 @@
     UNINSTALL_ENABLED_FILE_GROUPS = 'OVESETUP_CORE/uninstallEnabledFileGroups'
     REGISTER_UNINSTALL_GROUPS = 'OVESETUP_CORE/registerUninstallGroups'
     CONFIRM_UNINSTALL_GROUPS = 'OVESETUP_CORE/confirmUninstallGroups'
+    UPGRADE_SUPPORTED_VERSIONS = 'OVESETUP_CORE/upgradeSupportedVersions'
 
     @osetupattrs(
         answerfile=True,
diff --git a/packaging/setup/plugins/ovirt-engine-common/core/misc.py 
b/packaging/setup/plugins/ovirt-engine-common/core/misc.py
index ebf9449..bd7495e 100644
--- a/packaging/setup/plugins/ovirt-engine-common/core/misc.py
+++ b/packaging/setup/plugins/ovirt-engine-common/core/misc.py
@@ -73,6 +73,10 @@
             osetupcons.CoreEnv.DEVELOPER_MODE,
             None
         )
+        self.environment.setdefault(
+            osetupcons.CoreEnv.UPGRADE_SUPPORTED_VERSIONS,
+            '3.2,3.3'
+        )
 
         if self.environment[osetupcons.CoreEnv.DEVELOPER_MODE] is None:
             self.environment[osetupcons.CoreEnv.DEVELOPER_MODE] = False
diff --git a/packaging/setup/plugins/ovirt-engine-setup/db/schema.py 
b/packaging/setup/plugins/ovirt-engine-setup/db/schema.py
index 27acf4e..5265deb 100644
--- a/packaging/setup/plugins/ovirt-engine-setup/db/schema.py
+++ b/packaging/setup/plugins/ovirt-engine-setup/db/schema.py
@@ -40,6 +40,44 @@
     def __init__(self, context):
         super(Plugin, self).__init__(context=context)
 
+    def _checkSupportedVersionsPresent(self):
+        # TODO: figure out a better way to do this for the future
+        statement = database.Statement(environment=self.environment)
+        dcVersions = statement.execute(
+            statement="""
+                SELECT compatibility_version FROM storage_pool;
+            """,
+            ownConnection=True,
+            transaction=False,
+        )
+        clusterVersions = statement.execute(
+            statement="""
+                SELECT compatibility_version FROM vds_groups;;
+            """,
+            ownConnection=True,
+            transaction=False,
+        )
+
+        versions = set([
+            x['compatibility_version']
+            for x in dcVersions + clusterVersions
+        ])
+        supported = set([
+            x.strip()
+            for x in self.environment[
+                osetupcons.CoreEnv.UPGRADE_SUPPORTED_VERSIONS
+            ].split(',')
+            if x.strip()
+        ])
+
+        if versions - supported:
+            raise RuntimeError(
+                'Trying to upgrade from unsupported versions: '
+                '{versions}'.format(
+                    versions=' '.join(versions - supported)
+                )
+            )
+
     @plugin.event(
         stage=plugin.Stages.STAGE_MISC,
         name=osetupcons.Stages.DB_SCHEMA,
@@ -108,6 +146,7 @@
         ],
     )
     def _miscUpgrade(self):
+        self._checkSupportedVersionsPresent()
         dbovirtutils = database.OvirtUtils(plugin=self)
         backupFile = dbovirtutils.backup()
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I76eac3e8c177291fea574024618f7feb6e12ff69
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Sandro Bonazzola <sbona...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to