本文主要是介绍深挖Openstack Glance - 源码分析(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
============承接上篇 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
这篇关于深挖Openstack Glance - 源码分析(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!