Alon Bar-Lev has uploaded a new change for review.

Change subject: packaging: setup: always create answer file
......................................................................

packaging: setup: always create answer file

handy for support, create answer file at:

 /var/lib/ovirt-engine/setup/answers

Change-Id: I8fca502907c0c4769a3f22e34e0a288a1a7b5997
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
M Makefile
M ovirt-engine.spec.in
M packaging/setup/ovirt_engine_setup/constants.py
M packaging/setup/plugins/ovirt-engine-common/core/answerfile.py
4 files changed, 57 insertions(+), 27 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/60/18260/1

diff --git a/Makefile b/Makefile
index b4a44eb..6e60d7f 100644
--- a/Makefile
+++ b/Makefile
@@ -415,6 +415,7 @@
        install -d "$(DESTDIR)$(PKG_CACHE_DIR)"
        install -d "$(DESTDIR)$(PKG_STATE_DIR)/deployments"
        install -d "$(DESTDIR)$(PKG_STATE_DIR)/content"
+       install -d "$(DESTDIR)$(PKG_STATE_DIR)/setup/answers"
        install -d "$(DESTDIR)$(PKG_LOG_DIR)/host-deploy"
        install -d "$(DESTDIR)$(PKG_LOG_DIR)/setup"
        install -d "$(DESTDIR)$(PKG_LOG_DIR)/notifier"
diff --git a/ovirt-engine.spec.in b/ovirt-engine.spec.in
index d8ca289..bd9e10c 100644
--- a/ovirt-engine.spec.in
+++ b/ovirt-engine.spec.in
@@ -449,8 +449,7 @@
 #
 # /var creation
 #
-install -dm 755 "%{buildroot}/%{engine_state}/deployments"
-install -dm 755 "%{buildroot}/%{engine_state}/content"
+install -dm 755 
"%{buildroot}/%{engine_state}"/{deployments,content,setup/answers}
 install -dm 755 
"%{buildroot}/%{engine_log}"/{host-deploy,setup,notifier,engine-manage-domains,dump}
 install -dm 755 "%{buildroot}/%{engine_cache}"
 install -dm 755 "%{buildroot}/%{engine_run}/notifier"
@@ -729,6 +728,7 @@
 %{engine_data}/conf/ovirt-engine-root-redirect.conf.in
 %{engine_data}/firewalld/base/
 %{engine_data}/setup/
+%{engine_state}/setup/
 
 # backward compatibility
 %ghost %config(noreplace) %{_sysconfdir}/firewalld/services/ovirt.xml
diff --git a/packaging/setup/ovirt_engine_setup/constants.py 
b/packaging/setup/ovirt_engine_setup/constants.py
index 404dc6b..63d99cb 100644
--- a/packaging/setup/ovirt_engine_setup/constants.py
+++ b/packaging/setup/ovirt_engine_setup/constants.py
@@ -175,6 +175,14 @@
         OVIRT_ENGINE_LOCALSTATEDIR,
         'deployments',
     )
+    OVIRT_SETUP_STATE_DIR = os.path.join(
+        OVIRT_ENGINE_LOCALSTATEDIR,
+        'setup',
+    )
+    OVIRT_SETUP_ANSWERS_DIR = os.path.join(
+        OVIRT_SETUP_STATE_DIR,
+        'answers',
+    )
 
     OVIRT_ENGINE_PKIKEYSDIR = os.path.join(
         OVIRT_ENGINE_PKIDIR,
diff --git a/packaging/setup/plugins/ovirt-engine-common/core/answerfile.py 
b/packaging/setup/plugins/ovirt-engine-common/core/answerfile.py
index fe9699c..8da9236 100644
--- a/packaging/setup/plugins/ovirt-engine-common/core/answerfile.py
+++ b/packaging/setup/plugins/ovirt-engine-common/core/answerfile.py
@@ -19,6 +19,8 @@
 """Answer file plugin."""
 
 
+import os
+import datetime
 import gettext
 _ = lambda m: gettext.dgettext(message=m, domain='ovirt-engine-setup')
 
@@ -50,36 +52,55 @@
     @plugin.event(
         stage=plugin.Stages.STAGE_CLOSEUP,
         priority=plugin.Stages.PRIORITY_LAST,
-        condition=lambda self: self.environment[
-            osetupcons.CoreEnv.ANSWER_FILE
-        ] is not None
     )
     def _closeup(self):
-        self.logger.info(
-            _("Generating answer file '{name}'").format(
-                name=self.environment[osetupcons.CoreEnv.ANSWER_FILE],
+        answers = []
+        answers.append(
+            os.path.join(
+                osetupcons.FileLocations.OVIRT_SETUP_ANSWERS_DIR,
+                '%s-%s.conf' % (
+                    datetime.datetime.now().strftime('%Y%m%d%H%M%S'),
+                    self.environment[osetupcons.CoreEnv.ACTION],
+                ),
             )
         )
-        with open(
-            self.resolveFile(self.environment[osetupcons.CoreEnv.ANSWER_FILE]),
-            'w'
-        ) as f:
-            f.write('[environment:default]\n')
-            for c in osetupcons.__dict__['__osetup_attrs__']:
-                for k in c.__dict__.values():
-                    if hasattr(k, '__osetup_attrs__'):
-                        if k.__osetup_attrs__['answerfile']:
-                            k = k.fget(None)
-                            if k in self.environment:
-                                v = self.environment[k]
-                                f.write(
-                                    '%s=%s:%s\n' % (
-                                        k,
-                                        common.typeName(v),
-                                        '\n'.join(v) if isinstance(v, list)
-                                        else v,
+        if self.environment[osetupcons.CoreEnv.ANSWER_FILE] is not None:
+            answers.append(
+                self.environment[osetupcons.CoreEnv.ANSWER_FILE]
+            )
+
+        for answer in answers:
+            self.logger.info(
+                _("Generating answer file '{name}'").format(
+                    name=answer,
+                )
+            )
+            with open(answer, 'w') as f:
+                f.write(
+                    (
+                        '# action=%s\n'
+                        '[environment:default]\n'
+                    ) % (
+                        self.environment[
+                            osetupcons.CoreEnv.ACTION
+                        ],
+                    )
+                )
+                for c in osetupcons.__dict__['__osetup_attrs__']:
+                    for k in c.__dict__.values():
+                        if hasattr(k, '__osetup_attrs__'):
+                            if k.__osetup_attrs__['answerfile']:
+                                k = k.fget(None)
+                                if k in self.environment:
+                                    v = self.environment[k]
+                                    f.write(
+                                        '%s=%s:%s\n' % (
+                                            k,
+                                            common.typeName(v),
+                                            '\n'.join(v) if isinstance(v, list)
+                                            else v,
+                                        )
                                     )
-                                )
 
 
 # vim: expandtab tabstop=4 shiftwidth=4


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8fca502907c0c4769a3f22e34e0a288a1a7b5997
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to