Introduce the new rabbit_heartbeat_in_pthread option
oslo.messaging RabbitMQ driver have now a new option that allow user to run the RabbitMQ heartbeat over a native python thread. These change allow user to use this new option. Change-Id: I2e044f6c83d3c9cc8846b29e1e4eecbea8a4be55 Closes-Bug: #1840868
This commit is contained in:
parent
1b3e981ea6
commit
fa5dec5df1
|
@ -41,6 +41,16 @@
|
||||||
# every 30 seconds.
|
# every 30 seconds.
|
||||||
# Defaults to $::os_service_default
|
# Defaults to $::os_service_default
|
||||||
#
|
#
|
||||||
|
# [*rabbit_heartbeat_in_pthread*]
|
||||||
|
# (Optional) EXPERIMENTAL: Run the health check heartbeat thread
|
||||||
|
# through a native python thread. By default if this
|
||||||
|
# option isn't provided the health check heartbeat will
|
||||||
|
# inherit the execution model from the parent process. By
|
||||||
|
# example if the parent process have monkey patched the
|
||||||
|
# stdlib by using eventlet/greenlet then the heartbeat
|
||||||
|
# will be run through a green thread.
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
# [*rabbit_use_ssl*]
|
# [*rabbit_use_ssl*]
|
||||||
# (optional) Connect over SSL for RabbitMQ
|
# (optional) Connect over SSL for RabbitMQ
|
||||||
# Defaults to $::os_service_default
|
# Defaults to $::os_service_default
|
||||||
|
@ -253,6 +263,7 @@ class cinder (
|
||||||
$rabbit_ha_queues = $::os_service_default,
|
$rabbit_ha_queues = $::os_service_default,
|
||||||
$rabbit_heartbeat_timeout_threshold = $::os_service_default,
|
$rabbit_heartbeat_timeout_threshold = $::os_service_default,
|
||||||
$rabbit_heartbeat_rate = $::os_service_default,
|
$rabbit_heartbeat_rate = $::os_service_default,
|
||||||
|
$rabbit_heartbeat_in_pthread = $::os_service_default,
|
||||||
$rabbit_use_ssl = $::os_service_default,
|
$rabbit_use_ssl = $::os_service_default,
|
||||||
$service_down_time = $::os_service_default,
|
$service_down_time = $::os_service_default,
|
||||||
$report_interval = $::os_service_default,
|
$report_interval = $::os_service_default,
|
||||||
|
@ -311,6 +322,7 @@ class cinder (
|
||||||
rabbit_ha_queues => $rabbit_ha_queues,
|
rabbit_ha_queues => $rabbit_ha_queues,
|
||||||
heartbeat_timeout_threshold => $rabbit_heartbeat_timeout_threshold,
|
heartbeat_timeout_threshold => $rabbit_heartbeat_timeout_threshold,
|
||||||
heartbeat_rate => $rabbit_heartbeat_rate,
|
heartbeat_rate => $rabbit_heartbeat_rate,
|
||||||
|
heartbeat_in_pthread => $rabbit_heartbeat_in_pthread,
|
||||||
rabbit_use_ssl => $rabbit_use_ssl,
|
rabbit_use_ssl => $rabbit_use_ssl,
|
||||||
kombu_reconnect_delay => $kombu_reconnect_delay,
|
kombu_reconnect_delay => $kombu_reconnect_delay,
|
||||||
kombu_failover_strategy => $kombu_failover_strategy,
|
kombu_failover_strategy => $kombu_failover_strategy,
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Allow users to run the RabbitMQ heartbeat over a native python thread in the
|
||||||
|
oslo.messaging RabbitMQ driver, by using the `rabbit_heartbeat_in_pthread`
|
||||||
|
option in configuration.
|
|
@ -28,6 +28,7 @@ describe 'cinder' do
|
||||||
is_expected.to contain_cinder_config('oslo_messaging_rabbit/rabbit_ha_queues').with(:value => '<SERVICE DEFAULT>')
|
is_expected.to contain_cinder_config('oslo_messaging_rabbit/rabbit_ha_queues').with(:value => '<SERVICE DEFAULT>')
|
||||||
is_expected.to contain_cinder_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('<SERVICE DEFAULT>')
|
is_expected.to contain_cinder_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('<SERVICE DEFAULT>')
|
||||||
is_expected.to contain_cinder_config('oslo_messaging_rabbit/heartbeat_rate').with_value('<SERVICE DEFAULT>')
|
is_expected.to contain_cinder_config('oslo_messaging_rabbit/heartbeat_rate').with_value('<SERVICE DEFAULT>')
|
||||||
|
is_expected.to contain_cinder_config('oslo_messaging_rabbit/heartbeat_in_pthread').with_value('<SERVICE DEFAULT>')
|
||||||
is_expected.to contain_cinder_config('oslo_messaging_rabbit/kombu_reconnect_delay').with(:value => '<SERVICE DEFAULT>')
|
is_expected.to contain_cinder_config('oslo_messaging_rabbit/kombu_reconnect_delay').with(:value => '<SERVICE DEFAULT>')
|
||||||
is_expected.to contain_cinder_config('oslo_messaging_rabbit/kombu_failover_strategy').with(:value => '<SERVICE DEFAULT>')
|
is_expected.to contain_cinder_config('oslo_messaging_rabbit/kombu_failover_strategy').with(:value => '<SERVICE DEFAULT>')
|
||||||
is_expected.to contain_cinder_config('oslo_messaging_rabbit/kombu_compression').with(:value => '<SERVICE DEFAULT>')
|
is_expected.to contain_cinder_config('oslo_messaging_rabbit/kombu_compression').with(:value => '<SERVICE DEFAULT>')
|
||||||
|
@ -55,11 +56,13 @@ describe 'cinder' do
|
||||||
context 'with rabbitmq heartbeats' do
|
context 'with rabbitmq heartbeats' do
|
||||||
let :params do
|
let :params do
|
||||||
req_params.merge( :rabbit_heartbeat_timeout_threshold => '60',
|
req_params.merge( :rabbit_heartbeat_timeout_threshold => '60',
|
||||||
:rabbit_heartbeat_rate => '10' )
|
:rabbit_heartbeat_rate => '10',
|
||||||
|
:rabbit_heartbeat_in_pthread => true )
|
||||||
end
|
end
|
||||||
|
|
||||||
it { is_expected.to contain_cinder_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('60') }
|
it { is_expected.to contain_cinder_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('60') }
|
||||||
it { is_expected.to contain_cinder_config('oslo_messaging_rabbit/heartbeat_rate').with_value('10') }
|
it { is_expected.to contain_cinder_config('oslo_messaging_rabbit/heartbeat_rate').with_value('10') }
|
||||||
|
it { is_expected.to contain_cinder_config('oslo_messaging_rabbit/heartbeat_in_pthread').with_value(true) }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with SSL enabled with kombu' do
|
context 'with SSL enabled with kombu' do
|
||||||
|
|
Loading…
Reference in New Issue