问题导读
1、你如何理解nova --debug image-list原理的实现?
2、nova通过什么来指向novaclient.shell模块的main函数?
3、怎么从日志上看出授权代码?
分析命令nova --debug image-list原理实现:
复制代码
- 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函数
跟进代码:
上述代码从命令行接收参数,或者从环境变量中获取参数值,进行验证等操作。
复制代码
从日志上可以看出授权代码:
发送请求,获取image信息代码:
复制代码
从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的共同接口。
|