Merge branch 'master' into 7167-keep-rsync
[arvados.git] / sdk / python / tests / run_test_server.py
index a7b60e7d7ba8bdcf465d4ee7509c8fb6c0e094ff..d90d2ad1a7b61dd567bc6931c95a06b8d8463226 100644 (file)
@@ -43,8 +43,6 @@ if not os.path.exists(TEST_TMPDIR):
 
 my_api_host = None
 _cached_config = {}
-keep_existing = False
-enforce_permissions = False
 
 def find_server_pid(PID_PATH, wait=10):
     now = time.time()
@@ -325,9 +323,8 @@ def _start_keep(n, keep_args):
 
     return port
 
-def run_keep(blob_signing_key=None):
-    if not keep_existing:
-      stop_keep()
+def run_keep(blob_signing_key=None, enforce_permissions=False, num_servers=2):
+    stop_keep(num_servers)
 
     keep_args = {}
     if not blob_signing_key:
@@ -353,12 +350,7 @@ def run_keep(blob_signing_key=None):
     for d in api.keep_disks().list().execute()['items']:
         api.keep_disks().delete(uuid=d['uuid']).execute()
 
-    start_index = 0
-    end_index = 2
-    if keep_existing:
-        start_index = 2
-        end_index = 3
-    for d in range(start_index, end_index):
+    for d in range(0, num_servers):
         port = _start_keep(d, keep_args)
         svc = api.keep_services().create(body={'keep_service': {
             'uuid': 'zzzzz-bi6l4-keepdisk{:07d}'.format(d),
@@ -380,11 +372,9 @@ def _stop_keep(n):
     if os.path.exists(os.path.join(TEST_TMPDIR, "keep.blob_signing_key")):
         os.remove(os.path.join(TEST_TMPDIR, "keep.blob_signing_key"))
 
-def stop_keep():
-    _stop_keep(0)
-    _stop_keep(1)
-    # We may have created an additional keep servers when keep_existing is used
-    _stop_keep(2)
+def stop_keep(num_servers=2):
+    for n in range(0, num_servers):
+        _stop_keep(n)
 
 def run_keep_proxy():
     if 'ARVADOS_TEST_PROXY_SERVICES' in os.environ:
@@ -606,16 +596,11 @@ if __name__ == "__main__":
     parser = argparse.ArgumentParser()
     parser.add_argument('action', type=str, help="one of {}".format(actions))
     parser.add_argument('--auth', type=str, metavar='FIXTURE_NAME', help='Print authorization info for given api_client_authorizations fixture')
-    parser.add_argument('--keep-existing', type=str, help="Used to add additional keep servers, without terminating existing servers")
-    parser.add_argument('--keep-enforce-permissions', type=str, help="Enforce keep permissions")
+    parser.add_argument('--num-keep-servers', metavar='int', type=int, default=2, help="Number of keep servers desired")
+    parser.add_argument('--keep-enforce-permissions', action="store_true", help="Enforce keep permissions")
 
     args = parser.parse_args()
 
-    if args.keep_existing == 'true':
-        keep_existing = True
-    if args.keep_enforce_permissions == 'true':
-        enforce_permissions = True
-
     if args.action not in actions:
         print("Unrecognized action '{}'. Actions are: {}.".format(args.action, actions), file=sys.stderr)
         sys.exit(1)
@@ -633,7 +618,7 @@ if __name__ == "__main__":
     elif args.action == 'stop':
         stop(force=('ARVADOS_TEST_API_HOST' not in os.environ))
     elif args.action == 'start_keep':
-        run_keep()
+        run_keep(enforce_permissions=args.keep_enforce_permissions, num_servers=args.num_keep_servers)
     elif args.action == 'stop_keep':
         stop_keep()
     elif args.action == 'start_keep_proxy':