neutron_lib.rpc 模块

class neutron_lib.rpc.BackingOffClient(transport, target, timeout=None, version_cap=None, serializer=None, retry=None, call_monitor_timeout=None, transport_options=None, _manual_load=True)

基类: RPCClient

一个实现了超时退避的 oslo messaging RPC 客户端。

它具有与 oslo_messaging.RPCClient 相同的接口,但如果未指定超时参数,则返回的 _BackingOffContextWrapper 将跟踪调用超时异常发生的时间,并按指数级增加给定调用方法的超时时间。

prepare(*args, **kwargs)

准备一个方法调用上下文。

使用此方法可以为单个方法调用覆盖客户端属性。例如

def test(self, ctxt, arg):
    cctxt = self.prepare(version='2.5')
    return cctxt.call(ctxt, 'test', arg=arg)
参数:
  • exchange (str) – 请参阅 Target.exchange

  • topic (str) – 请参阅 Target.topic

  • namespace (str) – 请参阅 Target.namespace

  • version (str) – 服务器必须支持的要求版本,请参阅 Target.version

  • server (str) – 发送到特定服务器,请参阅 Target.server

  • fanout (bool) – 发送到主题上的所有服务器,请参阅 Target.fanout

  • timeout (intfloat) – call() 的可选默认超时时间(秒)

  • version_cap (str) – 如果版本超过此上限,则引发 RPCVersionCapError

  • retry (int) – 可选的连接重试配置:None 或 -1 表示永远重试。0 表示不尝试重试。N 表示最多尝试 N 次重试。

  • transport_options (dictionary) – 用于配置驱动程序的附加参数,例如在 RabbitMQ 中将参数作为“mandatory”标志发送

  • call_monitor_timeout (int) – 活跃调用心跳的超时时间(秒)。如果指定,则需要服务器以小于总体超时参数的间隔对长期运行的调用进行心跳。

static set_max_timeout(max_timeout)

设置所有退避 RPC 客户端的 RPC 超时上限。

class neutron_lib.rpc.Connection

基类: object

一个用于管理 RPC 服务器集合的实用程序类。

close()
consume_in_threads()
create_consumer(topic, endpoints, fanout=False)
class neutron_lib.rpc.RequestContextSerializer(base=None)

基类: Serializer

将 RPC 常见上下文转换为 Neutron 上下文。

deserialize_context(ctxt)

将字典反序列化为请求上下文。

参数:

ctxt – 请求上下文字典

返回值:

实体的反序列化形式

deserialize_entity(ctxt, entity)

从原始形式反序列化某些内容。

参数:
  • ctxt – 反序列化形式的请求上下文

  • entity – 要反序列化的原始数据

返回值:

实体的反序列化形式

serialize_context(ctxt)

将请求上下文序列化为字典。

参数:

ctxt – 请求上下文

返回值:

上下文的序列化形式

serialize_entity(ctxt, entity)

将某些内容序列化为原始形式。

参数:
  • ctxt – 反序列化形式的请求上下文

  • entity – 要序列化的实体

返回值:

实体的序列化形式

class neutron_lib.rpc.Service(host, topic, manager=None, serializer=None)

基类: Service

运行在主机上的二进制文件的服务对象。

服务通过基于主题和主机监听队列来实现 RPC。

reset()

在服务收到 SIGHUP 时重置服务。

start()

启动服务。

stop()

停止服务。

参数:

graceful – 指示是否等待所有线程完成或立即终止它们

wait()

等待服务关闭。

neutron_lib.rpc.cleanup()

停用并清理全局 RPC 对象。

返回值:

None。

neutron_lib.rpc.get_client(target, version_cap=None, serializer=None)

获取所述目标的 RPC 客户端。

必须先调用 init() 函数,然后才能调用此函数。 :param target: 客户端的 RPC 目标。 :param version_cap: RPC 客户端的可选版本上限。 :param serializer: RPC 客户端的可选序列化器。 :returns: 一个新的 RPC 客户端。

neutron_lib.rpc.get_notifier(service=None, host=None, publisher_id=None)

获取一个新的通知器引用。

参数:
  • service – 通知器的可选服务。如果未提供,则使用 None 作为服务名称(自 2025.1 起已弃用)。

  • host – 通知器的可选主机。如果未提供,则主机将从全局 CONF 中获取。

  • publisher_id – 通知器的可选发布者 ID。覆盖 servicehost 参数。

返回值:

一个新的 RPC 通知器引用。

neutron_lib.rpc.get_server(target, endpoints, serializer=None)

获取一个新的 RPC 服务器引用。

参数:
  • target – 新 RPC 服务器的目标。

  • endpoints – RPC 服务器的端点。

  • serializer – RPC 服务器的可选序列化器。

返回值:

一个新的 RPC 服务器引用。

neutron_lib.rpc.init(conf, rpc_ext_mods=None)

初始化全局 RPC 对象。

参数:
  • conf – 用于初始化的 oslo conf。

  • rpc_ext_mods – 通过 RPC 公开的异常模块。

返回值:

None。