aboutsummaryrefslogtreecommitdiffstats
path: root/functest/utils
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2017-02-08 17:48:47 +0100
committerCédric Ollivier <cedric.ollivier@orange.com>2017-02-09 21:36:49 +0100
commiteb0151059dcc1efff797eeeb9f0e77e344426ef6 (patch)
tree4e5e0032ded12c2817bc5ec587f187db9e7e7272 /functest/utils
parenta34f23295ba75694d2837687df3ada5541489a25 (diff)
Fix source_credentials in openstack_utils
It fixes issues raised when an env var contains '=' (e.g. LS_COLORS). It now exports the vars listed in rc_file without creating a new process. Change-Id: I6e6a4e3ab9c45afe4d40015831acb283acbe564c Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
Diffstat (limited to 'functest/utils')
-rwxr-xr-xfunctest/utils/openstack_utils.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/functest/utils/openstack_utils.py b/functest/utils/openstack_utils.py
index 64f18504..a0d78ae9 100755
--- a/functest/utils/openstack_utils.py
+++ b/functest/utils/openstack_utils.py
@@ -10,7 +10,7 @@
import os
import os.path
-import subprocess
+import re
import sys
import time
@@ -112,12 +112,12 @@ def get_credentials(other_creds={}):
def source_credentials(rc_file):
- pipe = subprocess.Popen(". %s; env" % rc_file, stdout=subprocess.PIPE,
- shell=True)
- output = pipe.communicate()[0]
- env = dict((line.split("=", 1) for line in output.splitlines()))
- os.environ.update(env)
- return env
+ with open(rc_file, "r") as f:
+ for line in f:
+ var = line.rstrip('"\n').replace('export ', '').split("=")
+ key = re.sub(r'^ *| *$', '', var[0])
+ value = re.sub(r'^[" ]*|[ "]*$', '', "".join(var[1:]))
+ os.environ[key] = value
def get_credentials_for_rally():