#nova–debug show <server-id>, (这里不讨论novaclient的认证过程)
可以从client端得到的debug信息,调用过程如下:
1. 从服务器获取token
2. 调用servers.Controller.index()
3. 调用servers.Controller.show()
4. 调用flavors.Controller.show()
5. 调用images.Controller.show()
<pre name="code" class="python"><span style="font-size:14px;">REQ: curl -g -i --cacert "/opt/stack/data/ca-bundle.pem" -X GET http://9.115.122.54:35357/v3/auth/tokens -H "X-
Subject-Token: {SHA1}6b17daa3f28a43f6ce18863dfaa4374fbe59f6e0" -H "User-Agent: python-keystoneclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}6bbfbc9a37c9
ab53696017541de0df5107e9ad35"
nova.api.openstack.wsgi: Calling method '<bound method Controller.index of <nova.api
.openstack.compute.servers.Controller object at 0x7fbd39a7b7d0>>'
nova.compute.api: Searching by: {'deleted': False, 'project_id': u'ecb571eb456242f1a
f7e37c5190382bd', u'name': u'vm1'}
nova.osapi_compute.wsgi.server: localhost "GET /v2/ecb571eb456242f1af7e37c5190382b
d/servers?name=vm1 HTTP/1.1" status: 200 len: 553 time: 0.1614599
nova.api.openstack.wsgi: Calling method '<bound method Controller.show of <nova.api.
openstack.compute.servers.Controller object at 0x7fbd39a7b7d0>>'
nova.osapi_compute.wsgi.server: localhost "GET /v2/ecb571eb456242f1af7e37c5190382bd/servers/33b937f9-2785-4fe0-8f88-6474ff50f7bb HTTP/1.1" status: 200 len: 1892 time: 0.0848639
nova.api.openstack.wsgi: Calling method '<bound method Controller.show of <nova.api.openstack.compute.flavors.Controller object at 0x7fbd39a0b910>>'
nova.osapi_compute.wsgi.server:localhost "GET /v2/ecb571eb456242f1af7e37c5190382bd/flavors/42 HTTP/1.1" status: 200 len: 621 time: 0.0289028
nova.api.openstack.wsgi:Calling method '<bound method Controller.show of <nova.api.openstack.compute.images.Controller object at 0x7fbd399f0bd0>>'
nova.osapi_compute.wsgi.server: localhost "GET /v2/ecb571eb456242f1af7e37c5190382bd/images/16f62e95-57b0-4ddd-88ee-2b063ce5f1e3 HTTP/1.1" status:

本文详细解析了通过novaclient执行nova show <server-id>命令时,客户端与Nova API之间的调用流程。从获取token开始,依次调用servers.Controller.index(), servers.Controller.show(), flavors.Controller.show()和images.Controller.show()。当不使用--minimal参数时,还会获取image和flavor信息。同时,文章提出疑问:未明确请求security-groups信息,为何在返回结果中出现,暗示了Nova API内部extension机制的作用,留待下篇博客解答。"
46968391,5108723,理解ACM中的邻接表结构,"['图论算法', '数据结构', 'ACM竞赛', '图的存储']
最低0.47元/天 解锁文章
294

被折叠的 条评论
为什么被折叠?



