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

Change subject: packaging: setup: handle special characters in password
......................................................................

packaging: setup: handle special characters in password

escape chars based on usage, reuse escape.

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=811234
Change-Id: Ide021a99d30b616e6396a7412ec17cf3a3e0ed02
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
M packaging/setup/ovirt_engine_setup/util.py
M packaging/setup/plugins/ovirt-engine-common/db/pgpass.py
M packaging/setup/plugins/ovirt-engine-setup/config/ca.py
M packaging/setup/plugins/ovirt-engine-setup/config/database.py
4 files changed, 27 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/11/17911/1

diff --git a/packaging/setup/ovirt_engine_setup/util.py 
b/packaging/setup/ovirt_engine_setup/util.py
index 218023f..be9aa44 100644
--- a/packaging/setup/ovirt_engine_setup/util.py
+++ b/packaging/setup/ovirt_engine_setup/util.py
@@ -67,4 +67,15 @@
     return port
 
 
+@util.export
+def escape(s, chars):
+    ret = ''
+    for c in s:
+        if c in chars:
+            ret += '\\' + c
+        else:
+            ret += c
+    return ret
+
+
 # vim: expandtab tabstop=4 shiftwidth=4
diff --git a/packaging/setup/plugins/ovirt-engine-common/db/pgpass.py 
b/packaging/setup/plugins/ovirt-engine-common/db/pgpass.py
index 564ca24..916da2a 100644
--- a/packaging/setup/plugins/ovirt-engine-common/db/pgpass.py
+++ b/packaging/setup/plugins/ovirt-engine-common/db/pgpass.py
@@ -30,6 +30,7 @@
 
 
 from ovirt_engine_setup import constants as osetupcons
+from ovirt_engine_setup import util as osetuputil
 
 
 @util.export
@@ -63,7 +64,10 @@
                     port=self.environment[osetupcons.DBEnv.PORT],
                     database=self.environment[osetupcons.DBEnv.DATABASE],
                     user=self.environment[osetupcons.DBEnv.USER],
-                    password=self.environment[osetupcons.DBEnv.PASSWORD],
+                    password=osetuputil.escape(
+                        self.environment[osetupcons.DBEnv.PASSWORD],
+                        ':\\',
+                    ),
                 ),
             )
 
diff --git a/packaging/setup/plugins/ovirt-engine-setup/config/ca.py 
b/packaging/setup/plugins/ovirt-engine-setup/config/ca.py
index e4e391b..e741983 100644
--- a/packaging/setup/plugins/ovirt-engine-setup/config/ca.py
+++ b/packaging/setup/plugins/ovirt-engine-setup/config/ca.py
@@ -19,7 +19,6 @@
 """CA plugin."""
 
 
-import re
 import gettext
 _ = lambda m: gettext.dgettext(message=m, domain='ovirt-engine-setup')
 
@@ -31,6 +30,7 @@
 
 
 from ovirt_engine_setup import constants as osetupcons
+from ovirt_engine_setup import util as osetuputil
 
 
 @util.export
@@ -100,15 +100,17 @@
                         osetupcons.FileLocations.
                         OVIRT_ENGINE_PKI_ENGINE_TRUST_STORE
                     ),
-                    trust_store_password=re.escape(
-                        osetupcons.Const.PKI_PASSWORD
+                    trust_store_password=osetuputil.escape(
+                        osetupcons.Const.PKI_PASSWORD,
+                        '"\\$',
                     ),
                     engine_store=(
                         osetupcons.FileLocations.
                         OVIRT_ENGINE_PKI_ENGINE_STORE
                     ),
-                    engine_store_password=re.escape(
-                        osetupcons.Const.PKI_PASSWORD
+                    engine_store_password=osetuputil.escape(
+                        osetupcons.Const.PKI_PASSWORD,
+                        '"\\$',
                     ),
                     engine_store_alias='1',
                 ),
diff --git a/packaging/setup/plugins/ovirt-engine-setup/config/database.py 
b/packaging/setup/plugins/ovirt-engine-setup/config/database.py
index f65b734..8724e89 100644
--- a/packaging/setup/plugins/ovirt-engine-setup/config/database.py
+++ b/packaging/setup/plugins/ovirt-engine-setup/config/database.py
@@ -19,7 +19,6 @@
 """Database plugin."""
 
 
-import re
 import gettext
 _ = lambda m: gettext.dgettext(message=m, domain='ovirt-engine-setup')
 
@@ -31,6 +30,7 @@
 
 
 from ovirt_engine_setup import constants as osetupcons
+from ovirt_engine_setup import util as osetuputil
 
 
 @util.export
@@ -78,8 +78,9 @@
                     host=self.environment[osetupcons.DBEnv.HOST],
                     port=self.environment[osetupcons.DBEnv.PORT],
                     user=self.environment[osetupcons.DBEnv.USER],
-                    password=re.escape(
-                        self.environment[osetupcons.DBEnv.PASSWORD]
+                    password=osetuputil.escape(
+                        self.environment[osetupcons.DBEnv.PASSWORD],
+                        '"\\$',
                     ),
                     db=self.environment[osetupcons.DBEnv.DATABASE],
                     secured=self.environment[osetupcons.DBEnv.SECURED],


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ide021a99d30b616e6396a7412ec17cf3a3e0ed02
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