You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by ta...@apache.org on 2018/10/26 00:11:07 UTC
impala git commit: test-with-docker: add --env option to pass through
env variables
Repository: impala
Updated Branches:
refs/heads/master 8cbec20ea -> 1dbb3c1be
test-with-docker: add --env option to pass through env variables
Adds simple mechanism to pass environment variables into
test-with-docker, which is occasionally useful, especially for
development and tinkering with tests. It's typically the right thing to
codify the environment variables into tests, but a pass through can be
handy.
The implementation is simple enough, passing the
variables into the docker containers.
Change-Id: I03c2feda8edc2983e423f862ed210fabb845714f
Reviewed-on: http://gerrit.cloudera.org:8080/11730
Reviewed-by: Laszlo Gaal <la...@cloudera.com>
Reviewed-by: Joe McDonnell <jo...@cloudera.com>
Tested-by: Impala Public Jenkins <im...@cloudera.com>
Project: http://git-wip-us.apache.org/repos/asf/impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/impala/commit/1dbb3c1b
Tree: http://git-wip-us.apache.org/repos/asf/impala/tree/1dbb3c1b
Diff: http://git-wip-us.apache.org/repos/asf/impala/diff/1dbb3c1b
Branch: refs/heads/master
Commit: 1dbb3c1be634c2a3e356c3b2ee5deac2436c9815
Parents: 8cbec20
Author: Philip Zeyliger <ph...@cloudera.com>
Authored: Wed May 16 12:23:47 2018 -0700
Committer: Impala Public Jenkins <im...@cloudera.com>
Committed: Thu Oct 25 23:52:58 2018 +0000
----------------------------------------------------------------------
docker/test-with-docker.py | 44 ++++++++++++++++++++++++-----------------
1 file changed, 26 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/impala/blob/1dbb3c1b/docker/test-with-docker.py
----------------------------------------------------------------------
diff --git a/docker/test-with-docker.py b/docker/test-with-docker.py
index 4efd712..88f4563 100755
--- a/docker/test-with-docker.py
+++ b/docker/test-with-docker.py
@@ -18,6 +18,23 @@
# under the License.
#
+# We do not use Impala's python environment here, nor do we depend on
+# non-standard python libraries to avoid needing extra build steps before
+# triggering this.
+import argparse
+import datetime
+import itertools
+import logging
+import multiprocessing
+import multiprocessing.pool
+import os
+import re
+import subprocess
+import sys
+import tempfile
+import threading
+import time
+
CLI_HELP = """\
Runs tests inside of docker containers, parallelizing different types of
tests. This script first creates a docker container, checks out this repo
@@ -100,22 +117,6 @@ as part of the build, in logs/docker/*/timeline.html.
# or move to different suite.
# - Run BE tests earlier (during data load)
-# We do not use Impala's python environment here, nor do we depend on
-# non-standard python libraries to avoid needing extra build steps before
-# triggering this.
-import argparse
-import datetime
-import logging
-import multiprocessing
-import multiprocessing.pool
-import os
-import re
-import subprocess
-import sys
-import tempfile
-import threading
-import time
-
if __name__ == '__main__' and __package__ is None:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import monitor
@@ -181,6 +182,10 @@ def main():
default=os.path.expanduser("~/.ccache"))
parser.add_argument('--tail', action="store_true",
help="Run tail on all container log files.")
+ parser.add_argument('--env', metavar='K=V', default=[], action='append',
+ help="""Passes given environment variables (expressed as KEY=VALUE)
+ through containers.
+ """)
parser.add_argument('--test', action="store_true")
args = parser.parse_args()
@@ -197,7 +202,8 @@ def main():
parallel_test_concurrency=args.parallel_test_concurrency,
suite_concurrency=args.suite_concurrency,
impalad_mem_limit_bytes=args.impalad_mem_limit_bytes,
- tail=args.tail)
+ tail=args.tail,
+ env=args.env)
fh = logging.FileHandler(os.path.join(_make_dir_if_not_exist(t.log_dir), "log.txt"))
fh.setFormatter(logging.Formatter(LOG_FORMAT))
@@ -430,7 +436,7 @@ class TestWithDocker(object):
def __init__(self, build_image, suite_names, name, cleanup_containers,
cleanup_image, ccache_dir, test_mode,
suite_concurrency, parallel_test_concurrency,
- impalad_mem_limit_bytes, tail):
+ impalad_mem_limit_bytes, tail, env):
self.build_image = build_image
self.name = name
self.containers = []
@@ -466,6 +472,7 @@ class TestWithDocker(object):
self.parallel_test_concurrency = parallel_test_concurrency
self.impalad_mem_limit_bytes = impalad_mem_limit_bytes
self.tail = tail
+ self.env = env
# Map suites back into objects; we ignore case for this mapping.
suites = []
@@ -545,6 +552,7 @@ class TestWithDocker(object):
"-v", _make_dir_if_not_exist(self.log_dir,
logdir) + ":/logs",
"-v", base + ":/mnt/base:ro"]
+ + list(itertools.chain(*[["-e", env] for env in self.env]))
+ extras
+ [image]
+ entrypoint).strip()