深挖Openstack Glance - 源码分析(2)

本文深入分析了OpenStack Glance的源码,涵盖获取image信息、删除image的详细步骤、获取image列表、元数据及下载image的过程。涉及的关键操作包括权限检查、状态更新以及与后端存储的交互。
摘要由CSDN通过智能技术生成

============承接上篇 Glance - 源码分析(1)=================


3. 获取image信息

def detail(self, req):

其中,获取镜像image数据的语句如下:

images = registry.get_images_detail(req.context, **params)

深入get_images_detail方法,对应的是/glance/registry/client/v1/api.py

def get_images_detail(context, **kwargs):
    # 进行registry端口的认证连接
    c = get_registry_client(context)

    # 通过get方法请求/images/detail
    # 返回image_list
    return c.get_images_detailed(**kwargs)

其中get_images_detailed方法对应的是/glance/registry/client/v1/client.py,里面do_request方法是发起请求,然后在/glance/registry/api/v1/_init_.py中查找匹配的请求:/images/detail。

res = self.do_request("GET", "/images/detail", params=params)
mapper.connect("/images/detail",
                controller=images_resource,
                action="detail",
                conditions={'method': ['GET']})

接下来会在/glance/registry/api/v1/image.py中找到对应的方法detail去查询:

params = self._get_query_params(req)
# 从数据库中获取对应的image数据
images = self._get_images(req.context, **params)
image_dicts = [make_image_dict(i) for i in images]
LOG.debug("Returning detailed image list")
# 以字典形式返回image
return dict(images=image_dicts)


4. 删除image

@utils.mutating
def delete(self, req, id):

4.1 首先检查是否有删除权限

# _enforce:检查是否有该操作的权限
self._enforce(req, 'del
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值