示例#1
0
    def import_image(self):
        """Import the image from the docker registry. Returns instance of image"""
        status_code, json_content = self.provider.o_api.post(
            'imagestreamimport', {
                'apiVersion': 'v1',
                'kind': 'ImageStreamImport',
                'metadata': {
                    'name': self.name,
                    'namespace': self.namespace
                },
                'spec': {
                    'import':
                    True,
                    'images': [{
                        'from': {
                            'kind': 'DockerImage',
                            'name': self.registry
                        },
                        'importPolicy': {},
                        'to': {
                            'name': 'latest'
                        }
                    }]
                }
            },
            namespace=self.namespace)
        if status_code not in (200, 201):
            raise RequestFailedException(
                'Failed to import image. status_code: {};  '
                'json_content: {};'.format(status_code, json_content))
        _, image_name, image_id, _ = Image.parse_docker_image_info(
            json_content['status']['images'][-1]['image']
            ['dockerImageReference'])

        return Image(self.provider, image_name, image_id)
示例#2
0
 def list_docker_image(self):
     """Returns list of images (Docker registry only)"""
     entities = []
     entities_j = self.o_api.get('image')[1]['items']
     for entity_j in entities_j:
         if 'dockerImageReference' not in entity_j:
             continue
         _, name, image_id, _ = Image.parse_docker_image_info(entity_j['dockerImageReference'])
         entities.append(Image(self, name, image_id))
     return entities