controllers.py 文件源码

python
阅读 41 收藏 0 点赞 0 评论 0

项目:mist.api 作者: mistio 项目源码 文件源码
def _list_images__fetch_images(self, search=None):
        default_images = config.EC2_IMAGES[self.cloud.region]
        image_ids = default_images.keys() + self.cloud.starred
        if not search:
            try:
                # this might break if image_ids contains starred images
                # that are not valid anymore for AWS
                images = self.connection.list_images(None, image_ids)
            except Exception as e:
                bad_ids = re.findall(r'ami-\w*', e.message, re.DOTALL)
                for bad_id in bad_ids:
                    self.cloud.starred.remove(bad_id)
                self.cloud.save()
                images = self.connection.list_images(None,
                                                     default_images.keys() +
                                                     self.cloud.starred)
            for image in images:
                if image.id in default_images:
                    image.name = default_images[image.id]
            images += self.connection.list_images(ex_owner='self')
        else:
            image_models = CloudImage.objects(
                me.Q(cloud_provider=self.connection.type,
                     image_id__icontains=search) |
                me.Q(cloud_provider=self.connection.type,
                     name__icontains=search)
            )[:200]
            images = [NodeImage(id=image.image_id, name=image.name,
                                driver=self.connection, extra={})
                      for image in image_models]
            if not images:
                # Actual search on EC2.
                images = self.connection.list_images(
                    ex_filters={'name': '*%s*' % search}
                )
        return images
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号