如何列出不同域的openstack用户组?

问题描述 投票:0回答:2

我正在与默认域上的管理员帐户连接,并尝试列出非默认域的所有用户组,但我不知道如何执行此操作,并且没有等效的 list_groups() 可以在 OpenStack API 文档中查找。

此代码示例仅返回“admin”用户所属的组,而不是云中所有用户组的列表。

conn = openstack.connect(cloudname)
pprint(conn.identity.groups())

我希望在 python 代码中完成类似于 cli 命令完成的事情:

openstack group list --domain nonDefault
python openstack
2个回答
1
投票

我只能针对我的本地 OpenStack 安装与用户进行测试,但看起来您可以提供

domain_id
属性。例如:

>>> len(list(conn.identity.users(domain_id='default')))
300
>>> len(list(conn.identity.users(domain_id='13b2c494c91842a5a698ce51aace2c94')))
517

请注意,这需要域名 ID,而不是域名。如果您想将名称映射到 id,您可以向

conn.identity.domains()
索取域名列表。


0
投票

使用larsks的帮助,找到答案:

pprint(list(conn.identity.groups(domain_id=conn.identity.find_domain('mydomain')['id'])))

domain_id=
参数没有记录,接受的参数只是
**query
,没有进一步解释:https://docs.openstack.org/openstacksdk/latest/user/proxies/identity_v3.html#domain-operations

如果没有

list()
,它只会打印有关生成器/迭代器的信息,而不是项目本身。

© www.soinside.com 2019 - 2024. All rights reserved.