neutron_lib.api.extensions 模块¶
- class neutron_lib.api.extensions.APIExtensionDescriptor¶
-
定义扩展契约的基础类。
API 扩展的具体实现应首先在 neutron_lib.api.definitions 中提供 API 定义。然后可以将 API 定义模块(对象引用)指定为具体扩展的类级别属性。
例如
from neutron_lib.api.definitions import provider_net from neutron_lib.api import extensions class Providernet(extensions.APIExtensionDescriptor): api_definition = provider_net # nothing else needed if default behavior is acceptable
如果扩展实现需要覆盖此类的默认行为,可以直接覆盖相应的方法。
- classmethod get_alias()¶
API 定义的别名。
- classmethod get_description()¶
API 定义的友好描述。
- classmethod get_extended_resources(version)¶
检索 API 定义的扩展资源映射。
- 参数:
version – 要检索资源属性映射的 API 版本。
- 返回值:
如果版本为 2.0,则返回底层 API 定义的扩展资源映射,包括 RESOURCE_ATTRIBUTE_MAP 和 SUB_RESOURCE_ATTRIBUTE_MAP(如果适用)。如果版本不是 2.0,则返回一个空字典。
- classmethod get_name()¶
API 定义的名称。
- classmethod get_optional_extensions()¶
返回 API 定义的可选扩展。
- classmethod get_required_extensions()¶
返回 API 定义的必需扩展。
- classmethod get_updated()¶
API 定义上次更新的时间戳。
- classmethod update_attributes_map(extended_attributes, extension_attrs_map=None)¶
更新此扩展的属性映射。
行为类似于 ExtensionDescriptor.update_attributes_map(),但如果未提供 extension_attrs_map,则使用 self.get_extended_resources('2.0') 返回的字典。
- class neutron_lib.api.extensions.ExtensionDescriptor¶
基类:
object定义扩展契约的基础类。
- get_actions()¶
extensions.ActionExtension 扩展对象的列表。
操作是可从 API 调用中的动词。
- abstract get_alias()¶
扩展的别名。
例如:‘FOXNSOX’
- abstract get_description()¶
扩展的友好描述。
例如:‘The Fox In Socks Extension’
- get_extended_resources(version)¶
检索核心资源的扩展资源或属性。
扩展属性由核心插件实现,类似于核心中定义的属性,并且可以出现在请求和响应消息中。它们的名称以扩展的前缀为范围。将核心 API 版本传递给此函数,该函数必须返回一个 map[<resource_name>][<attribute_name>][<attribute_property>] 指定该 API 版本所需的扩展资源属性。扩展还可以添加资源及其属性定义。返回的 map 可以集成到 RESOURCE_ATTRIBUTE_MAP 中。
- abstract get_name()¶
扩展的名称。
例如:‘Fox In Socks’
- get_optional_extensions()¶
返回可选的必需扩展列表。
与 get_required_extensions 不同。如果缺少其中一个扩展,则不会导致扩展加载失败。这对于扩展多个跨其他扩展的资源非常有用,即使缺少一个扩展,其余扩展仍然可以工作。
- get_pecan_resources()¶
extensions.PecanResourceExtension 扩展对象的列表。
资源定义新的名词,可以通过 URL 访问。与 extensions.ResourceExtension 的每个实例关联的控制器应是 neutron.pecan_wsgi.controllers.utils.NeutronPecanController 的子类。如果资源同时在 get_resources 和 get_pecan_resources 中定义,则 get_pecan_resources 中定义的资源优先。
- get_plugin_interface()¶
返回定义插件契约的抽象类。
抽象类应继承自 neutron_lib.services.base.ServicePluginBase。此抽象类中的方法应装饰为 abstractmethod
- get_request_extensions()¶
extensions.RequestExtension 扩展对象的列表。
请求扩展用于处理自定义请求数据。
- get_required_extensions()¶
返回处理此描述符所需的扩展列表。
如果没有这些扩展存在于 neutron 部署中,则引入的扩展将无法加载或正常运行。
- get_resources()¶
extensions.ResourceExtension 扩展对象的列表。
资源定义新的名词,可以通过 URL 访问。
- abstract get_updated()¶
上次更新扩展的时间戳。
例如:‘2011-01-22T13:25:27-06:00’
- classmethod update_attributes_map(extended_attributes, extension_attrs_map=None)¶
更新此扩展的属性映射。
这是扩展扩展属性映射的默认方法。扩展可以使用此方法并在 extension_attrs_map 参数中提供自己的资源属性映射,以扩展需要扩展的所有属性。如果扩展未实现 update_attributes_map,则该方法不执行任何操作并直接返回。
- neutron_lib.api.extensions.is_extension_supported(plugin, alias)¶
验证是否支持该扩展。
- 参数:
plugin – 插件类。
alias – 要检查的别名。
- 返回值:
如果支持该别名,则返回 True,否则返回 False。