我在http://docs.openstack.org/developer/python-novaclient/api.html上找到了一个关于openstack python API的简单教程,但似乎不起作用。当我想跑的时候
nova.servers.list()
或者
^{pr2}$从python解释器教程中,我得到以下错误:
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/novaclient/v2/servers.py", line 617, in list
return self._list("/servers%s%s" % (detail, query_string), "servers")
File "/usr/lib/python2.7/dist-packages/novaclient/base.py", line 64, in _list
_resp, body = self.api.client.get(url)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 440, in get
return self._cs_request(url, 'GET', **kwargs)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 399, in _cs_request
self.authenticate()
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 569, in authenticate
self._v2_auth(auth_url)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 634, in _v2_auth
return self._authenticate(url, body)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 647, in _authenticate
**kwargs)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 392, in _time_request
resp, body = self.request(url, method, **kwargs)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 386, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.NotFound: The resource could not be found. (HTTP 404)
我用的是和管理员一样的证书_开放式rc.sh,有效。搞不清是什么问题。在
您将pythonnovaclient用作库,但它从未被设计成那样使用。不幸的是,人们将它用作库。在
试试官方的Python OpenStack SDK。在
列出服务器或风格的代码。在
^{pr2}$更多可能有用的信息:
解决了这个问题:不知道为什么,openstack抱怨auth中缺少用户域(不记得确切的消息错误)。在nova中找不到如何通知用户域,但我在keystone上找到了!在
在那之后,我用keystone在nova进行了认证:
^{pr2}$我在回答这个问题时使用了一些有用的链接:
http://docs.openstack.org/developer/python-keystoneclient/authentication-plugins.htmlhttp://docs.openstack.org/developer/python-keystoneclient/using-api-v3.htmlhttp://docs.openstack.org/developer/python-novaclient/api.html
根据您的描述,CLI工作正常,但是脚本/解释器失败,因此这肯定是因为初始化novaclient.novaclient以错误的方式。在
使用novaclient.client.client这取决于你使用的版本,但是你的问题没有提供这样的信息,所以目前我不能为你提供一个例子,你可以通过运行命令'nova version'来检查它。在
您可以从python novaclient http://docs.openstack.org/developer/python-novaclient/api.html的开发人员文档中获得帮助
记住,使用关键字参数代替普通参数是一个很好的实践,这意味着
当你试图以错误的方式做某事时,它会暴露问题。在
相关问题 更多 >
编程相关推荐