Пример #1
0
    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", "@"))
Пример #2
0
    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", "@"))
Пример #3
0
 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", "@"
     )
Пример #4
0
 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", "@"
     )
Пример #5
0
 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"))
Пример #6
0
    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)