Simone Tiraboschi has uploaded a new change for review. Change subject: engine-cleanup split ......................................................................
engine-cleanup split Let the user decide to remove all the product components or just some of that at cleanup. Change-Id: I26017770262e313ad38ddfa96baeaea144c86e5f Signed-off-by: Simone Tiraboschi <stira...@redhat.com> --- M packaging/setup/ovirt_engine_setup/constants.py M packaging/setup/ovirt_engine_setup/engine/engineconstants.py M packaging/setup/plugins/ovirt-engine-remove/base/core/misc.py M packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/config/ca.py A packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/config/misc.py M packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/db/clear.py M packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/system/engine.py M packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/system/sysctl.py M packaging/setup/plugins/ovirt-engine-remove/websocket_proxy/misc.py 9 files changed, 196 insertions(+), 22 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/79/28579/1 diff --git a/packaging/setup/ovirt_engine_setup/constants.py b/packaging/setup/ovirt_engine_setup/constants.py index 862b49f..119e53b 100644 --- a/packaging/setup/ovirt_engine_setup/constants.py +++ b/packaging/setup/ovirt_engine_setup/constants.py @@ -439,14 +439,14 @@ @osetupattrs( answerfile=True, ) - def REMOVE_DATABASE(self): - return 'OVESETUP_REMOVE/database' + def REMOVE_ALL(self): + return 'OVESETUP_REMOVE/removeAll' @osetupattrs( answerfile=True, ) - def REMOVE_ALL(self): - return 'OVESETUP_REMOVE/removeAll' + def REMOVE_OPTIONS(self): + return 'OVESETUP_REMOVE/removeOptions' FILES_TO_REMOVE = 'OVESETUP_REMOVE/filesToRemove' diff --git a/packaging/setup/ovirt_engine_setup/engine/engineconstants.py b/packaging/setup/ovirt_engine_setup/engine/engineconstants.py index fad03e2..8a2f443 100644 --- a/packaging/setup/ovirt_engine_setup/engine/engineconstants.py +++ b/packaging/setup/ovirt_engine_setup/engine/engineconstants.py @@ -641,4 +641,21 @@ return 'OVESETUP_ASYNC/clearTasksWait' +@util.export +@util.codegen +@osetupattrsclass +class RemoveEnv(object): + @osetupattrs( + answerfile=True, + ) + def REMOVE_ENGINE(self): + return 'OVESETUP_REMOVE/removeEngine' + + @osetupattrs( + answerfile=True, + ) + def REMOVE_ENGINE_DATABASE(self): + return 'OVESETUP_REMOVE/database' + + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/packaging/setup/plugins/ovirt-engine-remove/base/core/misc.py b/packaging/setup/plugins/ovirt-engine-remove/base/core/misc.py index a4488de..f93430e 100644 --- a/packaging/setup/plugins/ovirt-engine-remove/base/core/misc.py +++ b/packaging/setup/plugins/ovirt-engine-remove/base/core/misc.py @@ -71,6 +71,10 @@ osetupcons.RemoveEnv.REMOVE_ALL, None ) + self.environment.setdefault( + osetupcons.RemoveEnv.REMOVE_OPTIONS, + [] + ) @plugin.event( stage=plugin.Stages.STAGE_SETUP, @@ -121,15 +125,36 @@ if self.environment[ osetupcons.CoreEnv.REMOVE ] is None: + if self.environment[osetupcons.RemoveEnv.REMOVE_ALL]: + cnote = _( + 'All the installed ovirt components are about to be ' + 'removed, data will be lost (@VALUES@) [@DEFAULT@]: ' + ) + elif self.environment[osetupcons.RemoveEnv.REMOVE_OPTIONS]: + cnote = _( + ', '.join( + self.environment[ + osetupcons.RemoveEnv.REMOVE_OPTIONS + ] + ) + ' is ' if len( + self.environment[ + osetupcons.RemoveEnv.REMOVE_OPTIONS + ] + ) == 1 else ' are ' + + 'about to be removed, data will be lost ' + '(@VALUES@) [@DEFAULT@]: ' + ) + else: + raise RuntimeError( + _('Nothing to remove') + ) + self.environment[ osetupcons.CoreEnv.REMOVE ] = dialog.queryBoolean( dialog=self.dialog, name='OVESETUP_CORE_REMOVE', - note=_( - 'Installed ovirt components are about to be removed, ' - 'data will be lost (@VALUES@) [@DEFAULT@]: ' - ), + note=cnote, prompt=True, true=_('OK'), false=_('Cancel'), diff --git a/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/config/ca.py b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/config/ca.py index d71e55a..68c3377 100644 --- a/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/config/ca.py +++ b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/config/ca.py @@ -52,6 +52,9 @@ self.environment[ osetupcons.RemoveEnv.REMOVE_ALL ] or + self.environment[ + oenginecons.RemoveEnv.REMOVE_ENGINE + ] or 'ca_pki' in [ x.strip() for x in self.environment[ diff --git a/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/config/misc.py b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/config/misc.py new file mode 100644 index 0000000..2d8f1ab --- /dev/null +++ b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/config/misc.py @@ -0,0 +1,82 @@ +# +# ovirt-engine-setup -- ovirt engine setup +# Copyright (C) 2014 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + + +"""Engine-remove plugin.""" + + +import gettext +_ = lambda m: gettext.dgettext(message=m, domain='ovirt-engine-setup') + + +from otopi import util +from otopi import plugin + + +from ovirt_engine_setup import constants as osetupcons +from ovirt_engine_setup.engine import engineconstants as oenginecons +from ovirt_engine_setup import dialog + + +@util.export +class Plugin(plugin.PluginBase): + """Engine-remove plugin.""" + + def __init__(self, context): + super(Plugin, self).__init__(context=context) + + @plugin.event( + stage=plugin.Stages.STAGE_INIT, + ) + def _init(self): + self.environment.setdefault( + oenginecons.RemoveEnv.REMOVE_ENGINE, + None + ) + + @plugin.event( + stage=plugin.Stages.STAGE_CUSTOMIZATION, + after=osetupcons.Stages.REMOVE_CUSTOMIZATION_COMMON, + condition=lambda self: not self.environment[ + osetupcons.RemoveEnv.REMOVE_ALL + ], + ) + def _customization(self): + if self.environment[ + oenginecons.RemoveEnv.REMOVE_ENGINE + ] is None: + self.environment[ + oenginecons.RemoveEnv.REMOVE_ENGINE + ] = dialog.queryBoolean( + dialog=self.dialog, + name='OVESETUP_REMOVE_ENGINE', + note=_( + 'Do you want to remove the engine? ' + '(@VALUES@) [@DEFAULT@]: ' + ), + prompt=True, + true=_('Yes'), + false=_('No'), + default=True, + ) + if self.environment[oenginecons.RemoveEnv.REMOVE_ENGINE]: + osetupcons.RemoveEnv.REMOVE_OPTIONS.append( + oenginecons.Const.ENGINE_PACKAGE_NAME + ) + + +# vim: expandtab tabstop=4 shiftwidth=4 diff --git a/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/db/clear.py b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/db/clear.py index 90c8230..6fdf935 100644 --- a/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/db/clear.py +++ b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/db/clear.py @@ -47,7 +47,7 @@ ) def _init(self): self.environment.setdefault( - osetupcons.RemoveEnv.REMOVE_DATABASE, + oenginecons.RemoveEnv.REMOVE_ENGINE_DATABASE, None ) self._bkpfile = None @@ -59,18 +59,23 @@ ), ) def _customization(self): - if self.environment[ - osetupcons.RemoveEnv.REMOVE_ALL - ]: + if ( self.environment[ - osetupcons.RemoveEnv.REMOVE_DATABASE + osetupcons.RemoveEnv.REMOVE_ALL + ] or + self.environment[ + oenginecons.RemoveEnv.REMOVE_ENGINE + ] + ): + self.environment[ + oenginecons.RemoveEnv.REMOVE_ENGINE_DATABASE ] = True if self.environment[ - osetupcons.RemoveEnv.REMOVE_DATABASE + oenginecons.RemoveEnv.REMOVE_ENGINE_DATABASE ] is None: self.environment[ - osetupcons.RemoveEnv.REMOVE_DATABASE + oenginecons.RemoveEnv.REMOVE_ENGINE_DATABASE ] = dialog.queryBoolean( dialog=self.dialog, name='OVESETUP_ENGINE_DB_REMOVE', @@ -88,7 +93,7 @@ stage=plugin.Stages.STAGE_MISC, condition=lambda self: ( self.environment[oengcommcons.EngineDBEnv.PASSWORD] is not None and - self.environment[osetupcons.RemoveEnv.REMOVE_DATABASE] + self.environment[oenginecons.RemoveEnv.REMOVE_ENGINE_DATABASE] ), after=( oengcommcons.Stages.DB_CREDENTIALS_AVAILABLE_LATE, diff --git a/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/system/engine.py b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/system/engine.py index e1ca950..be8bd26 100644 --- a/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/system/engine.py +++ b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/system/engine.py @@ -41,6 +41,14 @@ @plugin.event( stage=plugin.Stages.STAGE_SETUP, + condition=lambda self: ( + self.environment[ + osetupcons.RemoveEnv.REMOVE_ALL + ] or + self.environment[ + oenginecons.RemoveEnv.REMOVE_ENGINE + ] + ), ) def _setup(self): if not os.path.exists( @@ -62,9 +70,18 @@ @plugin.event( stage=plugin.Stages.STAGE_MISC, - condition=lambda self: not self.environment[ - osetupcons.CoreEnv.DEVELOPER_MODE - ], + condition=lambda self: ( + ( + self.environment[ + osetupcons.RemoveEnv.REMOVE_ALL + ] or + self.environment[ + oenginecons.RemoveEnv.REMOVE_ENGINE + ] + ) and not self.environment[ + osetupcons.CoreEnv.DEVELOPER_MODE + ], + ), ) def _misc(self): self.services.startup( diff --git a/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/system/sysctl.py b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/system/sysctl.py index f34eb41..e15b31c 100644 --- a/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/system/sysctl.py +++ b/packaging/setup/plugins/ovirt-engine-remove/ovirt-engine/system/sysctl.py @@ -42,6 +42,14 @@ @plugin.event( stage=plugin.Stages.STAGE_MISC, + condition=lambda self: ( + self.environment[ + osetupcons.RemoveEnv.REMOVE_ALL + ] or + self.environment[ + oenginecons.RemoveEnv.REMOVE_ENGINE + ] + ), ) def _misc(self): if ( @@ -62,6 +70,14 @@ after=( osetupcons.Stages.DIALOG_TITLES_S_SUMMARY, ), + condition=lambda self: ( + self.environment[ + osetupcons.RemoveEnv.REMOVE_ALL + ] or + self.environment[ + oenginecons.RemoveEnv.REMOVE_ENGINE + ] + ), ) def _closeup(self): if os.path.exists( diff --git a/packaging/setup/plugins/ovirt-engine-remove/websocket_proxy/misc.py b/packaging/setup/plugins/ovirt-engine-remove/websocket_proxy/misc.py index 486c715..294f51f 100644 --- a/packaging/setup/plugins/ovirt-engine-remove/websocket_proxy/misc.py +++ b/packaging/setup/plugins/ovirt-engine-remove/websocket_proxy/misc.py @@ -37,9 +37,18 @@ @plugin.event( stage=plugin.Stages.STAGE_MISC, - condition=lambda self: not self.environment[ - osetupcons.CoreEnv.DEVELOPER_MODE - ], + condition=lambda self: ( + ( + self.environment[ + osetupcons.RemoveEnv.REMOVE_ALL + ] or + self.environment[ + oenginecons.RemoveEnv.REMOVE_ENGINE + ] + ) and not self.environment[ + osetupcons.CoreEnv.DEVELOPER_MODE + ], + ), ) def _misc(self): if self.services.exists( -- To view, visit http://gerrit.ovirt.org/28579 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I26017770262e313ad38ddfa96baeaea144c86e5f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Simone Tiraboschi <stira...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches