我有一个包含 2 个区域的 OpenStack 部署。Keystone 和 Horizon 在这两个地区都很常见。每个区域都有自己的 Nova、Heat、Neutron、Glance 等。
我正在编写一个自定义热资源,它的行为应根据创建堆栈的区域而有所不同。因此,我正在寻找一种方法来获取自定义热资源中的区域名称。
我尝试尝试不同的keystoneclient方法,即:
auth = keystoneclient.auth.identity.v3.Token(
auth_url=auth_url,
token=token,
reauthenticate=False)
session = keystoneclient.session.Session(auth=auth)
keystone_client = keystoneclient.v3.client.Client(session=session)
endpoint_manager = keystoneclient.v3.endpoints.EndpointManager(keystone_client)
endpoint_list = endpoint_manager.list()
此代码返回错误:
2018-12-06 14:27:11.885 1305729 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/keystoneclient/service_catalog.py", line 216, in url_for
2018-12-06 14:27:11.885 1305729 TRACE heat.engine.resource raise exceptions.EmptyCatalog(_('The service catalog is empty.'))
2018-12-06 14:27:11.885 1305729 TRACE heat.engine.resource EmptyCatalog: The service catalog is empty.
是否有一种“标准”方式来获取您“自己的”区域的区域名称?