From: Mark Wong Date: Thu, 27 Jul 2017 00:51:59 +0000 (-0700) Subject: Fix use of env in call() X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=912fa3cc5ccc599a6f8f90ae429f91e828e559a2;p=pgperffarm.git 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. --- 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: