neutron_lib.api.extensions 模块

class neutron_lib.api.extensions.APIExtensionDescriptor

基类:ExtensionDescriptor

定义扩展契约的基础类。

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

如果扩展实现需要覆盖此类的默认行为,可以直接覆盖相应的方法。

api_definition: Sentinel | object = <neutron_lib.constants.Sentinel object>
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。