Sandro Bonazzola has uploaded a new change for review. Change subject: packaging: setup: added postinstall file creation ......................................................................
packaging: setup: added postinstall file creation Added a plugin for engine-setup-2 that creates a postinstall file with answered questions so they can be avoided on second run / upgrade. Change-Id: I3516d6b9b29d50844835bb67c0a4a3f5485aa21f Signed-off-by: Sandro Bonazzola <[email protected]> --- M packaging/setup/ovirt_engine_setup/constants.py M packaging/setup/plugins/ovirt-engine-setup/core/__init__.py A packaging/setup/plugins/ovirt-engine-setup/core/postinstall.py 3 files changed, 104 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/57/15957/1 diff --git a/packaging/setup/ovirt_engine_setup/constants.py b/packaging/setup/ovirt_engine_setup/constants.py index cb301b5..8cbbd9b 100644 --- a/packaging/setup/ovirt_engine_setup/constants.py +++ b/packaging/setup/ovirt_engine_setup/constants.py @@ -47,6 +47,7 @@ answerfile=False, summary=False, description=None, + postinstallfile=False, ): class decorator(classproperty): def __init__(self, o): @@ -55,6 +56,7 @@ answerfile=answerfile, summary=summary, description=description, + postinstallfile=postinstallfile ) return decorator @@ -287,6 +289,10 @@ OVIRT_ENGINE_UNINSTALL_DIR = os.path.join( OVIRT_ENGINE_SYSCONFDIR, 'uninstall.d' + ) + OVIRT_SETUP_POST_INSTALL_CONFIG = os.path.join( + '%s.d' % OVIRT_OVIRT_SETUP_CONFIG_FILE, + '20-setup-ovirt-post.conf' ) ISO_DOMAIN_DEFAULT_NFS_MOUNT_POINT = os.path.join( @@ -530,6 +536,7 @@ REGISTER_UNINSTALL_GROUPS = 'OVESETUP_CORE/registerUninstallGroups' CONFIRM_UNINSTALL_GROUPS = 'OVESETUP_CORE/confirmUninstallGroups' UPGRADE_SUPPORTED_VERSIONS = 'OVESETUP_CORE/upgradeSupportedVersions' + OVIRT_SETUP_POST_INSTALL_CONFIG = 'OVESETUP_CORE/postinstallFile' @osetupattrs( answerfile=True, diff --git a/packaging/setup/plugins/ovirt-engine-setup/core/__init__.py b/packaging/setup/plugins/ovirt-engine-setup/core/__init__.py index 1dac121..124d003 100644 --- a/packaging/setup/plugins/ovirt-engine-setup/core/__init__.py +++ b/packaging/setup/plugins/ovirt-engine-setup/core/__init__.py @@ -24,12 +24,14 @@ from . import misc from . import uninstall +from . import postinstall @util.export def createPlugins(context): misc.Plugin(context=context) uninstall.Plugin(context=context) + postinstall.Plugin(context=context) # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/packaging/setup/plugins/ovirt-engine-setup/core/postinstall.py b/packaging/setup/plugins/ovirt-engine-setup/core/postinstall.py new file mode 100644 index 0000000..529ebb5 --- /dev/null +++ b/packaging/setup/plugins/ovirt-engine-setup/core/postinstall.py @@ -0,0 +1,95 @@ +# +# ovirt-engine-setup -- ovirt engine setup +# Copyright (C) 2013 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. +# + + +"""post install config file plugin.""" + + +import gettext +_ = lambda m: gettext.dgettext(message=m, domain='ovirt-engine-setup') + + +from otopi import util +from otopi import common +from otopi import plugin +from otopi import constants as otopicons +from otopi import filetransaction + + +from ovirt_engine_setup import constants as osetupcons + + [email protected] +class Plugin(plugin.PluginBase): + """post install config file plugin.""" + + def __init__(self, context): + super(Plugin, self).__init__(context=context) + + @plugin.event( + stage=plugin.Stages.STAGE_INIT, + ) + def _init(self): + self.environment.setdefault( + osetupcons.CoreEnv.OVIRT_SETUP_POST_INSTALL_CONFIG, + osetupcons.FileLocations.OVIRT_SETUP_POST_INSTALL_CONFIG + ) + + @plugin.event( + stage=plugin.Stages.STAGE_MISC, + priority=plugin.Stages.PRIORITY_LAST, + condition=lambda self: self.environment[ + osetupcons.CoreEnv.OVIRT_SETUP_POST_INSTALL_CONFIG + ] is not None + ) + def _misc(self): + filename = self.environment[ + osetupcons.CoreEnv.OVIRT_SETUP_POST_INSTALL_CONFIG + ] + self.logger.info( + _("Generating post install configuration file '{name}'").format( + name=filename, + ) + ) + content = ['[environment:default]'] + for c in osetupcons.__dict__['__osetup_attrs__']: + for k in c.__dict__.values(): + if hasattr(k, '__osetup_attrs__'): + if k.__osetup_attrs__['postinstallfile']: + k = k.fget(None) + if k in self.environment: + v = self.environment[k] + content.append( + '%s=%s:%s' % ( + k, + common.typeName(v), + '\n'.join(v) if isinstance(v, list) + else v, + ) + ) + self.environment[otopicons.CoreEnv.MAIN_TRANSACTION].append( + filetransaction.FileTransaction( + name=filename, + content=content, + modifiedList=self.environment[ + otopicons.CoreEnv.MODIFIED_FILES + ], + ) + ) + + +# vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit http://gerrit.ovirt.org/15957 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3516d6b9b29d50844835bb67c0a4a3f5485aa21f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Sandro Bonazzola <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
