Пример #1
0
    def describe_images(self, repository_name, registry_id=None, image_ids=None):

        if repository_name in self.repositories:
            repository = self.repositories[repository_name]
        else:
            raise RepositoryNotFoundException(repository_name, registry_id or DEFAULT_REGISTRY_ID)

        if image_ids:
            response = set()
            for image_id in image_ids:
                found = False
                for image in repository.images:
                    if (('imageDigest' in image_id and image.get_image_digest() == image_id['imageDigest']) or
                            ('imageTag' in image_id and image_id['imageTag'] in image.image_tags)):
                        found = True
                        response.add(image)
                if not found:
                    image_id_representation = "{imageDigest:'%s', imageTag:'%s'}" % (
                        image_id.get('imageDigest', 'null'),
                        image_id.get('imageTag', 'null'),
                    )
                    raise ImageNotFoundException(
                        image_id=image_id_representation,
                        repository_name=repository_name,
                        registry_id=registry_id or DEFAULT_REGISTRY_ID)

        else:
            response = []
            for image in repository.images:
                response.append(image)

        return response
Пример #2
0
    def _get_image(self, image_tag, image_digest):
        # you can either search for one or both
        image = next(
            (i for i in self.images
             if (not image_tag or image_tag in i.image_tags) and (
                 not image_digest or image_digest == i.get_image_digest())),
            None,
        )

        if not image:
            image_id_rep = "{{imageDigest:'{0}', imageTag:'{1}'}}".format(
                image_digest or "null", image_tag or "null")

            raise ImageNotFoundException(
                image_id=image_id_rep,
                repository_name=self.name,
                registry_id=self.registry_id,
            )

        return image