2

http://docs.openstack.org/developer/python-novaclient/api.htmlで見つけた openstack python API の簡単なチュートリアルに従おうとしていますが、機能していないようです。走ろうとすると

nova.servers.list()

また

nova.flavors.list()

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)

動作する admin_openrc.sh と同じ資格情報を使用しています。何が問題なのかわかりません。

4

3 に答える 3

0

あなたの説明から、CLI は正常に動作しますが、スクリプト/インタープリターは失敗するため、間違いなく novaclient.client.Client を間違った方法で初期化したことが原因です。

novaclient.client.Client の使用法は、使用しているバージョンによって異なりますが、質問ではそのような情報が提供されていないため、現在、例を提供することはできません。コマンド「nova --version」を実行して確認できます。

python-novaclient http://docs.openstack.org/developer/python-novaclient/api.htmlの開発者ドキュメントからヘルプを得ることができます

通常の引数の代わりにキーワード引数を使用することをお勧めします。つまり、

nc = client.Client(version=2, user='admin', password='password',
                   project_id='12345678', auth_url='http://127.0.0.1:5000')

間違った方法で何かを行おうとすると、問題が明らかになります。

于 2015-11-15T04:24:48.467 に答える