Python 为什么我的Openstack验证模块不再工作?

Python 为什么我的Openstack验证模块不再工作?,python,openstack-keystone,openstack-api,Python,Openstack Keystone,Openstack Api,我有一个使用python对keystone API进行身份验证的项目,在过去的几周里,我的auth方法停止了工作,我不知道为什么 该模块如下所示: 来自keysteauth1.identity导入v3 从keystone Auth1导入会话作为keystone_会话 从keystoneclient.v3导入客户端 从keysteneclient导入utils def connect(): auth=v3.密码( 验证url=”http://localhost:5000/v3/", usernam

我有一个使用python对keystone API进行身份验证的项目,在过去的几周里,我的auth方法停止了工作,我不知道为什么

该模块如下所示:

来自keysteauth1.identity导入v3
从keystone Auth1导入会话作为keystone_会话
从keystoneclient.v3导入客户端
从keysteneclient导入utils
def connect():
auth=v3.密码(
验证url=”http://localhost:5000/v3/",
username=“admin”,
password=“secret”,
project_name=“admin”,
user\u domain\u name=“默认”,
项目\域\名称=“默认”
)
session=keystone\u session.session(auth=auth,verify=False)
keystone=client.client(session=session,interface=“public”)
返回(keystone)
当我使用上面的代码在ipython中运行
keystone.projects.list()
时,我得到一个未经授权的错误,我不明白为什么。如果我对openstack cli客户端使用相同的凭据并运行
openstack项目列表
,我将获得预期的项目列表

环境:

  • python openstackclient 4.0.0
  • python密钥客户端3.19.0

我确信我错过了一些重要的东西。

您的代码中有语法错误(
password=s“secret”
),但除此之外,一切看起来都很好。如果我将
auth_url
password
替换为适合本地云的值,这很好。输入错误是因为我用文本替换变量:-),我将修复输入错误。不幸的是,这意味着我的本地keystone中存在一些工作不正常或配置不正确的内容。您的keystone日志中有什么有趣的内容吗?您是如何向openstack客户端提供凭据的?keystone日志只显示相同的错误消息,没有显示其他内容。我根据文档使用客户机的系统环境变量。我将在周末启动环境,看看是否可以进一步调试。奇怪的是,客户机正在工作,但执行基本相同操作的代码却失败了。因此,似乎只有当我针对在容器中创建的keystone实例运行代码时,才会发生此错误,以便运行测试。我不知道为什么它现在失败了,因为我创建的作为设置一部分的用户似乎无法看到默认项目。我得设法弄明白。这是docker映像的存储库