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