2014-10-30 130 views
-1

我是OpenStack環境的新手,我正在嘗試使用Openstack API。 我在執行基本腳本時使用neutron API列出網絡時出現以下錯誤。創建中子客戶端時出錯

腳本

#!/usr/bin/env python 
from neutronclient.v2_0 import client as neutronClient 
import os 

neutronConnection = neutronClient.Client(
    username=os.environ['OS_USERNAME'], 
    password=os.environ['OS_PASSWORD'], 
    tenant_name=os.environ['OS_TENANT_NAME'], 
    auth_url=os.environ['OS_AUTH_URL'] 
    ) 
print neutronConnection 
neutronConnection.format = 'json' 
neutronConnection.list_networks() 

錯誤

neutronConnection.list_networks() 
    File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 98, in with_params 
    ret = self.function(instance, *args, **kwargs) 
    File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 339, in list_networks 
    **_params) 
    File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 1334, in list 
    for r in self._pagination(collection, path, **params): 
    File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 1347, in _pagination 
    res = self.get(path, params=params) 
    File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 1320, in get 
    headers=headers, params=params) 
    File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 1297, in retry_request 
    headers=headers, params=params) 
    File "/usr/lib/python2.6/site-packages/neutronclient/v2_0/client.py", line 1232, in do_request 
    self.httpclient.authenticate_and_fetch_endpoint_url() 
    File "/usr/lib/python2.6/site-packages/neutronclient/client.py", line 152, in authenticate_and_fetch_endpoint_url 
    self.authenticate() 
    File "/usr/lib/python2.6/site-packages/neutronclient/client.py", line 249, in authenticate 
    self._authenticate_keystone() 
    File "/usr/lib/python2.6/site-packages/neutronclient/client.py", line 228, in _authenticate_keystone 
    allow_redirects=True) 
    File "/usr/lib/python2.6/site-packages/neutronclient/client.py", line 138, in _cs_request 
    raise exceptions.Unauthorized(message=body) 
neutronclient.common.exceptions.Unauthorized: {"error": {"message": "Could not find project, ESS.", "code": 401, "title": "Unauthorized"}} 
+0

如果我確實從命令行執行neutron net-list ..它工作得很好。 – 2014-10-30 15:12:00

回答

1

的錯誤表示存在與您在OS_TENANT_NAME環境變量傳遞承租人的名稱問題。它的值是'ESS',或者沒有這個名字的租戶,或者用戶無權訪問它。

如果您能夠運行neutron CLI,請打印出您在那裏使用的環境變量並將其複製到您的代碼中。