感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!
如有转载,请保留源作者博客信息。
如需交流,欢迎大家博客留言。
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函数
跟进代码:
上述代码从命令行接收参数,或者从环境变量中获取参数值,进行验证等操作。
nova --debug image-list
从日志上可以看出授权代码:
发送请求,获取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
以上则与页面horizon调用的代码一致。这里是命令和dashboard调用底层nova的共同接口。
页面执行流程,请参考文章: