3551: When testing keep clients, write keepstore/keepproxy logs to
authorTom Clegg <tom@curoverse.com>
Wed, 13 Aug 2014 18:32:40 +0000 (14:32 -0400)
committerTom Clegg <tom@curoverse.com>
Wed, 13 Aug 2014 18:32:40 +0000 (14:32 -0400)
tmp/run_test_server.log instead of discarding.

sdk/python/tests/run_test_server.py

index a82866a6739921abf22c3fd079b4a6ab68c13605..3226a3c639354393343beaf4fa5d68adf45bb17c 100644 (file)
@@ -25,6 +25,8 @@ SERVER_PID_PATH = 'tmp/pids/webrick-test.pid'
 WEBSOCKETS_SERVER_PID_PATH = 'tmp/pids/passenger-test.pid'
 os.environ['PATH'] = os.environ['GOPATH'] + '/bin:' + os.environ['PATH']
 
+logfile = None
+
 def find_server_pid(PID_PATH, wait=10):
     now = time.time()
     timeout = now + wait
@@ -143,7 +145,7 @@ def _start_keep(n, keep_args):
     for arg, val in keep_args.iteritems():
         keep_cmd.append("{}={}".format(arg, val))
 
-    kp0 = subprocess.Popen(keep_cmd)
+    kp0 = subprocess.Popen(keep_cmd, stderr=log_stream())
     with open("tmp/keep{}.pid".format(n), 'w') as f:
         f.write(str(kp0.pid))
 
@@ -206,7 +208,8 @@ def run_keep_proxy(auth):
     os.environ["ARVADOS_API_TOKEN"] = fixture("api_client_authorizations")[auth]["api_token"]
 
     kp0 = subprocess.Popen(["keepproxy",
-                            "-pid=tmp/keepproxy.pid", "-listen=:{}".format(25101)])
+                            "-pid=tmp/keepproxy.pid", "-listen=:{}".format(25101)],
+                           stderr=log_stream())
 
     authorize_with("admin")
     api = arvados.api('v1', cache=False)
@@ -217,6 +220,16 @@ def run_keep_proxy(auth):
 def stop_keep_proxy():
     kill_server_pid("tmp/keepproxy.pid", 0)
 
+def log_stream():
+    global logfile
+    if not os.path.exists("tmp"):
+        os.mkdir("tmp")
+    if not logfile:
+        logpath = os.path.join(os.getcwd(), 'tmp', 'run_test_server.log')
+        logfile = open(logpath, 'a')
+        print >>sys.stderr, "Saving Keep server log messages to %s" % (logpath,)
+    return logfile
+
 def fixture(fix):
     '''load a fixture yaml file'''
     with open(os.path.join(SERVICES_SRC_DIR, 'api', "test", "fixtures",