1

我有一个包含 2 个区域的 OpenStack 部署。Keystone 和 Horizo​​n 在这两个地区都很常见。每个区域都有自己的 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.

是否有一种“标准”方式来获取您“自己的”区域的区域名称?

4

0 回答 0