Merge branch '14880-keepdocker-argparse' refs #14880
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Fri, 8 Mar 2019 21:05:12 +0000 (16:05 -0500)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Fri, 8 Mar 2019 21:05:12 +0000 (16:05 -0500)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

1  2 
sdk/python/arvados/commands/keepdocker.py

index ec2a9942a6794153ea69138ba467a20f8b1ae6a6,019b949e53745612a03455946c3702af2373f422..d4fecc47b4d23fbe3b35d734f7c2428ebbe622e1
@@@ -64,13 -64,6 +64,6 @@@ _group.add_argument
      '--no-pull', action='store_false', dest='pull',
      help="Use locally installed image only, don't pull image from Docker registry (default)")
  
- keepdocker_parser.add_argument(
-     'image', nargs='?',
-     help="Docker image to upload: repo, repo:tag, or hash")
- keepdocker_parser.add_argument(
-     'tag', nargs='?',
-     help="Tag of the Docker image to upload (default 'latest'), if image is given as an untagged repo name")
  # Combine keepdocker options listed above with run_opts options of arv-put.
  # The options inherited from arv-put include --name, --project-uuid,
  # --progress/--no-progress/--batch-progress and --resume/--no-resume.
@@@ -78,6 -71,13 +71,13 @@@ arg_parser = argparse.ArgumentParser
          description="Upload or list Docker images in Arvados",
          parents=[keepdocker_parser, arv_put.run_opts, arv_cmd.retry_opt])
  
+ arg_parser.add_argument(
+     'image', nargs='?',
+     help="Docker image to upload: repo, repo:tag, or hash")
+ arg_parser.add_argument(
+     'tag', nargs='?',
+     help="Tag of the Docker image to upload (default 'latest'), if image is given as an untagged repo name")
  class DockerError(Exception):
      pass
  
@@@ -230,12 -230,12 +230,12 @@@ def docker_link_sort_key(link)
      Docker metadata links to sort them from least to most preferred.
      """
      try:
 -        image_timestamp = ciso8601.parse_datetime(
 +        image_timestamp = ciso8601.parse_datetime_as_naive(
              link['properties']['image_timestamp'])
      except (KeyError, ValueError):
          image_timestamp = EARLIEST_DATETIME
      try:
 -        created_timestamp = ciso8601.parse_datetime(link['created_at'])
 +        created_timestamp = ciso8601.parse_datetime_as_naive(link['created_at'])
      except ValueError:
          created_timestamp = None
      return (image_timestamp, created_timestamp)
@@@ -492,6 -492,9 +492,9 @@@ def main(arguments=None, stdout=sys.std
  
          # Call arv-put with switches we inherited from it
          # (a.k.a., switches that aren't our own).
+         if arguments is None:
+             arguments = sys.argv[1:]
+         arguments = [i for i in arguments if i not in (args.image, args.tag, image_repo_tag)]
          put_args = keepdocker_parser.parse_known_args(arguments)[1]
  
          if args.name is None: