def test_parse_repository_tag(self): self.assertEqual(parse_repository_tag("root"), ("root", "", ":")) self.assertEqual(parse_repository_tag("root:tag"), ("root", "tag", ":")) self.assertEqual(parse_repository_tag("user/repo"), ("user/repo", "", ":")) self.assertEqual(parse_repository_tag("user/repo:tag"), ("user/repo", "tag", ":")) self.assertEqual(parse_repository_tag("url:5000/repo"), ("url:5000/repo", "", ":")) self.assertEqual(parse_repository_tag("url:5000/repo:tag"), ("url:5000/repo", "tag", ":")) self.assertEqual(parse_repository_tag("root@sha256:digest"), ("root", "sha256:digest", "@")) self.assertEqual(parse_repository_tag("user/repo@sha256:digest"), ("user/repo", "sha256:digest", "@")) self.assertEqual(parse_repository_tag("url:5000/repo@sha256:digest"), ("url:5000/repo", "sha256:digest", "@"))
def test_parse_repository_tag(self): assert parse_repository_tag("root") == ("root", "", ":") assert parse_repository_tag("root:tag") == ("root", "tag", ":") assert parse_repository_tag("user/repo") == ("user/repo", "", ":") assert parse_repository_tag("user/repo:tag") == ("user/repo", "tag", ":") assert parse_repository_tag("url:5000/repo") == ("url:5000/repo", "", ":") assert parse_repository_tag("url:5000/repo:tag") == ("url:5000/repo", "tag", ":") assert parse_repository_tag("root@sha256:digest") == ("root", "sha256:digest", "@") assert parse_repository_tag("user/repo@sha256:digest") == ("user/repo", "sha256:digest", "@") assert parse_repository_tag("url:5000/repo@sha256:digest") == ( "url:5000/repo", "sha256:digest", "@" )
def test_parse_repository_tag(self): self.assertEqual(parse_repository_tag("root"), ("root", "")) self.assertEqual(parse_repository_tag("root:tag"), ("root", "tag")) self.assertEqual(parse_repository_tag("user/repo"), ("user/repo", "")) self.assertEqual(parse_repository_tag("user/repo:tag"), ("user/repo", "tag")) self.assertEqual(parse_repository_tag("url:5000/repo"), ("url:5000/repo", "")) self.assertEqual(parse_repository_tag("url:5000/repo:tag"), ("url:5000/repo", "tag"))
def process_service(self, service, silent=False): if 'image' not in service.options: # [Developer] I know its peretty bad hack, I can improve on this by having a clone of this object image_with_tag = self.get_repository_name_with_tag(service) log.info('Service (%s) docker image should be (%s)' % (service.name, image_with_tag)) service.options['image'] = image_with_tag repo, tag, _ = parse_repository_tag(service.options['image']) kwargs = { 'tag': tag or 'latest', 'stream': True, 'platform': getattr(service, 'platform', None), } if kwargs['platform'] and version_lt(service.client.api_version, '1.35'): raise OperationFailedError( 'Impossible to perform platform-targeted pulls for API version < 1.35' ) self.try_to_pull_otherwise_build(service, repo, kwargs)