8333: Support "myrepo.example:8888/repo/image:tag"
authorTom Clegg <tclegg@veritasgenetics.com>
Tue, 3 Oct 2017 13:03:33 +0000 (09:03 -0400)
committerTom Clegg <tclegg@veritasgenetics.com>
Tue, 3 Oct 2017 13:06:28 +0000 (09:06 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

sdk/python/arvados/commands/keepdocker.py
sdk/python/tests/test_arv_keepdocker.py

index 448695902ba51bd70d64cca1ab0983affd36341a..0951651ab949d512e463d9e2a8aef2a4af3c1a6b 100644 (file)
@@ -364,7 +364,8 @@ def main(arguments=None, stdout=sys.stdout):
                 "image %r already includes a tag, cannot add tag argument %r",
                 args.image, args.tag)
             sys.exit(1)
-        args.image, args.tag = args.image.split(':', 1)
+        # rsplit() accommodates "myrepo.example:8888/repo/image:tag"
+        args.image, args.tag = args.image.rsplit(':', 1)
     elif args.tag is None:
         args.tag = 'latest'
 
index bf22860a5be92c0b7152c6827726d7e039a498a0..777d7623176d9590c00f5341a01e275f0311c0df 100644 (file)
@@ -130,3 +130,9 @@ class ArvKeepdockerTestCase(unittest.TestCase, tutil.VersionChecker):
                         side_effect=StopTest) as find_image_mock:
             self.run_arv_keepdocker(['repo:tag'], sys.stderr)
         find_image_mock.assert_called_with('repo', 'tag')
+
+        with self.assertRaises(StopTest), \
+             mock.patch('arvados.commands.keepdocker.find_one_image_hash',
+                        side_effect=StopTest) as find_image_mock:
+            self.run_arv_keepdocker(['myreg.example:8888/repo/img:tag'], sys.stderr)
+        find_image_mock.assert_called_with('myreg.example:8888/repo/img', 'tag')