neutron_lib.plugins.utils 模块¶
- neutron_lib.plugins.utils.can_port_be_bound_to_virtual_bridge(port)¶
判断端口是否可以绑定到虚拟网桥(例如:LB、OVS)
- 参数:
port – (dict) 一个端口字典。
- 返回值:
如果端口的 VNIC 类型为 ‘normal’ 或 ‘smart-nic’,则返回 True;否则返回 False。
- neutron_lib.plugins.utils.create_network(core_plugin, context, net, check_allow_post=True)¶
- neutron_lib.plugins.utils.create_port(core_plugin, context, port, check_allow_post=True)¶
- neutron_lib.plugins.utils.create_subnet(core_plugin, context, subnet, check_allow_post=True)¶
- neutron_lib.plugins.utils.delete_port_on_error(core_plugin, context, port_id)¶
一个装饰器,在发生异常时删除端口。
此装饰器可用于包装一段代码,如果在这段代码执行期间发生异常,则应删除端口。
- 参数:
core_plugin – 实现 delete_port 方法以调用的核心插件。
context – 上下文。
port_id – 端口的 ID。
- 返回值:
无
- neutron_lib.plugins.utils.get_deployment_physnet_mtu()¶
检索全局物理网络 MTU 设置。
插件应使用此函数来检索运营商设置的 MTU,该 MTU 小于或等于节点物理接口的 MTU。请注意,在将其通告给 VM 之前,插件有责任扣除所需的任何封装开销值。
请注意,此函数依赖于在全局 CONF 中注册的 global_physnet_mtu 配置选项。
- 返回值:
来自全局 CONF 的 global_physnet_mtu。
- neutron_lib.plugins.utils.get_interface_name(name, prefix='', max_len=15)¶
基于前缀和名称构造接口名称。
接口名称不能超过传入的最大长度。较长的名称会被哈希以帮助确保唯一性。
- neutron_lib.plugins.utils.get_port_binding_by_status_and_host(bindings, status, host='', raise_if_not_found=False, port_id=None)¶
从可迭代对象中返回具有指定状态和主机的绑定。
输入可迭代对象可以包含状态为 ACTIVE 的零个或一个绑定,以及状态为 INACTIVE 的零个或多个绑定。因此,为了明确检索非活动绑定,调用者必须为 host 指定一个非空值。如果 host 是空字符串,则将返回满足指定状态的第一个绑定。如果未找到具有指定状态和主机的绑定,则返回 None,或者如果 raise_if_not_found 为 True,则引发 PortBindingNotFound 异常
- 参数:
bindings – 包含端口绑定的可迭代对象
status – 要返回的端口绑定的状态。可能的值是 ACTIVE 或 INACTIVE,如
neutron_lib/constants.py中定义。host – 表示绑定的主机的字符串。
raise_if_not_found – 如果未找到绑定并且此参数为 True,则会引发 PortBindingNotFound 异常
port_id – 绑定的端口的 ID
- 返回值:
搜索到的端口绑定或未找到时返回 None
- 引发:
如果未找到绑定且 raise_if_not_found 为 True,则引发 PortBindingNotFound
- neutron_lib.plugins.utils.in_pending_status(status)¶
如果状态是挂起状态的一种形式,则返回 True
- neutron_lib.plugins.utils.is_valid_geneve_vni(vni)¶
验证 Geneve VNI
- 参数:
vni – 要验证的 VNI。
- 返回值:
如果 vni 是有效的 Geneve VNI,则返回 True。
- neutron_lib.plugins.utils.is_valid_gre_id(gre_id)¶
验证 GRE ID。
- 参数:
gre_id – 要验证的 GRE ID。
- 返回值:
如果 gre_id 是有效的 GRE ID,则返回 True。
- neutron_lib.plugins.utils.is_valid_vlan_tag(vlan)¶
验证 VLAN 标签。
- 参数:
vlan – 要验证的 VLAN 标签。
- 返回值:
如果 vlan 是有效的 VLAN 标签,则返回 True。
- neutron_lib.plugins.utils.is_valid_vxlan_vni(vni)¶
验证 VXLAN VNI。
- 参数:
vni – 要验证的 VNI。
- 返回值:
如果 vni 是有效的 VXLAN VNI,则返回 True。
- neutron_lib.plugins.utils.parse_network_vlan_range(network_vlan_range)¶
解析格式良好的网络 VLAN 范围字符串。
- 网络 VLAN 范围字符串的格式为
network[:vlan_begin:vlan_end]
- 参数:
network_vlan_range – 要解析的网络 VLAN 范围字符串。
- 返回值:
一个元组,其第一个元素是网络名称,第二个元素是从 network_vlan_range 解析出的 VLAN 范围。
- 引发:
如果 network_vlan_range 格式不正确,则引发 NetworkVlanRangeError。如果 network_vlan_range 缺少网络名称,则引发 PhysicalNetworkNameError。
- neutron_lib.plugins.utils.parse_network_vlan_ranges(network_vlan_ranges_cfg_entries)¶
解析格式良好的网络 VLAN 范围字符串列表。
行为类似于 parse_network_vlan_range,但将网络 VLAN 字符串列表解析为有序字典。
- 参数:
network_vlan_ranges_cfg_entries – 要解析的网络 VLAN 字符串列表。
- 返回值:
一个 OrderedDict,其键是网络名称,值是从 network_vlan_ranges_cfg_entries 解析出的 VLAN 范围列表。
- 引发:
请参阅 parse_network_vlan_range。
- neutron_lib.plugins.utils.update_port_on_error(core_plugin, context, port_id, revert_value)¶
一个装饰器,在发生异常时更新端口。
此装饰器可用于包装一段代码,如果在这段代码执行期间发生异常,则应更新端口。
- 参数:
core_plugin – 实现 update_port 方法以调用的核心插件。
context – 上下文。
port_id – 端口的 ID。
revert_value – 要在端口对象上还原的值。
- 返回值:
无
- neutron_lib.plugins.utils.verify_tunnel_range(tunnel_range, tunnel_type)¶
验证给定的隧道范围是否根据其隧道类型有效。
针对 GRE、VXLAN 和 GENEVE 类型进行了现有验证,如 _TUNNEL_MAPPINGS 中所述。
- 参数:
tunnel_range – 一个可迭代对象,其 0 索引是最小隧道范围,其 1 索引是最大隧道范围。
tunnel_type – 范围的隧道类型。
- 返回值:
如果 tunnel_range 有效,则返回 None。
- 引发:
如果 tunnel_range 无效,则引发 NetworkTunnelRangeError。
- neutron_lib.plugins.utils.verify_vlan_range(vlan_range)¶
验证 VLAN 范围是否有效。
- 参数:
vlan_range – 一个可迭代对象,其 0 索引是最小隧道范围,其 1 索引是最大隧道范围。
- 返回值:
如果 vlan_range 有效,则返回 None。
- 引发:
如果 vlan_range 无效,则引发 NetworkVlanRangeError。