详解openstack命令启动实现流程及原理(nova --debug image-list)

感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!

如有转载,请保留源作者博客信息。

Better Me的博客:blog.csdn.net/tantexian

如需交流,欢迎大家博客留言。

分析命令nova --debug image-list原理实现:


vim /usr/bin/nova

load_entry_point('python-novaclient==2.17.0', 'console_scripts', 'nova')()
第一个参数定向到 /usr/lib/python2.6/site-packages/python_novaclient-2.17.0-py2.6.egg-info
然后搜索EGG-INFO/entry_points.txt

vim /usr/lib/python2.6/site-packages/python_novaclient-2.17.0-py2.6.egg-info/entry_points.txt 

第二个参数就是entry_points.txt文件group名称

nova就是传递进来的参数,实际指向novaclient.shell模块的main函数

详解openstack命令启动实现流程及原理(nova --debug image-list)_第1张图片

跟进代码:


详解openstack命令启动实现流程及原理(nova --debug image-list)_第2张图片

上述代码从命令行接收参数,或者从环境变量中获取参数值,进行验证等操作。




 nova --debug image-list

详解openstack命令启动实现流程及原理(nova --debug image-list)_第3张图片


从日志上可以看出授权代码:


发送请求,获取image信息代码:

args.func(self.cs, args)

从args的keyfunc=<function do_image_list at 0x2c2d410>得住调用do_image_list函数。

然后调用glanceclient里面的:


vim /usr/lib/python2.6/site-packages/glanceclient/v1/images.py详解openstack命令启动实现流程及原理(nova --debug image-list)_第4张图片

详解openstack命令启动实现流程及原理(nova --debug image-list)_第5张图片


以上则与页面horizon调用的代码一致。这里是命令和dashboard调用底层nova的共同接口。

页面执行流程,请参考文章:openstack ice版文档horizon整理(页面resize)

你可能感兴趣的:(详解openstack命令启动实现流程及原理(nova --debug image-list))