3405a28688
librbd is a Python binding around a C library, which is not aware of eventlet - all the calls to the functions from this library will block the whole nova-compute process for duration of a call. To make sure nova-compute remains responsive we need to wrap all the calls in tpool.Proxy() eventlet helper, that switches the execution context back to the event loop, while the call is executed in a native OS thread from a pool. Prefer tpool.Proxy() to tpool.execute() here as the former allows for wrapping objects and automatically executes all the method calls in native OS threads, while the latter needs to be applied to each method call in the code repeatedly. Existing calls are modified for the sake of consistency. Closes-Bug: #1607461 Change-Id: I743ab372332eb656258a476ae91f5e8fd2cbdc99 |
||
---|---|---|
.. | ||
__init__.py | ||
dmcrypt.py | ||
lvm.py | ||
rbd_utils.py |