Add transport_url parameters for oslo.messaging

This commit adds the transport_url parameters for oslo.messaging. The
url is of the form:

  transport://user:pass@host1:port[,hostN:portN]/virtual_host

Where the transport scheme specifies the rpc or notification backend
as one of rabbit, amqp, zmq, etc. Oslo.messaging is deprecating the
host, port, and auth configuration options [1]. All drivers will get
these options via the transport_url.

This patch:
* use oslo::messaging::default resource
* use oslo::messaging::notifications resource
* add parameters for transport_url(s)
* correct config file for amqp backend
* update spec tests
* add feature release note

[1] https://review.openstack.org/#/c/317285/

Change-Id: I8d0132f23aa05ed267ff2d88bce61ce9f20160f5
This commit is contained in:
Andrew Smith 2016-06-01 10:47:05 -04:00 committed by Alex Schultz
parent 4d5c63416f
commit 7cb103c17f
10 changed files with 173 additions and 71 deletions

View File

@ -216,7 +216,8 @@ class trove::api(
} }
oslo::messaging::default { 'trove_config': oslo::messaging::default { 'trove_config':
control_exchange => $::trove::control_exchange transport_url => $::trove::default_transport_url,
control_exchange => $::trove::control_exchange
} }
if $identity_uri { if $identity_uri {
@ -346,8 +347,9 @@ class trove::api(
} }
oslo::messaging::notifications { 'trove_config': oslo::messaging::notifications { 'trove_config':
driver => $::trove::notification_driver, transport_url => $::trove::notification_transport_url,
topics => $::trove::notification_topics driver => $::trove::notification_driver,
topics => $::trove::notification_topics
} }
if $::trove::rpc_backend == 'trove.openstack.common.rpc.impl_kombu' or $::trove::rpc_backend == 'rabbit' { if $::trove::rpc_backend == 'trove.openstack.common.rpc.impl_kombu' or $::trove::rpc_backend == 'rabbit' {

View File

@ -112,7 +112,6 @@ class trove::conductor(
'DEFAULT/nova_proxy_admin_user': value => $::trove::nova_proxy_admin_user; 'DEFAULT/nova_proxy_admin_user': value => $::trove::nova_proxy_admin_user;
'DEFAULT/nova_proxy_admin_tenant_name': value => $::trove::nova_proxy_admin_tenant_name; 'DEFAULT/nova_proxy_admin_tenant_name': value => $::trove::nova_proxy_admin_tenant_name;
'DEFAULT/nova_proxy_admin_pass': value => $::trove::nova_proxy_admin_pass; 'DEFAULT/nova_proxy_admin_pass': value => $::trove::nova_proxy_admin_pass;
'DEFAULT/control_exchange': value => $::trove::control_exchange;
'DEFAULT/trove_conductor_workers': value => $workers; 'DEFAULT/trove_conductor_workers': value => $workers;
} }
# profiler config # profiler config
@ -121,9 +120,15 @@ class trove::conductor(
'profiler/trace_sqlalchemy': value => $trace_sqlalchemy; 'profiler/trace_sqlalchemy': value => $trace_sqlalchemy;
} }
oslo::messaging::default { 'trove_conductor_config':
transport_url => $::trove::default_transport_url,
control_exchange => $::trove::control_exchange,
}
oslo::messaging::notifications { 'trove_conductor_config': oslo::messaging::notifications { 'trove_conductor_config':
driver => $::trove::notification_driver, transport_url => $::trove::notification_transport_url,
topics => $::trove::notification_topics driver => $::trove::notification_driver,
topics => $::trove::notification_topics
} }
if $::trove::rpc_backend == 'trove.openstack.common.rpc.impl_kombu' or $::trove::rpc_backend == 'rabbit' { if $::trove::rpc_backend == 'trove.openstack.common.rpc.impl_kombu' or $::trove::rpc_backend == 'rabbit' {
@ -144,7 +149,7 @@ class trove::conductor(
kombu_ssl_version => $::trove::kombu_ssl_version kombu_ssl_version => $::trove::kombu_ssl_version
} }
} elsif $::trove::rpc_backend == 'amqp' { } elsif $::trove::rpc_backend == 'amqp' {
oslo::messaging::amqp { 'trove_config': oslo::messaging::amqp { 'trove_conductor_config':
server_request_prefix => $::trove::amqp_server_request_prefix, server_request_prefix => $::trove::amqp_server_request_prefix,
broadcast_prefix => $::trove::amqp_broadcast_prefix, broadcast_prefix => $::trove::amqp_broadcast_prefix,
group_request_prefix => $::trove::amqp_group_request_prefix, group_request_prefix => $::trove::amqp_group_request_prefix,

View File

@ -47,10 +47,6 @@
# lookup the URL using the Keystone catalog. # lookup the URL using the Keystone catalog.
# Defaults to $::os_service_default. # Defaults to $::os_service_default.
# #
# [*control_exchange*]
# (optional) Control exchange.
# Defaults to 'trove'.
#
# [*rabbit_hosts*] # [*rabbit_hosts*]
# (optional) List of clustered rabbit servers. # (optional) List of clustered rabbit servers.
# Defaults to the value set in the trove class. # Defaults to the value set in the trove class.
@ -78,7 +74,7 @@
# The default can generally be left unless the # The default can generally be left unless the
# guests need to talk to the rabbit cluster via # guests need to talk to the rabbit cluster via
# a different ssl connection option. # a different ssl connection option.
#
# DEPRECATED PARAMETERS # DEPRECATED PARAMETERS
# #
# [*verbose*] # [*verbose*]
@ -98,6 +94,10 @@
# (optional) Default password Length for root password. # (optional) Default password Length for root password.
# Defaults to $::os_service_default. # Defaults to $::os_service_default.
# #
# [*control_exchange*]
# (Optional) Moved to init.pp. The default exchange to scope topics.
# Defaults to undef.
#
class trove::guestagent( class trove::guestagent(
$enabled = true, $enabled = true,
$manage_service = true, $manage_service = true,
@ -109,7 +109,6 @@ class trove::guestagent(
$log_facility = $::os_service_default, $log_facility = $::os_service_default,
$auth_url = 'http://localhost:5000/v2.0', $auth_url = 'http://localhost:5000/v2.0',
$swift_url = $::os_service_default, $swift_url = $::os_service_default,
$control_exchange = 'trove',
$rabbit_hosts = $::trove::rabbit_hosts, $rabbit_hosts = $::trove::rabbit_hosts,
$rabbit_host = $::trove::rabbit_host, $rabbit_host = $::trove::rabbit_host,
$rabbit_port = $::trove::rabbit_port, $rabbit_port = $::trove::rabbit_port,
@ -119,6 +118,7 @@ class trove::guestagent(
$default_password_length = $::os_service_default, $default_password_length = $::os_service_default,
#Deprecated #Deprecated
$verbose = undef, $verbose = undef,
$control_exchange = undef,
) inherits trove { ) inherits trove {
include ::trove::deps include ::trove::deps
@ -138,7 +138,8 @@ class trove::guestagent(
} }
oslo::messaging::default { 'trove_guestagent_config': oslo::messaging::default { 'trove_guestagent_config':
control_exchange => $control_exchange transport_url => $::trove::default_transport_url,
control_exchange => $::trove::control_exchange
} }
# region name # region name
@ -150,8 +151,9 @@ class trove::guestagent(
} }
oslo::messaging::notifications { 'trove_guestagent_config': oslo::messaging::notifications { 'trove_guestagent_config':
driver => $::trove::notification_driver, transport_url => $::trove::notification_transport_url,
topics => $::trove::notification_topics driver => $::trove::notification_driver,
topics => $::trove::notification_topics
} }
if $::trove::rpc_backend == 'trove.openstack.common.rpc.impl_kombu' or $::trove::rpc_backend == 'rabbit' { if $::trove::rpc_backend == 'trove.openstack.common.rpc.impl_kombu' or $::trove::rpc_backend == 'rabbit' {
@ -172,7 +174,7 @@ class trove::guestagent(
kombu_ssl_version => $::trove::kombu_ssl_version kombu_ssl_version => $::trove::kombu_ssl_version
} }
} elsif $::trove::rpc_backend == 'amqp' { } elsif $::trove::rpc_backend == 'amqp' {
oslo::messaging::amqp { 'trove_config': oslo::messaging::amqp { 'trove_guestagent_config':
server_request_prefix => $::trove::amqp_server_request_prefix, server_request_prefix => $::trove::amqp_server_request_prefix,
broadcast_prefix => $::trove::amqp_broadcast_prefix, broadcast_prefix => $::trove::amqp_broadcast_prefix,
group_request_prefix => $::trove::amqp_group_request_prefix, group_request_prefix => $::trove::amqp_group_request_prefix,

View File

@ -20,6 +20,20 @@
# Trove base config # Trove base config
# #
# == Parameters # == Parameters
#
# [*default_transport_url*]
# (optional) A URL representing the messaging driver to use and its full
# configuration. Transport URLs take the form:
# transport://user:pass@host1:port[,hostN:portN]/virtual_host
# Defaults to $::os_service_default
#
# [*notification_transport_url*]
# (optional) A URL representing the messaging driver to use for
# notifications and its full configuration. Transport URLs
# take the form:
# transport://user:pass@host1:port[,hostN:portN]/virtual_host
# Defaults to $::os_service_default.
#
# [*notification_driver*] # [*notification_driver*]
# (optional) Driver or drivers to handle sending notifications. # (optional) Driver or drivers to handle sending notifications.
# Value can be a string or a list. # Value can be a string or a list.
@ -265,6 +279,8 @@
# #
class trove( class trove(
$nova_proxy_admin_pass, $nova_proxy_admin_pass,
$default_transport_url = $::os_service_default,
$notification_transport_url = $::os_service_default,
$notification_driver = $::os_service_default, $notification_driver = $::os_service_default,
$notification_topics = $::os_service_default, $notification_topics = $::os_service_default,
$rabbit_host = $::os_service_default, $rabbit_host = $::os_service_default,

View File

@ -157,9 +157,15 @@ class trove::taskmanager(
'DEFAULT/heat_service_type': value => $::trove::heat_service_type; 'DEFAULT/heat_service_type': value => $::trove::heat_service_type;
} }
oslo::messaging::default { 'trove_taskmanager_config':
transport_url => $::trove::default_transport_url,
control_exchange => $::trove::control_exchange
}
oslo::messaging::notifications { 'trove_taskmanager_config': oslo::messaging::notifications { 'trove_taskmanager_config':
driver => $::trove::notification_driver, transport_url => $::trove::notification_transport_url,
topics => $::trove::notification_topics driver => $::trove::notification_driver,
topics => $::trove::notification_topics
} }
if $::trove::rpc_backend == 'trove.openstack.common.rpc.impl_kombu' or $::trove::rpc_backend == 'rabbit' { if $::trove::rpc_backend == 'trove.openstack.common.rpc.impl_kombu' or $::trove::rpc_backend == 'rabbit' {
@ -180,7 +186,7 @@ class trove::taskmanager(
kombu_ssl_version => $::trove::kombu_ssl_version kombu_ssl_version => $::trove::kombu_ssl_version
} }
} elsif $::trove::rpc_backend == 'amqp' { } elsif $::trove::rpc_backend == 'amqp' {
oslo::messaging::amqp { 'trove_config': oslo::messaging::amqp { 'trove_taskmanager_config':
server_request_prefix => $::trove::amqp_server_request_prefix, server_request_prefix => $::trove::amqp_server_request_prefix,
broadcast_prefix => $::trove::amqp_broadcast_prefix, broadcast_prefix => $::trove::amqp_broadcast_prefix,
group_request_prefix => $::trove::amqp_group_request_prefix, group_request_prefix => $::trove::amqp_group_request_prefix,

View File

@ -0,0 +1,7 @@
---
features:
- Add oslo.messaging transport_url parameters via puppet-oslo resource
deprecations:
- For the guestagent, control_exchange moved to trove class definition
as it is intrinsic to default messaging configuration. It can no longer
be set via the guestagent class and will be removed in a future release.

View File

@ -85,6 +85,8 @@ describe 'trove::api' do
is_expected.to contain_trove_config('DEFAULT/http_put_rate').with_value('200') is_expected.to contain_trove_config('DEFAULT/http_put_rate').with_value('200')
is_expected.to contain_trove_config('DEFAULT/http_delete_rate').with_value('200') is_expected.to contain_trove_config('DEFAULT/http_delete_rate').with_value('200')
is_expected.to contain_trove_config('DEFAULT/http_mgmt_post_rate').with_value('200') is_expected.to contain_trove_config('DEFAULT/http_mgmt_post_rate').with_value('200')
is_expected.to contain_trove_config('DEFAULT/transport_url').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_notifications/transport_url').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_notifications/driver').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_config('oslo_messaging_notifications/driver').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_notifications/topics').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_config('oslo_messaging_notifications/topics').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_rabbit/rabbit_userid').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_config('oslo_messaging_rabbit/rabbit_userid').with_value('<SERVICE DEFAULT>')
@ -249,6 +251,20 @@ describe 'trove::api' do
end end
end end
context 'with transport_url entries' do
let :pre_condition do
"class { 'trove':
nova_proxy_admin_pass => 'verysecrete',
default_transport_url => 'rabbit://rabbit_user:password@localhost:5673',
notification_transport_url => 'rabbit://rabbit_user:password@localhost:5673' }"
end
it do
is_expected.to contain_trove_config('DEFAULT/transport_url').with_value('rabbit://rabbit_user:password@localhost:5673')
is_expected.to contain_trove_config('oslo_messaging_notifications/transport_url').with_value('rabbit://rabbit_user:password@localhost:5673')
end
end
context 'with amqp rpc' do context 'with amqp rpc' do
let :pre_condition do let :pre_condition do
"class { 'trove' : "class { 'trove' :

View File

@ -34,6 +34,8 @@ describe 'trove::conductor' do
is_expected.to contain_trove_conductor_config('DEFAULT/nova_proxy_admin_user').with_value('admin') is_expected.to contain_trove_conductor_config('DEFAULT/nova_proxy_admin_user').with_value('admin')
is_expected.to contain_trove_conductor_config('DEFAULT/nova_proxy_admin_pass').with_value('verysecrete') is_expected.to contain_trove_conductor_config('DEFAULT/nova_proxy_admin_pass').with_value('verysecrete')
is_expected.to contain_trove_conductor_config('DEFAULT/nova_proxy_admin_tenant_name').with_value('admin') is_expected.to contain_trove_conductor_config('DEFAULT/nova_proxy_admin_tenant_name').with_value('admin')
is_expected.to contain_trove_conductor_config('DEFAULT/transport_url').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_conductor_config('oslo_messaging_notifications/transport_url').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/rabbit_userid').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/rabbit_userid').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/rabbit_password').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/rabbit_password').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/rabbit_use_ssl').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/rabbit_use_ssl').with_value('<SERVICE DEFAULT>')
@ -148,6 +150,20 @@ describe 'trove::conductor' do
end end
end end
context 'with transport_url entries' do
let :pre_condition do
"class { 'trove':
nova_proxy_admin_pass => 'verysecrete',
default_transport_url => 'rabbit://rabbit_user:password@localhost:5673',
notification_transport_url => 'rabbit://rabbit_user:password@localhost:5673' }"
end
it do
is_expected.to contain_trove_conductor_config('DEFAULT/transport_url').with_value('rabbit://rabbit_user:password@localhost:5673')
is_expected.to contain_trove_conductor_config('oslo_messaging_notifications/transport_url').with_value('rabbit://rabbit_user:password@localhost:5673')
end
end
context 'with amqp rpc' do context 'with amqp rpc' do
let :pre_condition do let :pre_condition do
"class { 'trove' : "class { 'trove' :
@ -156,23 +172,23 @@ describe 'trove::conductor' do
end end
it do it do
is_expected.to contain_trove_config('DEFAULT/rpc_backend').with_value('amqp') is_expected.to contain_trove_conductor_config('DEFAULT/rpc_backend').with_value('amqp')
is_expected.to contain_trove_config('oslo_messaging_amqp/server_request_prefix').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/server_request_prefix').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/broadcast_prefix').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/broadcast_prefix').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/group_request_prefix').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/group_request_prefix').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/container_name').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/container_name').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/idle_timeout').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/idle_timeout').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/trace').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/trace').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_ca_file').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/ssl_ca_file').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_cert_file').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/ssl_cert_file').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_key_file').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/ssl_key_file').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_key_password').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/ssl_key_password').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/allow_insecure_clients').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/allow_insecure_clients').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/sasl_mechanisms').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/sasl_mechanisms').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/sasl_config_dir').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/sasl_config_dir').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/sasl_config_name').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/sasl_config_name').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/username').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/username').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/password').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/password').with_value('<SERVICE DEFAULT>')
end end
end end

