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

Change subject: packaging: setup: move createPgPass to setup lib
......................................................................

packaging: setup: move createPgPass to setup lib

Change-Id: I792a4f6155d3287a65120f6a87452f3920b33e67
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
M packaging/setup/ovirt_engine_setup/database.py
M packaging/setup/plugins/ovirt-engine-common/base/db/pgpass.py
2 files changed, 58 insertions(+), 59 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/22920/1

diff --git a/packaging/setup/ovirt_engine_setup/database.py 
b/packaging/setup/ovirt_engine_setup/database.py
index e7960da..f0fcc96 100644
--- a/packaging/setup/ovirt_engine_setup/database.py
+++ b/packaging/setup/ovirt_engine_setup/database.py
@@ -16,6 +16,7 @@
 #
 
 
+import atexit
 import os
 import base64
 import tempfile
@@ -33,6 +34,9 @@
 
 from otopi import base
 from otopi import util
+
+
+from ovirt_engine import util as outil
 
 
 from ovirt_engine_setup import constants as osetupcons
@@ -256,6 +260,38 @@
 
 
 @util.export
+class Utils(base.Base):
+
+    def createPgPass(
+        self,
+        host,
+        port,
+        database,
+        user,
+        password,
+    ):
+        fd, pgpass = tempfile.mkstemp()
+        atexit.register(os.unlink, pgpass)
+        with os.fdopen(fd, 'w') as f:
+            f.write(
+                (
+                    '# DB USER credentials.\n'
+                    '{host}:{port}:{database}:{user}:{password}\n'
+                ).format(
+                    host=host,
+                    port=port,
+                    database=database,
+                    user=user,
+                    password=outil.escape(
+                        password,
+                        ':\\',
+                    ),
+                ),
+            )
+        return pgpass
+
+
+@util.export
 class OvirtUtils(base.Base):
 
     @property
diff --git a/packaging/setup/plugins/ovirt-engine-common/base/db/pgpass.py 
b/packaging/setup/plugins/ovirt-engine-common/base/db/pgpass.py
index 6ac350c..d23e201 100644
--- a/packaging/setup/plugins/ovirt-engine-common/base/db/pgpass.py
+++ b/packaging/setup/plugins/ovirt-engine-common/base/db/pgpass.py
@@ -19,8 +19,6 @@
 """DB pgpass plugin."""
 
 
-import os
-import tempfile
 import gettext
 _ = lambda m: gettext.dgettext(message=m, domain='ovirt-engine-setup')
 
@@ -29,10 +27,8 @@
 from otopi import plugin
 
 
-from ovirt_engine import util as outil
-
-
 from ovirt_engine_setup import constants as osetupcons
+from ovirt_engine_setup import database
 
 
 @util.export
@@ -40,47 +36,6 @@
     """DB pgpass plugin."""
     def __init__(self, context):
         super(Plugin, self).__init__(context=context)
-
-    def _createTempPgPass(self):
-        pgpass = None
-        if self.environment[
-            osetupcons.DBEnv.PGPASS_FILE
-        ] is not None:
-            pgpass = self.environment[
-                osetupcons.DBEnv.PGPASS_FILE
-            ]
-        else:
-            fd, pgpass = tempfile.mkstemp(
-                prefix='pgpass',
-                suffix='.tmp',
-            )
-            os.close(fd)
-            os.chmod(pgpass, 0o600)
-        self.logger.debug(
-            'Password==None %s',
-            self.environment[osetupcons.DBEnv.PASSWORD] is None,
-        )
-        if self.environment[osetupcons.DBEnv.PASSWORD] is not None:
-            with open(pgpass, 'w') as f:
-                f.write(
-                    (
-                        '# DB USER credentials.\n'
-                        '{host}:{port}:{database}:{user}:{password}\n'
-                    ).format(
-                        host=self.environment[osetupcons.DBEnv.HOST],
-                        port=self.environment[osetupcons.DBEnv.PORT],
-                        database=self.environment[osetupcons.DBEnv.DATABASE],
-                        user=self.environment[osetupcons.DBEnv.USER],
-                        password=outil.escape(
-                            self.environment[osetupcons.DBEnv.PASSWORD],
-                            ':\\',
-                        ),
-                    ),
-                )
-
-        self.environment[
-            osetupcons.DBEnv.PGPASS_FILE
-        ] = pgpass
 
     @plugin.event(
         stage=plugin.Stages.STAGE_INIT,
@@ -93,25 +48,33 @@
         name=osetupcons.Stages.DB_CREDENTIALS_AVAILABLE_EARLY,
     )
     def _validation(self):
-        self._createTempPgPass()
+        # this required for dbvalidations
+        if self.environment[osetupcons.DBEnv.PASSWORD] is not None:
+            self.environment[
+                osetupcons.DBEnv.PGPASS_FILE
+            ] = database.Utils().createPgPass(
+                host=self.environment[osetupcons.DBEnv.HOST],
+                port=self.environment[osetupcons.DBEnv.PORT],
+                database=self.environment[osetupcons.DBEnv.DATABASE],
+                user=self.environment[osetupcons.DBEnv.USER],
+                password=self.environment[osetupcons.DBEnv.PASSWORD],
+            )
 
     @plugin.event(
         stage=plugin.Stages.STAGE_MISC,
         name=osetupcons.Stages.DB_CREDENTIALS_AVAILABLE_LATE,
     )
     def _misc(self):
-        self._createTempPgPass()
-
-    @plugin.event(
-        stage=plugin.Stages.STAGE_CLEANUP,
-        condition=lambda self: self.environment[
-            osetupcons.DBEnv.PGPASS_FILE
-        ] is not None,
-    )
-    def _cleanup(self):
-        f = self.environment[osetupcons.DBEnv.PGPASS_FILE]
-        if os.path.exists(f):
-            os.unlink(f)
+        if self.environment[osetupcons.DBEnv.PGPASS_FILE] is None:
+            self.environment[
+                osetupcons.DBEnv.PGPASS_FILE
+            ] = database.Utils().createPgPass(
+                host=self.environment[osetupcons.DBEnv.HOST],
+                port=self.environment[osetupcons.DBEnv.PORT],
+                database=self.environment[osetupcons.DBEnv.DATABASE],
+                user=self.environment[osetupcons.DBEnv.USER],
+                password=self.environment[osetupcons.DBEnv.PASSWORD],
+            )
 
 
 # vim: expandtab tabstop=4 shiftwidth=4


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I792a4f6155d3287a65120f6a87452f3920b33e67
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
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