创建neutron客户端时出错

-1 投票
1 回答
1094 浏览
提问于 2025-04-30 15:44

我刚接触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"}}
暂无标签

1 个回答

1

这个错误提示说明你在OS_TENANT_NAME这个环境变量中输入的租户名字有问题。它的值是'ESS',可能是这个名字的租户不存在,或者你没有权限访问这个租户。

如果你能使用neutron命令行工具,试着打印出你在那里的环境变量,然后把它们复制到你的代码中。

撰写回答