View File

@ -34,6 +34,8 @@ describe 'trove::guestagent' do
is_expected.to contain_trove_guestagent_config('DEFAULT/log_dir').with_value('/var/log/trove') is_expected.to contain_trove_guestagent_config('DEFAULT/log_dir').with_value('/var/log/trove')
is_expected.to contain_trove_guestagent_config('DEFAULT/os_region_name').with_value('RegionOne') is_expected.to contain_trove_guestagent_config('DEFAULT/os_region_name').with_value('RegionOne')
is_expected.to contain_trove_guestagent_config('DEFAULT/control_exchange').with_value('trove') is_expected.to contain_trove_guestagent_config('DEFAULT/control_exchange').with_value('trove')
is_expected.to contain_trove_guestagent_config('DEFAULT/transport_url').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_guestagent_config('oslo_messaging_notifications/transport_url').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_guestagent_config('oslo_messaging_notifications/driver').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_notifications/driver').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_guestagent_config('oslo_messaging_notifications/topics').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_notifications/topics').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_guestagent_config('oslo_messaging_rabbit/rabbit_host').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_rabbit/rabbit_host').with_value('<SERVICE DEFAULT>')
@ -168,6 +170,20 @@ describe 'trove::guestagent' do
end end
end end
context 'with transport_url entries' do
let :pre_condition do
"class { 'trove':
nova_proxy_admin_pass => 'verysecrete',
default_transport_url => 'rabbit://rabbit_user:password@localhost:5673',
notification_transport_url => 'rabbit://rabbit_user:password@localhost:5673' }"
end
it do
is_expected.to contain_trove_guestagent_config('DEFAULT/transport_url').with_value('rabbit://rabbit_user:password@localhost:5673')
is_expected.to contain_trove_guestagent_config('oslo_messaging_notifications/transport_url').with_value('rabbit://rabbit_user:password@localhost:5673')
end
end
context 'with amqp rpc' do context 'with amqp rpc' do
let :pre_condition do let :pre_condition do
"class { 'trove' : "class { 'trove' :
@ -176,23 +192,23 @@ describe 'trove::guestagent' do
end end
it do it do
is_expected.to contain_trove_config('DEFAULT/rpc_backend').with_value('amqp') is_expected.to contain_trove_guestagent_config('DEFAULT/rpc_backend').with_value('amqp')
is_expected.to contain_trove_config('oslo_messaging_amqp/server_request_prefix').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/server_request_prefix').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/broadcast_prefix').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/broadcast_prefix').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/group_request_prefix').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/group_request_prefix').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/container_name').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/container_name').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/idle_timeout').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/idle_timeout').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/trace').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/trace').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_ca_file').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/ssl_ca_file').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_cert_file').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/ssl_cert_file').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_key_file').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/ssl_key_file').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_key_password').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/ssl_key_password').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/allow_insecure_clients').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/allow_insecure_clients').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/sasl_mechanisms').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/sasl_mechanisms').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/sasl_config_dir').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/sasl_config_dir').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/sasl_config_name').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/sasl_config_name').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/username').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/username').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/password').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_guestagent_config('oslo_messaging_amqp/password').with_value('<SERVICE DEFAULT>')
end end
end end

