neutron_lib.db.api 模块

neutron_lib.db.api.exc_to_retry(etypes)

根据上下文将异常重新引发为 RetryRequests。

参数:

etypes – 要检查异常的类类型。

返回值:

引发:

如果在上下文中捕获到任何异常,并且该异常是 etypes 的嵌套实例,则会发生 RetryRequest。

neutron_lib.db.api.get_context_manager()

事务上下文管理器访问器。

返回值:

事务上下文管理器。

neutron_lib.db.api.get_reader_session()

获取 reader session 的辅助函数。

返回值:

reader session。

neutron_lib.db.api.get_writer_session()

获取 writer session 的辅助函数。

返回值:

writer session。

neutron_lib.db.api.is_retriable(e)

确定异常是否可重试。

参数:

e – 要检查的异常。

返回值:

如果 e 可重试,则返回 True,否则返回 False。

neutron_lib.db.api.is_session_active(session)

返回 session 是否处于活动状态

由于 sqlalchemy 1.4 默认“autocommit=False”;在 sqlalchemy 2.0 中,这将是唯一可能的值。如果 session autocommit 为 False,则 session 事务不会在 reader/writer 上下文结束时结束。在这种情况下,即使 session 不在 reader/writer 上下文中,session 也可能具有针对数据库服务器的活动事务。为了模拟以前的行为,此方法检查是否创建了事务以及事务是否对数据库服务器具有任何活动连接。

neutron_lib.db.api.retry_db_errors(f)

具有自动参数复制和日志记录的嵌套安全重试装饰器。

用于所有不接受上下文作为参数的函数的重试装饰器。如果函数接受上下文,请使用下面的 ‘retry_if_session_inactive’。

如果可重试错误被重试并超过计数,它们将被标记一个标志,因此 is_retriable 将不再将它们识别为可重试。这可以防止此装饰器(和/或下面的装饰器)多次重试相同的异常。

neutron_lib.db.api.retry_if_session_inactive(context_var_name='context')

仅当上下文中会话不活动时才重试。

如果上下文中传入的会话不活动,则调用 retry_db_errors 包装版本的函数,否则直接调用该函数。这对于避免在事务内部重试无效的 DB 竞争/错误很有用。

在所有需要重试并且方法接受上下文的情况下,都应使用此方法。

neutron_lib.db.api.sqla_listen(*args)

用于跟踪订阅者的包装器,以便进行测试清理。

SQLAlchemy 没有为其事件侦听器框架提供“取消订阅所有”选项,因此我们需要通过让它们在此处调用来跟踪订阅者,以便进行测试清理。

参数:

args – 要传递给 listen 调用的参数。

返回值:

neutron_lib.db.api.sqla_remove(*args)

删除 SQLA 侦听器。

参数:

args – 要传递给 remove 的参数。

返回值:

None。

neutron_lib.db.api.sqla_remove_all()

删除所有 SQLA 侦听器。

返回值:

None。