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: I8d8d9870c5c20f0d256c2000d893ea25c118b651
Closes-Bug: #1840868
This commit is contained in:
ZhongShengping 2019-08-21 14:21:01 +08:00
parent b098d97e3a
commit a504abc557
3 changed files with 21 additions and 0 deletions

View File

@ -47,6 +47,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
#
# [*kombu_ssl_ca_certs*] # [*kombu_ssl_ca_certs*]
# (optional) SSL certification authority file (valid only if SSL enabled). # (optional) SSL certification authority file (valid only if SSL enabled).
# Defaults to $::os_service_default # Defaults to $::os_service_default
@ -220,6 +230,7 @@ class octavia (
$rabbit_use_ssl = $::os_service_default, $rabbit_use_ssl = $::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_ha_queues = $::os_service_default, $rabbit_ha_queues = $::os_service_default,
$kombu_ssl_ca_certs = $::os_service_default, $kombu_ssl_ca_certs = $::os_service_default,
$kombu_ssl_certfile = $::os_service_default, $kombu_ssl_certfile = $::os_service_default,
@ -278,6 +289,7 @@ class octavia (
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,

View File

@ -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.

View File

@ -33,6 +33,7 @@ describe 'octavia' do
is_expected.to contain_octavia_config('DEFAULT/control_exchange').with_value('<SERVICE DEFAULT>') is_expected.to contain_octavia_config('DEFAULT/control_exchange').with_value('<SERVICE DEFAULT>')
is_expected.to contain_octavia_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('<SERVICE DEFAULT>') is_expected.to contain_octavia_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('<SERVICE DEFAULT>')
is_expected.to contain_octavia_config('oslo_messaging_rabbit/heartbeat_rate').with_value('<SERVICE DEFAULT>') is_expected.to contain_octavia_config('oslo_messaging_rabbit/heartbeat_rate').with_value('<SERVICE DEFAULT>')
is_expected.to contain_octavia_config('oslo_messaging_rabbit/heartbeat_in_pthread').with_value('<SERVICE DEFAULT>')
is_expected.to contain_octavia_config('oslo_messaging_rabbit/kombu_compression').with_value('<SERVICE DEFAULT>') is_expected.to contain_octavia_config('oslo_messaging_rabbit/kombu_compression').with_value('<SERVICE DEFAULT>')
is_expected.to contain_octavia_config('oslo_messaging_rabbit/kombu_failover_strategy').with_value('<SERVICE DEFAULT>') is_expected.to contain_octavia_config('oslo_messaging_rabbit/kombu_failover_strategy').with_value('<SERVICE DEFAULT>')
is_expected.to contain_octavia_config('oslo_messaging_notifications/transport_url').with_value('<SERVICE DEFAULT>') is_expected.to contain_octavia_config('oslo_messaging_notifications/transport_url').with_value('<SERVICE DEFAULT>')
@ -53,6 +54,7 @@ describe 'octavia' do
:rabbit_ha_queues => 'undef', :rabbit_ha_queues => 'undef',
:rabbit_heartbeat_timeout_threshold => '60', :rabbit_heartbeat_timeout_threshold => '60',
:rabbit_heartbeat_rate => '10', :rabbit_heartbeat_rate => '10',
:rabbit_heartbeat_in_pthread => true,
:kombu_compression => 'gzip', :kombu_compression => 'gzip',
:kombu_failover_strategy => 'shuffle', :kombu_failover_strategy => 'shuffle',
:package_ensure => '2012.1.1-15.el6', :package_ensure => '2012.1.1-15.el6',
@ -69,6 +71,7 @@ describe 'octavia' do
is_expected.to contain_octavia_config('DEFAULT/control_exchange').with_value('octavia') is_expected.to contain_octavia_config('DEFAULT/control_exchange').with_value('octavia')
is_expected.to contain_octavia_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('60') is_expected.to contain_octavia_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('60')
is_expected.to contain_octavia_config('oslo_messaging_rabbit/heartbeat_rate').with_value('10') is_expected.to contain_octavia_config('oslo_messaging_rabbit/heartbeat_rate').with_value('10')
is_expected.to contain_octavia_config('oslo_messaging_rabbit/heartbeat_in_pthread').with_value(true)
is_expected.to contain_octavia_config('oslo_messaging_rabbit/kombu_compression').with_value('gzip') is_expected.to contain_octavia_config('oslo_messaging_rabbit/kombu_compression').with_value('gzip')
is_expected.to contain_octavia_config('oslo_messaging_rabbit/kombu_failover_strategy').with_value('shuffle') is_expected.to contain_octavia_config('oslo_messaging_rabbit/kombu_failover_strategy').with_value('shuffle')
end end