View File

@ -69,6 +69,8 @@ describe 'trove::taskmanager' do
is_expected.to contain_trove_taskmanager_config('DEFAULT/neutron_service_type').with_value('network') is_expected.to contain_trove_taskmanager_config('DEFAULT/neutron_service_type').with_value('network')
is_expected.to contain_trove_config('DEFAULT/taskmanager_queue').with_value('taskmanager') is_expected.to contain_trove_config('DEFAULT/taskmanager_queue').with_value('taskmanager')
is_expected.to contain_file('/etc/trove/trove-guestagent.conf') is_expected.to contain_file('/etc/trove/trove-guestagent.conf')
is_expected.to contain_trove_taskmanager_config('DEFAULT/transport_url').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_taskmanager_config('oslo_messaging_notifications/transport_url').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_taskmanager_config('oslo_messaging_notifications/driver').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_notifications/driver').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_taskmanager_config('oslo_messaging_notifications/topics').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_notifications/topics').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_taskmanager_config('oslo_messaging_rabbit/rabbit_userid').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_rabbit/rabbit_userid').with_value('<SERVICE DEFAULT>')
@ -257,6 +259,20 @@ describe 'trove::taskmanager' do
end end
end end
context 'with transport_url entries' do
let :pre_condition do
"class { 'trove':
nova_proxy_admin_pass => 'verysecrete',
default_transport_url => 'rabbit://rabbit_user:password@localhost:5673',
notification_transport_url => 'rabbit://rabbit_user:password@localhost:5673' }"
end
it do
is_expected.to contain_trove_taskmanager_config('DEFAULT/transport_url').with_value('rabbit://rabbit_user:password@localhost:5673')
is_expected.to contain_trove_taskmanager_config('oslo_messaging_notifications/transport_url').with_value('rabbit://rabbit_user:password@localhost:5673')
end
end
context 'with amqp rpc' do context 'with amqp rpc' do
let :pre_condition do let :pre_condition do
"class { 'trove' : "class { 'trove' :
@ -265,23 +281,23 @@ describe 'trove::taskmanager' do
end end
it do it do
is_expected.to contain_trove_config('DEFAULT/rpc_backend').with_value('amqp') is_expected.to contain_trove_taskmanager_config('DEFAULT/rpc_backend').with_value('amqp')
is_expected.to contain_trove_config('oslo_messaging_amqp/server_request_prefix').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/server_request_prefix').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/broadcast_prefix').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/broadcast_prefix').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/group_request_prefix').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/group_request_prefix').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/container_name').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/container_name').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/idle_timeout').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/idle_timeout').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/trace').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/trace').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_ca_file').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/ssl_ca_file').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_cert_file').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/ssl_cert_file').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_key_file').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/ssl_key_file').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/ssl_key_password').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/ssl_key_password').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/allow_insecure_clients').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/allow_insecure_clients').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/sasl_mechanisms').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/sasl_mechanisms').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/sasl_config_dir').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/sasl_config_dir').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/sasl_config_name').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/sasl_config_name').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/username').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/username').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('oslo_messaging_amqp/password').with_value('<SERVICE DEFAULT>') is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/password').with_value('<SERVICE DEFAULT>')
end end
end end
end end