summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wong2017-07-27 00:51:59 +0000
committerMark Wong2018-01-05 16:11:28 +0000
commit912fa3cc5ccc599a6f8f90ae429f91e828e559a2 (patch)
treeda8779d672d99d4e84540fba0db7ee904e65b2af
parentaf9c1ef86dfa9fe22cbed192eb64e8022c0ea5a8 (diff)
Fix use of env in call()
The env parameter to call() was clearing the PATH environment to only have the postgres binary install path. Modify only the PATH environment.
-rw-r--r--client/benchmarks/pgbench.py15
-rw-r--r--client/utils/cluster.py9
2 files changed, 14 insertions, 10 deletions
diff --git a/client/benchmarks/pgbench.py b/client/benchmarks/pgbench.py
index 2fba3c5..9b2b3c8 100644
--- a/client/benchmarks/pgbench.py
+++ b/client/benchmarks/pgbench.py
@@ -31,6 +31,9 @@ class PgBench(object):
self._duration = duration
self._runs = runs
+ self._env = os.environ
+ self._env['PATH'] = ':'.join([bin_path, self._env['PATH']])
+
self._results = {}
@staticmethod
@@ -58,13 +61,12 @@ class PgBench(object):
self._results[scale] = {'init': None, 'warmup': None, 'runs': []}
log("recreating '%s' database" % (self._dbname,))
- run_cmd(['dropdb', '--if-exists', self._dbname],
- env={'PATH': self._bin})
- run_cmd(['createdb', self._dbname], env={'PATH': self._bin})
+ run_cmd(['dropdb', '--if-exists', self._dbname], env=self._env)
+ run_cmd(['createdb', self._dbname], env=self._env)
log("initializing pgbench '%s' with scale %s" % (self._dbname, scale))
r = run_cmd(['pgbench', '-i', '-s', str(scale), self._dbname],
- env={'PATH': self._bin})
+ env=self._env)
# remember the init duration
self._results[scale]['init'] = r[2]
@@ -211,14 +213,13 @@ class PgBench(object):
args.extend([self._dbname])
# do an explicit checkpoint before each run
- run_cmd(['psql', self._dbname, '-c', 'checkpoint'],
- env={'PATH': self._bin})
+ run_cmd(['psql', self._dbname, '-c', 'checkpoint'], env=self._env)
log("pgbench: clients=%d, jobs=%d, aggregate=%s, read-only=%s, "
"duration=%d" % (nclients, njobs, aggregate, read_only, duration))
start = time.time()
- r = run_cmd(args, env={'PATH': self._bin})
+ r = run_cmd(args, env=self._env)
end = time.time()
r = PgBench._parse_results(r[1])
diff --git a/client/utils/cluster.py b/client/utils/cluster.py
index d16d91d..81bca89 100644
--- a/client/utils/cluster.py
+++ b/client/utils/cluster.py
@@ -15,6 +15,9 @@ class PgCluster(object):
self._bin = bin_path
self._data = data_path
+ self._env = os.environ
+ self._env['PATH'] = ':'.join([bin_path, self._env['PATH']])
+
self._options = ""
def _initdb(self):
@@ -22,7 +25,7 @@ class PgCluster(object):
with TemporaryFile() as strout:
log("initializing cluster into '%s'" % (self._data,))
- call(['pg_ctl', '-D', self._data, 'init'], env={'PATH': self._bin},
+ call(['pg_ctl', '-D', self._data, 'init'], env=self._env,
stdout=strout, stderr=STDOUT)
def _configure(self, config):
@@ -62,7 +65,7 @@ class PgCluster(object):
if len(self._options) > 0:
cmd.extend(['-o', self._options])
cmd.append('start')
- call(cmd, env={'PATH': self._bin}, stdout=strout, stderr=STDOUT)
+ call(cmd, env=self._env, stdout=strout, stderr=STDOUT)
def stop(self, destroy=True):
'stop the cluster'
@@ -71,7 +74,7 @@ class PgCluster(object):
log("stopping cluster in '%s' using '%s' binaries" %
(self._data, self._bin))
call(['pg_ctl', '-D', self._data, '-w', '-t', '60', 'stop'],
- env={'PATH': self._bin}, stdout=strout, stderr=STDOUT)
+ env=self._env, stdout=strout, stderr=STDOUT)
# kill any remaining processes, remove the data dir
if destroy: