Use single trove.conf for api, conductor and taskmanager
Previously puppet-trove creates separate config files for each service but these individual files have been removed from Trove by [1]. This change follows that decision and merge these three files into the single trove.conf file. [1] https://review.opendev.org/679043 Change-Id: I23c01acd9439335abb706f2528684d4ec473247d
This commit is contained in:
parent
b463bd2e09
commit
f1c11c68d5
@ -3,7 +3,7 @@ Puppet::Type.newtype(:trove_conductor_config) do
|
||||
ensurable
|
||||
|
||||
newparam(:name, :namevar => true) do
|
||||
desc 'Section/setting name to manage from /etc/trove/trove-conductor.conf'
|
||||
desc 'Section/setting name to manage from /etc/trove/trove-conductor.conf (DEPRECATED)'
|
||||
newvalues(/\S+\/\S+/)
|
||||
end
|
||||
|
||||
|
@ -3,7 +3,7 @@ Puppet::Type.newtype(:trove_taskmanager_config) do
|
||||
ensurable
|
||||
|
||||
newparam(:name, :namevar => true) do
|
||||
desc 'Section/setting name to manage from /etc/trove/trove-taskmanager.conf'
|
||||
desc 'Section/setting name to manage from /etc/trove/trove-taskmanager.conf (DEPRECATED)'
|
||||
newvalues(/\S+\/\S+/)
|
||||
end
|
||||
|
||||
|
@ -113,7 +113,7 @@ class trove::api(
|
||||
$package_ensure = 'present',
|
||||
$auth_strategy = 'keystone',
|
||||
$taskmanager_queue = 'taskmanager',
|
||||
) inherits trove {
|
||||
) {
|
||||
|
||||
include trove::deps
|
||||
include trove::db
|
||||
@ -129,27 +129,6 @@ class trove::api(
|
||||
'DEFAULT/trove_api_workers': value => $workers;
|
||||
}
|
||||
|
||||
if $::trove::single_tenant_mode {
|
||||
trove_config {
|
||||
'DEFAULT/remote_nova_client': value => 'trove.common.single_tenant_remote.nova_client_trove_admin';
|
||||
'DEFAULT/remote_cinder_client': value => 'trove.common.single_tenant_remote.cinder_client_trove_admin';
|
||||
'DEFAULT/remote_neutron_client': value => 'trove.common.single_tenant_remote.neutron_client_trove_admin';
|
||||
}
|
||||
}
|
||||
else {
|
||||
trove_config {
|
||||
'DEFAULT/remote_nova_client': ensure => absent;
|
||||
'DEFAULT/remote_cinder_client': ensure => absent;
|
||||
'DEFAULT/remote_neutron_client': ensure => absent;
|
||||
}
|
||||
}
|
||||
|
||||
oslo::messaging::default { 'trove_config':
|
||||
transport_url => $::trove::default_transport_url,
|
||||
control_exchange => $::trove::control_exchange,
|
||||
rpc_response_timeout => $::trove::rpc_response_timeout,
|
||||
}
|
||||
|
||||
if $auth_strategy == 'keystone' {
|
||||
include trove::keystone::authtoken
|
||||
}
|
||||
@ -196,79 +175,10 @@ class trove::api(
|
||||
purge => $purge_config,
|
||||
}
|
||||
|
||||
# services type
|
||||
trove_config {
|
||||
'DEFAULT/nova_compute_service_type': value => $::trove::nova_compute_service_type;
|
||||
'DEFAULT/cinder_service_type': value => $::trove::cinder_service_type;
|
||||
'DEFAULT/neutron_service_type': value => $::trove::neutron_service_type;
|
||||
'DEFAULT/glance_service_type': value => $::trove::glance_service_type;
|
||||
'DEFAULT/swift_service_type': value => $::trove::swift_service_type;
|
||||
}
|
||||
|
||||
# endpoint type
|
||||
trove_config {
|
||||
'DEFAULT/nova_compute_endpoint_type': value => $::trove::nova_compute_endpoint_type;
|
||||
'DEFAULT/cinder_endpoint_type': value => $::trove::cinder_endpoint_type;
|
||||
'DEFAULT/neutron_endpoint_type': value => $::trove::neutron_endpoint_type;
|
||||
'DEFAULT/swift_endpoint_type': value => $::trove::swift_endpoint_type;
|
||||
'DEFAULT/glance_endpoint_type': value => $::trove::glance_endpoint_type;
|
||||
'DEFAULT/trove_endpoint_type': value => $::trove::trove_endpoint_type;
|
||||
}
|
||||
|
||||
if $::trove::use_neutron {
|
||||
trove_config {
|
||||
'DEFAULT/network_label_regex': value => '.*';
|
||||
'DEFAULT/network_driver': value => 'trove.network.neutron.NeutronDriver';
|
||||
'DEFAULT/default_neutron_networks': value => $::trove::default_neutron_networks;
|
||||
}
|
||||
} else {
|
||||
trove_config {
|
||||
'DEFAULT/network_label_regex': value => '^private$';
|
||||
'DEFAULT/network_driver': value => 'trove.network.nova.NovaNetwork';
|
||||
'DEFAULT/default_neutron_networks': ensure => absent;
|
||||
}
|
||||
}
|
||||
|
||||
trove_config {
|
||||
'DEFAULT/taskmanager_queue': value => $taskmanager_queue;
|
||||
}
|
||||
|
||||
oslo::messaging::notifications { 'trove_config':
|
||||
transport_url => $::trove::notification_transport_url,
|
||||
driver => $::trove::notification_driver,
|
||||
topics => $::trove::notification_topics
|
||||
}
|
||||
|
||||
oslo::messaging::rabbit {'trove_config':
|
||||
rabbit_ha_queues => $::trove::rabbit_ha_queues,
|
||||
rabbit_use_ssl => $::trove::rabbit_use_ssl,
|
||||
kombu_reconnect_delay => $::trove::kombu_reconnect_delay,
|
||||
kombu_failover_strategy => $::trove::kombu_failover_strategy,
|
||||
amqp_durable_queues => $::trove::amqp_durable_queues,
|
||||
kombu_ssl_ca_certs => $::trove::kombu_ssl_ca_certs,
|
||||
kombu_ssl_certfile => $::trove::kombu_ssl_certfile,
|
||||
kombu_ssl_keyfile => $::trove::kombu_ssl_keyfile,
|
||||
kombu_ssl_version => $::trove::kombu_ssl_version
|
||||
}
|
||||
|
||||
oslo::messaging::amqp { 'trove_config':
|
||||
server_request_prefix => $::trove::amqp_server_request_prefix,
|
||||
broadcast_prefix => $::trove::amqp_broadcast_prefix,
|
||||
group_request_prefix => $::trove::amqp_group_request_prefix,
|
||||
container_name => $::trove::amqp_container_name,
|
||||
idle_timeout => $::trove::amqp_idle_timeout,
|
||||
trace => $::trove::amqp_trace,
|
||||
ssl_ca_file => $::trove::amqp_ssl_ca_file,
|
||||
ssl_cert_file => $::trove::amqp_ssl_cert_file,
|
||||
ssl_key_file => $::trove::amqp_ssl_key_file,
|
||||
ssl_key_password => $::trove::amqp_ssl_key_password,
|
||||
sasl_mechanisms => $::trove::amqp_sasl_mechanisms,
|
||||
sasl_config_dir => $::trove::amqp_sasl_config_dir,
|
||||
sasl_config_name => $::trove::amqp_sasl_config_name,
|
||||
username => $::trove::amqp_username,
|
||||
password => $::trove::amqp_password,
|
||||
}
|
||||
|
||||
trove::generic_service { 'api':
|
||||
enabled => $enabled,
|
||||
manage_service => $manage_service,
|
||||
|
@ -16,28 +16,6 @@
|
||||
# (optional) The state of the trove conductor package
|
||||
# Defaults to 'present'
|
||||
#
|
||||
# [*debug*]
|
||||
# (optional) Rather to log the trove api service at debug level.
|
||||
# Default: false
|
||||
#
|
||||
# [*log_file*]
|
||||
# (optional) The path of file used for logging
|
||||
# If set to $::os_service_default, it will not log to any file.
|
||||
# Default: /var/log/trove/trove-conductor.log
|
||||
#
|
||||
# [*log_dir*]
|
||||
# (optional) directory to which trove logs are sent.
|
||||
# If set to $::os_service_default, it will not log to any directory.
|
||||
# Defaults to '/var/log/trove'
|
||||
#
|
||||
# [*use_syslog*]
|
||||
# (optional) Use syslog for logging.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*log_facility*]
|
||||
# (optional) Syslog facility to receive log lines.
|
||||
# Defaults to 'LOG_USER'.
|
||||
#
|
||||
# [*conductor_manager*]
|
||||
# (optional) Trove conductor manager.
|
||||
# Defaults to 'trove.conductor.manager.Manager'.
|
||||
@ -60,120 +38,67 @@
|
||||
# (optional) Authentication URL.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*debug*]
|
||||
# (optional) Rather to log the trove api service at debug level.
|
||||
# Default: undef
|
||||
#
|
||||
# [*log_file*]
|
||||
# (optional) The path of file used for logging
|
||||
# If set to $::os_service_default, it will not log to any file.
|
||||
# Default: undef
|
||||
#
|
||||
# [*log_dir*]
|
||||
# (optional) directory to which trove logs are sent.
|
||||
# If set to $::os_service_default, it will not log to any directory.
|
||||
# Defaults undef
|
||||
#
|
||||
# [*use_syslog*]
|
||||
# (optional) Use syslog for logging.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*log_facility*]
|
||||
# (optional) Syslog facility to receive log lines.
|
||||
# Defaults to undef
|
||||
#
|
||||
class trove::conductor(
|
||||
$enabled = true,
|
||||
$manage_service = true,
|
||||
$package_ensure = 'present',
|
||||
$debug = $::os_service_default,
|
||||
$log_file = '/var/log/trove/trove-conductor.log',
|
||||
$log_dir = '/var/log/trove',
|
||||
$use_syslog = $::os_service_default,
|
||||
$log_facility = $::os_service_default,
|
||||
$conductor_manager = 'trove.conductor.manager.Manager',
|
||||
$workers = $::os_workers,
|
||||
$enable_profiler = $::os_service_default,
|
||||
$trace_sqlalchemy = $::os_service_default,
|
||||
# DEPRECATED PARAMETERS
|
||||
$auth_url = undef
|
||||
) inherits trove {
|
||||
$auth_url = undef,
|
||||
$debug = undef,
|
||||
$log_file = undef,
|
||||
$log_dir = undef,
|
||||
$use_syslog = undef,
|
||||
$log_facility = undef,
|
||||
) {
|
||||
|
||||
include trove::deps
|
||||
include trove::params
|
||||
include trove::conductor::service_credentials
|
||||
|
||||
if $::trove::database_connection {
|
||||
if($::trove::database_connection =~ /mysql:\/\/\S+:\S+@\S+\/\S+/) {
|
||||
require mysql::bindings
|
||||
require mysql::bindings::python
|
||||
} elsif($::trove::database_connection =~ /postgresql:\/\/\S+:\S+@\S+\/\S+/) {
|
||||
|
||||
} elsif($::trove::database_connection =~ /sqlite:\/\//) {
|
||||
|
||||
} else {
|
||||
fail("Invalid db connection ${::trove::database_connection}")
|
||||
}
|
||||
trove_conductor_config {
|
||||
'database/connection': value => $::trove::database_connection;
|
||||
'database/idle_timeout': value => $::trove::database_idle_timeout;
|
||||
}
|
||||
# Remove individual config files so that we do not leave any parameters
|
||||
# configured by older version
|
||||
file { '/etc/trove/trove-conductor.conf':
|
||||
ensure => absent,
|
||||
require => Anchor['trove::config::begin'],
|
||||
notify => Anchor['trove::config::end']
|
||||
}
|
||||
|
||||
# basic service config
|
||||
trove_conductor_config {
|
||||
trove_config {
|
||||
'DEFAULT/trove_conductor_workers': value => $workers;
|
||||
}
|
||||
|
||||
# profiler config
|
||||
trove_conductor_config {
|
||||
trove_config {
|
||||
'profiler/enabled': value => $enable_profiler;
|
||||
'profiler/trace_sqlalchemy': value => $trace_sqlalchemy;
|
||||
}
|
||||
|
||||
if $::trove::single_tenant_mode {
|
||||
trove_conductor_config {
|
||||
'DEFAULT/remote_nova_client': value => 'trove.common.single_tenant_remote.nova_client_trove_admin';
|
||||
'DEFAULT/remote_cinder_client': value => 'trove.common.single_tenant_remote.cinder_client_trove_admin';
|
||||
'DEFAULT/remote_neutron_client': value => 'trove.common.single_tenant_remote.neutron_client_trove_admin';
|
||||
}
|
||||
}
|
||||
else {
|
||||
trove_conductor_config {
|
||||
'DEFAULT/remote_nova_client': ensure => absent;
|
||||
'DEFAULT/remote_cinder_client': ensure => absent;
|
||||
'DEFAULT/remote_neutron_client': ensure => absent;
|
||||
}
|
||||
}
|
||||
|
||||
oslo::messaging::default { 'trove_conductor_config':
|
||||
transport_url => $::trove::default_transport_url,
|
||||
control_exchange => $::trove::control_exchange,
|
||||
rpc_response_timeout => $::trove::rpc_response_timeout,
|
||||
}
|
||||
|
||||
oslo::messaging::notifications { 'trove_conductor_config':
|
||||
transport_url => $::trove::notification_transport_url,
|
||||
driver => $::trove::notification_driver,
|
||||
topics => $::trove::notification_topics
|
||||
}
|
||||
|
||||
oslo::messaging::rabbit {'trove_conductor_config':
|
||||
rabbit_ha_queues => $::trove::rabbit_ha_queues,
|
||||
rabbit_use_ssl => $::trove::rabbit_use_ssl,
|
||||
kombu_reconnect_delay => $::trove::kombu_reconnect_delay,
|
||||
kombu_failover_strategy => $::trove::kombu_failover_strategy,
|
||||
amqp_durable_queues => $::trove::amqp_durable_queues,
|
||||
kombu_ssl_ca_certs => $::trove::kombu_ssl_ca_certs,
|
||||
kombu_ssl_certfile => $::trove::kombu_ssl_certfile,
|
||||
kombu_ssl_keyfile => $::trove::kombu_ssl_keyfile,
|
||||
kombu_ssl_version => $::trove::kombu_ssl_version
|
||||
}
|
||||
|
||||
oslo::messaging::amqp { 'trove_conductor_config':
|
||||
server_request_prefix => $::trove::amqp_server_request_prefix,
|
||||
broadcast_prefix => $::trove::amqp_broadcast_prefix,
|
||||
group_request_prefix => $::trove::amqp_group_request_prefix,
|
||||
container_name => $::trove::amqp_container_name,
|
||||
idle_timeout => $::trove::amqp_idle_timeout,
|
||||
trace => $::trove::amqp_trace,
|
||||
ssl_ca_file => $::trove::amqp_ssl_ca_file,
|
||||
ssl_cert_file => $::trove::amqp_ssl_cert_file,
|
||||
ssl_key_file => $::trove::amqp_ssl_key_file,
|
||||
ssl_key_password => $::trove::amqp_ssl_key_password,
|
||||
sasl_mechanisms => $::trove::amqp_sasl_mechanisms,
|
||||
sasl_config_dir => $::trove::amqp_sasl_config_dir,
|
||||
sasl_config_name => $::trove::amqp_sasl_config_name,
|
||||
username => $::trove::amqp_username,
|
||||
password => $::trove::amqp_password,
|
||||
}
|
||||
|
||||
oslo::log { 'trove_conductor_config':
|
||||
debug => $debug,
|
||||
log_file => $log_file,
|
||||
log_dir => $log_dir,
|
||||
use_syslog => $use_syslog,
|
||||
syslog_log_facility => $log_facility
|
||||
}
|
||||
|
||||
trove::generic_service { 'conductor':
|
||||
enabled => $enabled,
|
||||
manage_service => $manage_service,
|
||||
|
@ -1,3 +1,4 @@
|
||||
# DEPRECATED !!
|
||||
# The trove::conductor::service_credentials class helps configure auth settings
|
||||
#
|
||||
# == Parameters
|
||||
@ -40,26 +41,5 @@ class trove::conductor::service_credentials (
|
||||
|
||||
include trove::deps
|
||||
|
||||
$auth_url_base = pick($::trove::conductor::auth_url, $auth_url)
|
||||
$auth_url_real = "${regsubst($auth_url_base, '(\/v3$|\/v2.0$|\/$)', '')}/v3"
|
||||
|
||||
$username_real = pick($::trove::nova_proxy_admin_user, $username)
|
||||
$password_real = pick($::trove::nova_proxy_admin_pass, $password)
|
||||
$project_name_real = pick($::trove::nova_proxy_tenant_name, $project_name)
|
||||
$region_name_real = pick($::trove::os_region_name, $region_name)
|
||||
|
||||
if is_service_default(password_real) {
|
||||
fail('trove::conductor::service_credentials::password should be set')
|
||||
}
|
||||
|
||||
trove_conductor_config {
|
||||
'service_credentials/auth_url': value => $auth_url_real;
|
||||
'service_credentials/username': value => $username_real;
|
||||
'service_credentials/password': value => $password_real, secret => true;
|
||||
'service_credentials/project_name': value => $project_name_real;
|
||||
'service_credentials/project_domain_name': value => $project_domain_name;
|
||||
'service_credentials/user_domain_name': value => $user_domain_name;
|
||||
'service_credentials/region_name': value => $region_name_real;
|
||||
}
|
||||
|
||||
warning('The trove::conductor::service_credentials class has been deprecated and has no effect.')
|
||||
}
|
||||
|
@ -26,16 +26,6 @@
|
||||
# The value is an hash of trove_config resources.
|
||||
# Defaults to {}
|
||||
#
|
||||
# [*trove_taskmanager_config*]
|
||||
# (optional) Allow configuration of arbitrary trove taskmanager configurations.
|
||||
# The value is an hash of trove_taskmanager_config resources.
|
||||
# Defaults to {}
|
||||
#
|
||||
# [*trove_conductor_config*]
|
||||
# (optional) Allow configuration of arbitrary trove conductor configurations.
|
||||
# The value is an hash of trove_conductor_config resources.
|
||||
# Defaults to {}
|
||||
#
|
||||
# [*trove_guestagent_config*]
|
||||
# (optional) Allow configuration of arbitrary trove guestagent configurations.
|
||||
# The value is an hash of trove_guestagent_config resources.
|
||||
@ -61,25 +51,42 @@
|
||||
# NOTE: The configuration MUST NOT be already handled by this module
|
||||
# or Puppet catalog compilation will fail with duplicate resources.
|
||||
#
|
||||
# DEPRECATED PARAMETERS
|
||||
#
|
||||
# [*trove_taskmanager_config*]
|
||||
# (optional) Allow configuration of arbitrary trove taskmanager configurations.
|
||||
# The value is an hash of trove_taskmanager_config resources.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*trove_conductor_config*]
|
||||
# (optional) Allow configuration of arbitrary trove conductor configurations.
|
||||
# The value is an hash of trove_conductor_config resources.
|
||||
# Defaults to undef
|
||||
#
|
||||
class trove::config (
|
||||
$trove_config = {},
|
||||
$trove_taskmanager_config = {},
|
||||
$trove_conductor_config = {},
|
||||
$trove_guestagent_config = {},
|
||||
$trove_api_paste_ini = {},
|
||||
# DPERECATED PARAMETERS
|
||||
$trove_taskmanager_config = undef,
|
||||
$trove_conductor_config = undef,
|
||||
) {
|
||||
|
||||
include trove::deps
|
||||
|
||||
if $trove_taskmanager_config != undef {
|
||||
warning('The trove_taskmanager_config parmaeter is deprecated and has no effect.')
|
||||
}
|
||||
|
||||
if $trove_conductor_config != undef {
|
||||
warning('The trove_conductor_config parameter is deprecated and has no effect.')
|
||||
}
|
||||
|
||||
validate_legacy(Hash, 'validate_hash', $trove_config)
|
||||
validate_legacy(Hash, 'validate_hash', $trove_taskmanager_config)
|
||||
validate_legacy(Hash, 'validate_hash', $trove_conductor_config)
|
||||
validate_legacy(Hash, 'validate_hash', $trove_guestagent_config)
|
||||
validate_legacy(Hash, 'validate_hash', $trove_api_paste_ini)
|
||||
|
||||
create_resources('trove_config', $trove_config)
|
||||
create_resources('trove_taskmanager_config', $trove_taskmanager_config)
|
||||
create_resources('trove_conductor_config', $trove_conductor_config)
|
||||
create_resources('trove_guestagent_config', $trove_guestagent_config)
|
||||
create_resources('trove_api_paste_ini', $trove_api_paste_ini)
|
||||
}
|
||||
|
@ -106,7 +106,7 @@ class trove::guestagent(
|
||||
#Deprecated
|
||||
$control_exchange = undef,
|
||||
$auth_url = undef,
|
||||
) inherits trove {
|
||||
) {
|
||||
|
||||
include trove::deps
|
||||
include trove::params
|
||||
|
@ -391,4 +391,94 @@ class trove(
|
||||
name => $::trove::params::common_package_name,
|
||||
tag => ['openstack', 'trove-package'],
|
||||
}
|
||||
|
||||
# services type
|
||||
trove_config {
|
||||
'DEFAULT/nova_compute_service_type': value => $nova_compute_service_type;
|
||||
'DEFAULT/cinder_service_type': value => $cinder_service_type;
|
||||
'DEFAULT/neutron_service_type': value => $neutron_service_type;
|
||||
'DEFAULT/glance_service_type': value => $glance_service_type;
|
||||
'DEFAULT/swift_service_type': value => $swift_service_type;
|
||||
}
|
||||
|
||||
# endpoint type
|
||||
trove_config {
|
||||
'DEFAULT/nova_compute_endpoint_type': value => $nova_compute_endpoint_type;
|
||||
'DEFAULT/cinder_endpoint_type': value => $cinder_endpoint_type;
|
||||
'DEFAULT/neutron_endpoint_type': value => $neutron_endpoint_type;
|
||||
'DEFAULT/swift_endpoint_type': value => $swift_endpoint_type;
|
||||
'DEFAULT/glance_endpoint_type': value => $glance_endpoint_type;
|
||||
'DEFAULT/trove_endpoint_type': value => $trove_endpoint_type;
|
||||
}
|
||||
|
||||
if $single_tenant_mode {
|
||||
trove_config {
|
||||
'DEFAULT/remote_nova_client': value => 'trove.common.single_tenant_remote.nova_client_trove_admin';
|
||||
'DEFAULT/remote_cinder_client': value => 'trove.common.single_tenant_remote.cinder_client_trove_admin';
|
||||
'DEFAULT/remote_neutron_client': value => 'trove.common.single_tenant_remote.neutron_client_trove_admin';
|
||||
}
|
||||
}
|
||||
else {
|
||||
trove_config {
|
||||
'DEFAULT/remote_nova_client': ensure => absent;
|
||||
'DEFAULT/remote_cinder_client': ensure => absent;
|
||||
'DEFAULT/remote_neutron_client': ensure => absent;
|
||||
}
|
||||
}
|
||||
|
||||
if $use_neutron {
|
||||
trove_config {
|
||||
'DEFAULT/network_label_regex': value => '.*';
|
||||
'DEFAULT/network_driver': value => 'trove.network.neutron.NeutronDriver';
|
||||
'DEFAULT/default_neutron_networks': value => $default_neutron_networks;
|
||||
}
|
||||
} else {
|
||||
trove_config {
|
||||
'DEFAULT/network_label_regex': value => '^private$';
|
||||
'DEFAULT/network_driver': value => 'trove.network.nova.NovaNetwork';
|
||||
'DEFAULT/default_neutron_networks': ensure => absent;
|
||||
}
|
||||
}
|
||||
|
||||
oslo::messaging::default { 'trove_config':
|
||||
transport_url => $default_transport_url,
|
||||
control_exchange => $control_exchange,
|
||||
rpc_response_timeout => $rpc_response_timeout,
|
||||
}
|
||||
|
||||
oslo::messaging::notifications { 'trove_config':
|
||||
transport_url => $notification_transport_url,
|
||||
driver => $notification_driver,
|
||||
topics => $notification_topics
|
||||
}
|
||||
|
||||
oslo::messaging::rabbit { 'trove_config':
|
||||
rabbit_ha_queues => $rabbit_ha_queues,
|
||||
rabbit_use_ssl => $rabbit_use_ssl,
|
||||
kombu_reconnect_delay => $kombu_reconnect_delay,
|
||||
kombu_failover_strategy => $kombu_failover_strategy,
|
||||
amqp_durable_queues => $amqp_durable_queues,
|
||||
kombu_ssl_ca_certs => $kombu_ssl_ca_certs,
|
||||
kombu_ssl_certfile => $kombu_ssl_certfile,
|
||||
kombu_ssl_keyfile => $kombu_ssl_keyfile,
|
||||
kombu_ssl_version => $kombu_ssl_version
|
||||
}
|
||||
|
||||
oslo::messaging::amqp { 'trove_config':
|
||||
server_request_prefix => $amqp_server_request_prefix,
|
||||
broadcast_prefix => $amqp_broadcast_prefix,
|
||||
group_request_prefix => $amqp_group_request_prefix,
|
||||
container_name => $amqp_container_name,
|
||||
idle_timeout => $amqp_idle_timeout,
|
||||
trace => $amqp_trace,
|
||||
ssl_ca_file => $amqp_ssl_ca_file,
|
||||
ssl_cert_file => $amqp_ssl_cert_file,
|
||||
ssl_key_file => $amqp_ssl_key_file,
|
||||
ssl_key_password => $amqp_ssl_key_password,
|
||||
sasl_mechanisms => $amqp_sasl_mechanisms,
|
||||
sasl_config_dir => $amqp_sasl_config_dir,
|
||||
sasl_config_name => $amqp_sasl_config_name,
|
||||
username => $amqp_username,
|
||||
password => $amqp_password,
|
||||
}
|
||||
}
|
||||
|
@ -33,33 +33,11 @@
|
||||
# (optional) The state of the trove taskmanager package
|
||||
# Defaults to 'present'
|
||||
#
|
||||
# [*debug*]
|
||||
# (optional) Rather to log the trove api service at debug level.
|
||||
# Default: false
|
||||
#
|
||||
# [*log_file*]
|
||||
# (optional) The path of file used for logging
|
||||
# If set to $::os_service_default, it will not log to any file.
|
||||
# Default: /var/log/trove/trove-taskmanager.log
|
||||
#
|
||||
# [*log_dir*]
|
||||
# (optional) directory to which trove logs are sent.
|
||||
# If set to $::os_service_default, it will not log to any directory.
|
||||
# Defaults to '/var/log/trove'
|
||||
#
|
||||
# [*use_syslog*]
|
||||
# (optional) Use syslog for logging.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*guest_log_file*]
|
||||
# (optional) The path of file used for logging.
|
||||
# If set to $::os_service_default, it will not log to any file.
|
||||
# Defaults to '/var/log/trove/trove-guestagent.log'
|
||||
#
|
||||
# [*log_facility*]
|
||||
# (optional) Syslog facility to receive log lines.
|
||||
# Defaults to 'LOG_USER'.
|
||||
#
|
||||
# [*guestagent_config_file*]
|
||||
# (optional) Trove guest agent configuration file.
|
||||
# Defaults to '/etc/trove/trove-guestagent.conf'.
|
||||
@ -70,14 +48,6 @@
|
||||
#
|
||||
# DEPRECATED OPTIONS
|
||||
#
|
||||
# [*default_neutron_networks*]
|
||||
# (optional) The network that trove will attach by default.
|
||||
# Defaults to undef.
|
||||
#
|
||||
# [*taskmanager_queue*]
|
||||
# (optional) Message queue name the Taskmanager will listen to.
|
||||
# Defaults to 'taskmanager'.
|
||||
#
|
||||
# [*use_guestagent_template*]
|
||||
# (optional) Use template to provision trove guest agent configuration file.
|
||||
# Defaults to true.
|
||||
@ -86,159 +56,61 @@
|
||||
# (optional) Authentication URL.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*debug*]
|
||||
# (optional) Rather to log the trove api service at debug level.
|
||||
# Default: undef
|
||||
#
|
||||
# [*log_file*]
|
||||
# (optional) The path of file used for logging
|
||||
# If set to $::os_service_default, it will not log to any file.
|
||||
# Default: undef
|
||||
#
|
||||
# [*log_dir*]
|
||||
# (optional) directory to which trove logs are sent.
|
||||
# If set to $::os_service_default, it will not log to any directory.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*use_syslog*]
|
||||
# (optional) Use syslog for logging.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*log_facility*]
|
||||
# (optional) Syslog facility to receive log lines.
|
||||
# Defaults to undef
|
||||
#
|
||||
class trove::taskmanager(
|
||||
$enabled = true,
|
||||
$manage_service = true,
|
||||
$debug = $::os_service_default,
|
||||
$log_file = '/var/log/trove/trove-taskmanager.log',
|
||||
$log_dir = '/var/log/trove',
|
||||
$use_syslog = $::os_service_default,
|
||||
$guest_log_file = '/var/log/trove/trove-guestagent.log',
|
||||
$log_facility = $::os_service_default,
|
||||
$package_ensure = 'present',
|
||||
$guestagent_config_file = '/etc/trove/trove-guestagent.conf',
|
||||
$taskmanager_manager = 'trove.taskmanager.manager.Manager',
|
||||
#DEPRECATED OPTIONS
|
||||
$default_neutron_networks = undef,
|
||||
$taskmanager_queue = undef,
|
||||
$use_guestagent_template = true,
|
||||
$auth_url = undef,
|
||||
$debug = undef,
|
||||
$log_file = undef,
|
||||
$log_dir = undef,
|
||||
$use_syslog = undef,
|
||||
$log_facility = undef,
|
||||
) inherits trove {
|
||||
|
||||
include trove::deps
|
||||
include trove::params
|
||||
include trove::taskmanager::service_credentials
|
||||
|
||||
if $default_neutron_networks {
|
||||
warning("trove::taskmanager::default_neutron_networks is deprecated and will be removed in \
|
||||
the future release. Please use trove::default_neutron_networks instead.")
|
||||
}
|
||||
$default_neutron_networks_real = pick($default_neutron_networks, $::trove::default_neutron_networks)
|
||||
|
||||
if $taskmanager_queue {
|
||||
fail('Please use trove::api::taskmanager_queue instead to configure taskmanager_queue')
|
||||
}
|
||||
|
||||
if $::trove::database_connection {
|
||||
if($::trove::database_connection =~ /mysql:\/\/\S+:\S+@\S+\/\S+/) {
|
||||
require mysql::bindings
|
||||
require mysql::bindings::python
|
||||
} elsif($::trove::database_connection =~ /postgresql:\/\/\S+:\S+@\S+\/\S+/) {
|
||||
|
||||
} elsif($::trove::database_connection =~ /sqlite:\/\//) {
|
||||
|
||||
} else {
|
||||
fail("Invalid db connection ${::trove::database_connection}")
|
||||
}
|
||||
trove_taskmanager_config {
|
||||
'database/connection': value => $::trove::database_connection;
|
||||
'database/idle_timeout': value => $::trove::database_idle_timeout;
|
||||
}
|
||||
# Remove individual config files so that we do not leave any parameters
|
||||
# configured by older version
|
||||
file { '/etc/trove/trove-taskmanager.conf':
|
||||
ensure => absent,
|
||||
require => Anchor['trove::config::begin'],
|
||||
notify => Anchor['trove::config::end']
|
||||
}
|
||||
|
||||
# basic service config
|
||||
trove_taskmanager_config {
|
||||
trove_config {
|
||||
'DEFAULT/taskmanager_manager': value => $taskmanager_manager;
|
||||
}
|
||||
|
||||
# services type
|
||||
trove_taskmanager_config {
|
||||
'DEFAULT/nova_compute_service_type': value => $::trove::nova_compute_service_type;
|
||||
'DEFAULT/cinder_service_type': value => $::trove::cinder_service_type;
|
||||
'DEFAULT/neutron_service_type': value => $::trove::neutron_service_type;
|
||||
'DEFAULT/glance_service_type': value => $::trove::glance_service_type;
|
||||
'DEFAULT/swift_service_type': value => $::trove::swift_service_type;
|
||||
}
|
||||
|
||||
# endpoint type
|
||||
trove_taskmanager_config {
|
||||
'DEFAULT/nova_compute_endpoint_type': value => $::trove::nova_compute_endpoint_type;
|
||||
'DEFAULT/cinder_endpoint_type': value => $::trove::cinder_endpoint_type;
|
||||
'DEFAULT/neutron_endpoint_type': value => $::trove::neutron_endpoint_type;
|
||||
'DEFAULT/swift_endpoint_type': value => $::trove::swift_endpoint_type;
|
||||
'DEFAULT/glance_endpoint_type': value => $::trove::glance_endpoint_type;
|
||||
'DEFAULT/trove_endpoint_type': value => $::trove::trove_endpoint_type;
|
||||
}
|
||||
|
||||
if $::trove::single_tenant_mode {
|
||||
trove_taskmanager_config {
|
||||
'DEFAULT/remote_nova_client': value => 'trove.common.single_tenant_remote.nova_client_trove_admin';
|
||||
'DEFAULT/remote_cinder_client': value => 'trove.common.single_tenant_remote.cinder_client_trove_admin';
|
||||
'DEFAULT/remote_neutron_client': value => 'trove.common.single_tenant_remote.neutron_client_trove_admin';
|
||||
}
|
||||
}
|
||||
else {
|
||||
trove_taskmanager_config {
|
||||
'DEFAULT/remote_nova_client': ensure => absent;
|
||||
'DEFAULT/remote_cinder_client': ensure => absent;
|
||||
'DEFAULT/remote_neutron_client': ensure => absent;
|
||||
}
|
||||
}
|
||||
|
||||
oslo::messaging::default { 'trove_taskmanager_config':
|
||||
transport_url => $::trove::default_transport_url,
|
||||
control_exchange => $::trove::control_exchange,
|
||||
rpc_response_timeout => $::trove::rpc_response_timeout,
|
||||
}
|
||||
|
||||
oslo::messaging::notifications { 'trove_taskmanager_config':
|
||||
transport_url => $::trove::notification_transport_url,
|
||||
driver => $::trove::notification_driver,
|
||||
topics => $::trove::notification_topics
|
||||
}
|
||||
|
||||
oslo::messaging::rabbit { 'trove_taskmanager_config':
|
||||
rabbit_ha_queues => $::trove::rabbit_ha_queues,
|
||||
rabbit_use_ssl => $::trove::rabbit_use_ssl,
|
||||
kombu_reconnect_delay => $::trove::kombu_reconnect_delay,
|
||||
kombu_failover_strategy => $::trove::kombu_failover_strategy,
|
||||
amqp_durable_queues => $::trove::amqp_durable_queues,
|
||||
kombu_ssl_ca_certs => $::trove::kombu_ssl_ca_certs,
|
||||
kombu_ssl_certfile => $::trove::kombu_ssl_certfile,
|
||||
kombu_ssl_keyfile => $::trove::kombu_ssl_keyfile,
|
||||
kombu_ssl_version => $::trove::kombu_ssl_version
|
||||
}
|
||||
|
||||
oslo::messaging::amqp { 'trove_taskmanager_config':
|
||||
server_request_prefix => $::trove::amqp_server_request_prefix,
|
||||
broadcast_prefix => $::trove::amqp_broadcast_prefix,
|
||||
group_request_prefix => $::trove::amqp_group_request_prefix,
|
||||
container_name => $::trove::amqp_container_name,
|
||||
idle_timeout => $::trove::amqp_idle_timeout,
|
||||
trace => $::trove::amqp_trace,
|
||||
ssl_ca_file => $::trove::amqp_ssl_ca_file,
|
||||
ssl_cert_file => $::trove::amqp_ssl_cert_file,
|
||||
ssl_key_file => $::trove::amqp_ssl_key_file,
|
||||
ssl_key_password => $::trove::amqp_ssl_key_password,
|
||||
sasl_mechanisms => $::trove::amqp_sasl_mechanisms,
|
||||
sasl_config_dir => $::trove::amqp_sasl_config_dir,
|
||||
sasl_config_name => $::trove::amqp_sasl_config_name,
|
||||
username => $::trove::amqp_username,
|
||||
password => $::trove::amqp_password,
|
||||
}
|
||||
|
||||
if $::trove::use_neutron {
|
||||
trove_taskmanager_config {
|
||||
'DEFAULT/network_label_regex': value => '.*';
|
||||
'DEFAULT/network_driver': value => 'trove.network.neutron.NeutronDriver';
|
||||
'DEFAULT/default_neutron_networks': value => $default_neutron_networks_real;
|
||||
}
|
||||
} else {
|
||||
trove_taskmanager_config {
|
||||
'DEFAULT/network_label_regex': value => '^private$';
|
||||
'DEFAULT/network_driver': value => 'trove.network.nova.NovaNetwork';
|
||||
'DEFAULT/default_neutron_networks': ensure => absent;
|
||||
}
|
||||
}
|
||||
|
||||
oslo::log { 'trove_taskmanager_config':
|
||||
debug => $debug,
|
||||
log_file => $log_file,
|
||||
log_dir => $log_dir,
|
||||
use_syslog => $use_syslog,
|
||||
syslog_log_facility => $log_facility
|
||||
}
|
||||
|
||||
trove::generic_service { 'taskmanager':
|
||||
enabled => $enabled,
|
||||
manage_service => $manage_service,
|
||||
@ -262,14 +134,14 @@ Please configure options directly with the trove::guestagent class using hiera."
|
||||
}
|
||||
}
|
||||
|
||||
trove_taskmanager_config {
|
||||
trove_config {
|
||||
'DEFAULT/guest_config': value => $guestagent_config_file
|
||||
}
|
||||
}
|
||||
|
||||
# TO-DO(mmagr): Disabling transformer workarounds bug #1402055.
|
||||
# Remove this hack as soon as bug is fixed.
|
||||
trove_taskmanager_config {
|
||||
trove_config {
|
||||
'DEFAULT/exists_notification_transformer': ensure => absent,
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
# DEPRECATED !!
|
||||
# The trove::taskmanager::service_credentials class helps configure auth settings
|
||||
#
|
||||
# == Parameters
|
||||
@ -40,26 +41,5 @@ class trove::taskmanager::service_credentials (
|
||||
|
||||
include trove::deps
|
||||
|
||||
$auth_url_base = pick($::trove::taskmanager::auth_url, $auth_url)
|
||||
$auth_url_real = "${regsubst($auth_url_base, '(\/v3$|\/v2.0$|\/$)', '')}/v3"
|
||||
|
||||
$username_real = pick($::trove::nova_proxy_admin_user, $username)
|
||||
$password_real = pick($::trove::nova_proxy_admin_pass, $password)
|
||||
$project_name_real = pick($::trove::nova_proxy_tenant_name, $project_name)
|
||||
$region_name_real = pick($::trove::os_region_name, $region_name)
|
||||
|
||||
if is_service_default($password_real) {
|
||||
fail('trove::taskmanager::service_credentials::password should be set')
|
||||
}
|
||||
|
||||
trove_taskmanager_config {
|
||||
'service_credentials/auth_url': value => $auth_url_real;
|
||||
'service_credentials/username': value => $username_real;
|
||||
'service_credentials/password': value => $password_real, secret => true;
|
||||
'service_credentials/project_name': value => $project_name_real;
|
||||
'service_credentials/project_domain_name': value => $project_domain_name;
|
||||
'service_credentials/user_domain_name': value => $user_domain_name;
|
||||
'service_credentials/region_name': value => $region_name_real;
|
||||
}
|
||||
|
||||
warning('The trove::conductor::service_credentials class has been deprecated and has no effect.')
|
||||
}
|
||||
|
35
releasenotes/notes/use-single-config-233fda77f7d6c942.yaml
Normal file
35
releasenotes/notes/use-single-config-233fda77f7d6c942.yaml
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
upgrade:
|
||||
- |
|
||||
Now this modules no longer use ``trove-conductor.conf`` and
|
||||
``trove-taskmanager.conf``. The parameters previously added to these files
|
||||
are now added to the base ``trove.conf``.
|
||||
|
||||
deprecations:
|
||||
- |
|
||||
The following parameters have been deprecated and have no effect now.
|
||||
|
||||
- ``trove::config::trove_taskmanager_config``
|
||||
- ``trove::config::trove_conductor_config``
|
||||
|
||||
- |
|
||||
The following classes have been deprecated and have no effect now.
|
||||
|
||||
- ``trove::conductor::service_credentials``
|
||||
- ``trove::taskmanager::service_credentials``
|
||||
|
||||
- |
|
||||
The following parameters of the ``trove::conductor`` class and
|
||||
the ``trove::taskmanager`` class have been deprecated and have no effect.
|
||||
|
||||
- ``debug``
|
||||
- ``log_file``
|
||||
- ``log_dir``
|
||||
- ``use_syslog``
|
||||
- ``log_facility``
|
||||
|
||||
- |
|
||||
The following resource types have been deprecated.
|
||||
|
||||
- ``trove_conductor``
|
||||
- ``trove_taskmanager``
|
@ -31,17 +31,6 @@ describe 'trove::api' do
|
||||
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
nova_compute_service_type => 'compute',
|
||||
cinder_service_type => 'volume',
|
||||
swift_service_type => 'object-store',
|
||||
neutron_service_type => 'network',
|
||||
glance_service_type => 'image',
|
||||
nova_compute_endpoint_type => '<SERVICE DEFAULT>',
|
||||
cinder_endpoint_type => '<SERVICE DEFAULT>',
|
||||
swift_endpoint_type => '<SERVICE DEFAULT>',
|
||||
trove_endpoint_type => '<SERVICE DEFAULT>',
|
||||
glance_endpoint_type => '<SERVICE DEFAULT>',
|
||||
neutron_endpoint_type => '<SERVICE DEFAULT>',
|
||||
}
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysectrete',
|
||||
@ -78,43 +67,15 @@ describe 'trove::api' do
|
||||
is_expected.to contain_trove_config('DEFAULT/bind_port').with_value('8779')
|
||||
is_expected.to contain_trove_config('DEFAULT/backlog').with_value('4096')
|
||||
is_expected.to contain_trove_config('DEFAULT/trove_api_workers').with_value('8')
|
||||
is_expected.to contain_trove_config('DEFAULT/default_neutron_networks').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/control_exchange').with_value('trove')
|
||||
is_expected.to contain_trove_config('DEFAULT/nova_compute_service_type').with_value('compute')
|
||||
is_expected.to contain_trove_config('DEFAULT/cinder_service_type').with_value('volume')
|
||||
is_expected.to contain_trove_config('DEFAULT/swift_service_type').with_value('object-store')
|
||||
is_expected.to contain_trove_config('DEFAULT/neutron_service_type').with_value('network')
|
||||
is_expected.to contain_trove_config('DEFAULT/glance_service_type').with_value('image')
|
||||
is_expected.to contain_trove_config('DEFAULT/nova_compute_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/cinder_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/swift_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/trove_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/neutron_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/glance_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/http_get_rate').with_value('200')
|
||||
is_expected.to contain_trove_config('DEFAULT/http_post_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_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('DEFAULT/taskmanager_queue').with_value('taskmanager')
|
||||
is_expected.to contain_trove_config('DEFAULT/rpc_response_timeout').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/control_exchange').with_value('trove')
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_nova_client').with_ensure('absent')
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_cinder_client').with_ensure('absent')
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_neutron_client').with_ensure('absent')
|
||||
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/topics').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('oslo_messaging_rabbit/kombu_reconnect_delay').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('oslo_messaging_rabbit/kombu_failover_strategy').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('oslo_messaging_rabbit/amqp_durable_queues').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('ssl/cert_file').with_ensure('absent')
|
||||
is_expected.to contain_trove_config('ssl/key_file').with_ensure('absent')
|
||||
is_expected.to contain_trove_config('ssl/ca_file').with_ensure('absent')
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_config').with(
|
||||
:rabbit_use_ssl => '<SERVICE DEFAULT>',
|
||||
)
|
||||
end
|
||||
|
||||
context 'with SSL enabled on API' do
|
||||
@ -152,255 +113,6 @@ describe 'trove::api' do
|
||||
is_expected.to contain_trove_config('DEFAULT/http_mgmt_post_rate').with_value('2000')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with single tenant mode enabled' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
single_tenant_mode => 'true'
|
||||
}
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
it 'single tenant client values are set' do
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_nova_client').with_value('trove.common.single_tenant_remote.nova_client_trove_admin')
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_cinder_client').with_value('trove.common.single_tenant_remote.cinder_client_trove_admin')
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_neutron_client').with_value('trove.common.single_tenant_remote.neutron_client_trove_admin')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using a single RabbitMQ server' do
|
||||
let :pre_condition do
|
||||
"class { 'trove': }
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
it 'configures trove-api with RabbitMQ' do
|
||||
is_expected.to contain_trove_config('oslo_messaging_rabbit/rabbit_ha_queues').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('oslo_messaging_rabbit/amqp_durable_queues').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using a single RabbitMQ server with enable ha options' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_ha_queues => 'true',
|
||||
amqp_durable_queues => 'true',
|
||||
}
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
it 'configures trove-api with RabbitMQ' do
|
||||
is_expected.to contain_trove_config('oslo_messaging_rabbit/rabbit_ha_queues').with_value('true')
|
||||
is_expected.to contain_trove_config('oslo_messaging_rabbit/amqp_durable_queues').with_value('true')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using multiple RabbitMQ servers' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_ha_queues => 'true',
|
||||
}
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
it 'configures trove-api with RabbitMQ' do
|
||||
is_expected.to contain_trove_config('oslo_messaging_rabbit/rabbit_ha_queues').with_value('true')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using Neutron' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
use_neutron => true,
|
||||
default_neutron_networks => 'trove_service',
|
||||
}
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
|
||||
it 'configures trove to use the Neutron network driver' do
|
||||
is_expected.to contain_trove_config('DEFAULT/default_neutron_networks').with_value('trove_service')
|
||||
is_expected.to contain_trove_config('DEFAULT/network_driver').with_value('trove.network.neutron.NeutronDriver')
|
||||
end
|
||||
|
||||
it 'configures trove to use any network label' do
|
||||
is_expected.to contain_trove_config('DEFAULT/network_label_regex').with_value('.*')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using Nova Network' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
use_neutron => false
|
||||
}
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
|
||||
it 'configures trove to use the Nova Network network driver' do
|
||||
is_expected.to contain_trove_config('DEFAULT/default_neutron_networks').with_ensure('absent')
|
||||
is_expected.to contain_trove_config('DEFAULT/network_driver').with_value('trove.network.nova.NovaNetwork')
|
||||
end
|
||||
|
||||
it 'configures trove to use the "private" network label' do
|
||||
is_expected.to contain_trove_config('DEFAULT/network_label_regex').with_value('^private$')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'with SSL enabled with kombu' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_use_ssl => true,
|
||||
kombu_ssl_ca_certs => '/path/to/ssl/ca/certs',
|
||||
kombu_ssl_certfile => '/path/to/ssl/cert/file',
|
||||
kombu_ssl_keyfile => '/path/to/ssl/keyfile',
|
||||
kombu_ssl_version => 'TLSv1'
|
||||
}
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_config').with(
|
||||
:rabbit_use_ssl => true,
|
||||
:kombu_ssl_ca_certs => '/path/to/ssl/ca/certs',
|
||||
:kombu_ssl_certfile => '/path/to/ssl/cert/file',
|
||||
:kombu_ssl_keyfile => '/path/to/ssl/keyfile',
|
||||
:kombu_ssl_version => 'TLSv1',
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with SSL enabled without kombu' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_use_ssl => true
|
||||
}
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_config').with(
|
||||
:rabbit_use_ssl => true,
|
||||
:kombu_ssl_ca_certs => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_certfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_keyfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_version => '<SERVICE DEFAULT>',
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with SSL disabled' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_use_ssl => false
|
||||
}
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_config').with(
|
||||
:rabbit_use_ssl => false,
|
||||
:kombu_ssl_ca_certs => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_certfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_keyfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_version => '<SERVICE DEFAULT>',
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with transport_url entries' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
default_transport_url => 'rabbit://rabbit_user:password@localhost:5673',
|
||||
rpc_response_timeout => '120',
|
||||
control_exchange => 'openstack',
|
||||
notification_transport_url => 'rabbit://rabbit_user:password@localhost:5673'
|
||||
}
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
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('DEFAULT/rpc_response_timeout').with_value('120')
|
||||
is_expected.to contain_trove_config('DEFAULT/control_exchange').with_value('openstack')
|
||||
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
|
||||
let :pre_condition do
|
||||
"class { 'trove': }
|
||||
class { 'trove::api::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_trove_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_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_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_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_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_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_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_config('oslo_messaging_amqp/password').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1,73 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 2020 Red Hat, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'trove::conductor::service_credentials' do
|
||||
|
||||
shared_examples 'trove::conductor::service_credentials' do
|
||||
|
||||
context 'with default parameters' do
|
||||
let :params do
|
||||
{
|
||||
:auth_url => 'http://127.0.0.1:5000/v3',
|
||||
:password => 'verysecrete'
|
||||
}
|
||||
end
|
||||
|
||||
it 'configures service credentials with default parameters' do
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/auth_url').with_value('http://127.0.0.1:5000/v3')
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/username').with_value('trove')
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/password').with_value('verysecrete').with_secret(true)
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/project_name').with_value('services')
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/region_name').with_value('RegionOne')
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/user_domain_name').with_value('Default')
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/project_domain_name').with_value('Default')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when overriding defaults' do
|
||||
let :params do
|
||||
{
|
||||
:auth_url => 'http://127.0.0.1:5000/v3',
|
||||
:password => 'verysecrete',
|
||||
:username => 'trove2',
|
||||
:project_name => 'services2',
|
||||
:region_name => 'RegionTwo',
|
||||
:user_domain_name => 'MyDomain',
|
||||
:project_domain_name => 'MyDomain',
|
||||
}
|
||||
end
|
||||
|
||||
it 'configures service credentials with default parameters' do
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/auth_url').with_value('http://127.0.0.1:5000/v3')
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/username').with_value('trove2')
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/project_name').with_value('services2')
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/region_name').with_value('RegionTwo')
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/user_domain_name').with_value('MyDomain')
|
||||
is_expected.to contain_trove_conductor_config('service_credentials/project_domain_name').with_value('MyDomain')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
on_supported_os({
|
||||
:supported_os => OSDefaults.get_supported_os
|
||||
}).each do |os,facts|
|
||||
context "on #{os}" do
|
||||
it_configures 'trove::conductor::service_credentials'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
@ -5,18 +5,9 @@ describe 'trove::conductor' do
|
||||
shared_examples 'trove-conductor' do
|
||||
|
||||
context 'with default parameters' do
|
||||
|
||||
let :pre_condition do
|
||||
"class { 'trove': }
|
||||
class { 'trove::conductor::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
|
||||
it 'includes required classes' do
|
||||
is_expected.to contain_class('trove::deps')
|
||||
is_expected.to contain_class('trove::params')
|
||||
is_expected.to contain_class('trove::conductor::service_credentials')
|
||||
end
|
||||
|
||||
it 'installs trove-conductor package and service' do
|
||||
@ -34,219 +25,9 @@ describe 'trove::conductor' do
|
||||
end
|
||||
|
||||
it 'configures trove-conductor with default parameters' do
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/transport_url').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/rpc_response_timeout').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/control_exchange').with_value('trove')
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/remote_nova_client').with_ensure('absent')
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/remote_cinder_client').with_ensure('absent')
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/remote_neutron_client').with_ensure('absent')
|
||||
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/kombu_reconnect_delay').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/kombu_failover_strategy').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/amqp_durable_queues').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/trove_conductor_workers').with_value('8')
|
||||
is_expected.to contain_trove_conductor_config('profiler/enabled').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_conductor_config('profiler/trace_sqlalchemy').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_conductor_config').with(
|
||||
:rabbit_use_ssl => '<SERVICE DEFAULT>',
|
||||
)
|
||||
end
|
||||
|
||||
it 'configures trove-conductor with default logging parameters' do
|
||||
is_expected.to contain_oslo__log('trove_conductor_config').with(
|
||||
:use_syslog => '<SERVICE DEFAULT>',
|
||||
:syslog_log_facility => '<SERVICE DEFAULT>',
|
||||
:log_dir => '/var/log/trove',
|
||||
:log_file => '/var/log/trove/trove-conductor.log',
|
||||
:debug => '<SERVICE DEFAULT>',
|
||||
)
|
||||
end
|
||||
|
||||
context 'with single tenant mode enabled' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
single_tenant_mode => 'true'}
|
||||
class { 'trove::conductor::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
it 'single tenant client values are set' do
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/remote_nova_client').with_value('trove.common.single_tenant_remote.nova_client_trove_admin')
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/remote_cinder_client').with_value('trove.common.single_tenant_remote.cinder_client_trove_admin')
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/remote_neutron_client').with_value('trove.common.single_tenant_remote.neutron_client_trove_admin')
|
||||
is_expected.to contain_trove_config('DEFAULT/trove_conductor_workers').with_value('8')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using a single RabbitMQ server' do
|
||||
let :pre_condition do
|
||||
"class { 'trove': }
|
||||
class { 'trove::conductor::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
it 'configures trove-conductor with RabbitMQ' do
|
||||
is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/rabbit_ha_queues').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/amqp_durable_queues').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using a single RabbitMQ server with enable ha options' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_ha_queues => 'true',
|
||||
amqp_durable_queues => 'true',
|
||||
}
|
||||
class { 'trove::conductor::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
it 'configures trove-api with RabbitMQ' do
|
||||
is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/rabbit_ha_queues').with_value('true')
|
||||
is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/amqp_durable_queues').with_value('true')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using multiple RabbitMQ servers' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_ha_queues => true,
|
||||
}
|
||||
class { 'trove::conductor::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
it 'configures trove-conductor with RabbitMQ' do
|
||||
is_expected.to contain_trove_conductor_config('oslo_messaging_rabbit/rabbit_ha_queues').with_value('true')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using MySQL' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
database_connection => 'mysql://trove:pass@10.0.0.1/trove'
|
||||
}
|
||||
class { 'trove::conductor::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
it 'configures trove-conductor with RabbitMQ' do
|
||||
is_expected.to contain_trove_conductor_config('database/connection').with_value('mysql://trove:pass@10.0.0.1/trove')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'with SSL enabled with kombu' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
nova_proxy_admin_pass => 'verysecrete',
|
||||
rabbit_use_ssl => true,
|
||||
kombu_ssl_ca_certs => '/path/to/ssl/ca/certs',
|
||||
kombu_ssl_certfile => '/path/to/ssl/cert/file',
|
||||
kombu_ssl_keyfile => '/path/to/ssl/keyfile',
|
||||
kombu_ssl_version => 'TLSv1'}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_conductor_config').with(
|
||||
:rabbit_use_ssl => true,
|
||||
:kombu_ssl_ca_certs => '/path/to/ssl/ca/certs',
|
||||
:kombu_ssl_certfile => '/path/to/ssl/cert/file',
|
||||
:kombu_ssl_keyfile => '/path/to/ssl/keyfile',
|
||||
:kombu_ssl_version => 'TLSv1',
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with SSL enabled without kombu' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_use_ssl => true
|
||||
}
|
||||
class { 'trove::conductor::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_conductor_config').with(
|
||||
:rabbit_use_ssl => true,
|
||||
:kombu_ssl_ca_certs => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_certfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_keyfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_version => '<SERVICE DEFAULT>',
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with SSL disabled' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_use_ssl => false
|
||||
}
|
||||
class { 'trove::conductor::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_conductor_config').with(
|
||||
:rabbit_use_ssl => false,
|
||||
:kombu_ssl_ca_certs => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_certfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_keyfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_version => '<SERVICE DEFAULT>',
|
||||
)
|
||||
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',
|
||||
rpc_response_timeout => '120',
|
||||
control_exchange => 'openstack',
|
||||
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('DEFAULT/rpc_response_timeout').with_value('120')
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/control_exchange').with_value('openstack')
|
||||
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 messaging' do
|
||||
let :pre_condition do
|
||||
"class { 'trove' : }
|
||||
class { 'trove::conductor::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/server_request_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_conductor_config('oslo_messaging_amqp/group_request_prefix').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_conductor_config('oslo_messaging_amqp/idle_timeout').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/trace').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_conductor_config('oslo_messaging_amqp/ssl_cert_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_conductor_config('oslo_messaging_amqp/ssl_key_password').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_conductor_config('oslo_messaging_amqp/sasl_config_dir').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_conductor_config('oslo_messaging_amqp/username').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_conductor_config('oslo_messaging_amqp/password').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
on_supported_os({
|
||||
|
@ -9,16 +9,6 @@ describe 'trove::config' do
|
||||
'DEFAULT/bar' => { 'value' => 'barValue' },
|
||||
'DEFAULT/baz' => { 'ensure' => 'absent' }
|
||||
},
|
||||
:trove_taskmanager_config => {
|
||||
'DEFAULT/foo2' => { 'value' => 'fooValue' },
|
||||
'DEFAULT/bar2' => { 'value' => 'barValue' },
|
||||
'DEFAULT/baz2' => { 'ensure' => 'absent' }
|
||||
},
|
||||
:trove_conductor_config => {
|
||||
'DEFAULT/foo2' => { 'value' => 'fooValue' },
|
||||
'DEFAULT/bar2' => { 'value' => 'barValue' },
|
||||
'DEFAULT/baz2' => { 'ensure' => 'absent' }
|
||||
},
|
||||
:trove_guestagent_config => {
|
||||
'DEFAULT/foo2' => { 'value' => 'fooValue' },
|
||||
'DEFAULT/bar2' => { 'value' => 'barValue' },
|
||||
@ -40,18 +30,6 @@ describe 'trove::config' do
|
||||
is_expected.to contain_trove_config('DEFAULT/baz').with_ensure('absent')
|
||||
end
|
||||
|
||||
it 'configures arbitrary trove taskmanager configurations' do
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/foo2').with_value('fooValue')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/bar2').with_value('barValue')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/baz2').with_ensure('absent')
|
||||
end
|
||||
|
||||
it 'configures arbitrary trove conductor configurations' do
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/foo2').with_value('fooValue')
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/bar2').with_value('barValue')
|
||||
is_expected.to contain_trove_conductor_config('DEFAULT/baz2').with_ensure('absent')
|
||||
end
|
||||
|
||||
it 'configures arbitrary trove guestagent configurations' do
|
||||
is_expected.to contain_trove_guestagent_config('DEFAULT/foo2').with_value('fooValue')
|
||||
is_expected.to contain_trove_guestagent_config('DEFAULT/bar2').with_value('barValue')
|
||||
|
@ -40,6 +40,58 @@ describe 'trove' do
|
||||
is_expected.to contain_trove_config('DEFAULT/cinder_url').with_value('http://localhost:8776/v1')
|
||||
is_expected.to contain_trove_config('DEFAULT/swift_url').with_value('http://localhost:8080/v1/AUTH_')
|
||||
is_expected.to contain_trove_config('DEFAULT/neutron_url').with_value('http://localhost:9696/')
|
||||
is_expected.to contain_trove_config('DEFAULT/nova_compute_service_type').with_value('compute')
|
||||
is_expected.to contain_trove_config('DEFAULT/cinder_service_type').with_value('volumev3')
|
||||
is_expected.to contain_trove_config('DEFAULT/swift_service_type').with_value('object-store')
|
||||
is_expected.to contain_trove_config('DEFAULT/neutron_service_type').with_value('network')
|
||||
is_expected.to contain_trove_config('DEFAULT/glance_service_type').with_value('image')
|
||||
is_expected.to contain_trove_config('DEFAULT/nova_compute_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/cinder_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/swift_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/trove_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/neutron_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/glance_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/default_neutron_networks').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_nova_client').with_ensure('absent')
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_cinder_client').with_ensure('absent')
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_neutron_client').with_ensure('absent')
|
||||
is_expected.to contain_oslo__messaging__default('trove_config').with(
|
||||
:transport_url => '<SERVICE DEFAULT>',
|
||||
:rpc_response_timeout => '<SERVICE DEFAULT>',
|
||||
:control_exchange => 'trove'
|
||||
)
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_config').with(
|
||||
:rabbit_ha_queues => '<SERVICE DEFAULT>',
|
||||
:rabbit_use_ssl => '<SERVICE DEFAULT>',
|
||||
:kombu_reconnect_delay => '<SERVICE DEFAULT>',
|
||||
:kombu_failover_strategy => '<SERVICE DEFAULT>',
|
||||
:amqp_durable_queues => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_ca_certs => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_certfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_keyfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_version => '<SERVICE DEFAULT>',
|
||||
)
|
||||
is_expected.to contain_oslo__messaging__amqp('trove_config').with(
|
||||
:server_request_prefix => '<SERVICE DEFAULT>',
|
||||
:broadcast_prefix => '<SERVICE DEFAULT>',
|
||||
:group_request_prefix => '<SERVICE DEFAULT>',
|
||||
:container_name => '<SERVICE DEFAULT>',
|
||||
:idle_timeout => '<SERVICE DEFAULT>',
|
||||
:trace => '<SERVICE DEFAULT>',
|
||||
:ssl_ca_file => '<SERVICE DEFAULT>',
|
||||
:ssl_cert_file => '<SERVICE DEFAULT>',
|
||||
:ssl_key_file => '<SERVICE DEFAULT>',
|
||||
:sasl_mechanisms => '<SERVICE DEFAULT>',
|
||||
:sasl_config_dir => '<SERVICE DEFAULT>',
|
||||
:sasl_config_name => '<SERVICE DEFAULT>',
|
||||
:username => '<SERVICE DEFAULT>',
|
||||
:password => '<SERVICE DEFAULT>',
|
||||
)
|
||||
is_expected.to contain_oslo__messaging__notifications('trove_config').with(
|
||||
:transport_url => '<SERVICE DEFAULT>',
|
||||
:driver => '<SERVICE DEFAULT>',
|
||||
:topics => '<SERVICE DEFAULT>'
|
||||
)
|
||||
}
|
||||
|
||||
it 'installs common package' do
|
||||
@ -50,6 +102,50 @@ describe 'trove' do
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with single tenant mode enabled' do
|
||||
let :params do
|
||||
{ :single_tenant_mode => true }
|
||||
end
|
||||
|
||||
it 'single tenant client values are set' do
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_nova_client').with_value('trove.common.single_tenant_remote.nova_client_trove_admin')
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_cinder_client').with_value('trove.common.single_tenant_remote.cinder_client_trove_admin')
|
||||
is_expected.to contain_trove_config('DEFAULT/remote_neutron_client').with_value('trove.common.single_tenant_remote.neutron_client_trove_admin')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using Neutron' do
|
||||
let :params do
|
||||
{ :use_neutron => true,
|
||||
:default_neutron_networks => 'trove_service' }
|
||||
end
|
||||
|
||||
it 'configures trove to use the Neutron network driver' do
|
||||
is_expected.to contain_trove_config('DEFAULT/default_neutron_networks').with_value('trove_service')
|
||||
is_expected.to contain_trove_config('DEFAULT/network_driver').with_value('trove.network.neutron.NeutronDriver')
|
||||
end
|
||||
|
||||
it 'configures trove to use any network label' do
|
||||
is_expected.to contain_trove_config('DEFAULT/network_label_regex').with_value('.*')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using Nova Network' do
|
||||
let :params do
|
||||
{ :use_neutron => false }
|
||||
end
|
||||
|
||||
it 'configures trove to use the Nova Network network driver' do
|
||||
is_expected.to contain_trove_config('DEFAULT/default_neutron_networks').with_ensure('absent')
|
||||
is_expected.to contain_trove_config('DEFAULT/network_driver').with_value('trove.network.nova.NovaNetwork')
|
||||
end
|
||||
|
||||
it 'configures trove to use the "private" network label' do
|
||||
is_expected.to contain_trove_config('DEFAULT/network_label_regex').with_value('^private$')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
on_supported_os({
|
||||
|
@ -1,73 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 2020 Red Hat, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'trove::taskmanager::service_credentials' do
|
||||
|
||||
shared_examples 'trove::taskmanager::service_credentials' do
|
||||
|
||||
context 'with default parameters' do
|
||||
let :params do
|
||||
{
|
||||
:auth_url => 'http://127.0.0.1:5000/v3',
|
||||
:password => 'verysecrete'
|
||||
}
|
||||
end
|
||||
|
||||
it 'configures service credentials with default parameters' do
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/auth_url').with_value('http://127.0.0.1:5000/v3')
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/username').with_value('trove')
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/password').with_value('verysecrete').with_secret(true)
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/project_name').with_value('services')
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/region_name').with_value('RegionOne')
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/user_domain_name').with_value('Default')
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/project_domain_name').with_value('Default')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when overriding defaults' do
|
||||
let :params do
|
||||
{
|
||||
:auth_url => 'http://127.0.0.1:5000/v3',
|
||||
:password => 'verysecrete',
|
||||
:username => 'trove2',
|
||||
:project_name => 'services2',
|
||||
:region_name => 'RegionTwo',
|
||||
:user_domain_name => 'MyDomain',
|
||||
:project_domain_name => 'MyDomain',
|
||||
}
|
||||
end
|
||||
|
||||
it 'configures service credentials with default parameters' do
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/auth_url').with_value('http://127.0.0.1:5000/v3')
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/username').with_value('trove2')
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/project_name').with_value('services2')
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/region_name').with_value('RegionTwo')
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/user_domain_name').with_value('MyDomain')
|
||||
is_expected.to contain_trove_taskmanager_config('service_credentials/project_domain_name').with_value('MyDomain')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
on_supported_os({
|
||||
:supported_os => OSDefaults.get_supported_os
|
||||
}).each do |os,facts|
|
||||
context "on #{os}" do
|
||||
it_configures 'trove::taskmanager::service_credentials'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
@ -24,31 +24,9 @@ describe 'trove::taskmanager' do
|
||||
shared_examples 'trove-taskmanager' do
|
||||
|
||||
context 'with default parameters' do
|
||||
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
nova_compute_service_type => 'compute',
|
||||
cinder_service_type => 'volume',
|
||||
swift_service_type => 'object-store',
|
||||
neutron_service_type => 'network',
|
||||
glance_service_type => 'image',
|
||||
nova_compute_endpoint_type => '<SERVICE DEFAULT>',
|
||||
cinder_endpoint_type => '<SERVICE DEFAULT>',
|
||||
swift_endpoint_type => '<SERVICE DEFAULT>',
|
||||
trove_endpoint_type => '<SERVICE DEFAULT>',
|
||||
glance_endpoint_type => '<SERVICE DEFAULT>',
|
||||
neutron_endpoint_type => '<SERVICE DEFAULT>',
|
||||
}
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
region_name => 'RegionOne',
|
||||
}"
|
||||
end
|
||||
|
||||
it 'includes required classes' do
|
||||
is_expected.to contain_class('trove::deps')
|
||||
is_expected.to contain_class('trove::params')
|
||||
is_expected.to contain_class('trove::taskmanager::service_credentials')
|
||||
end
|
||||
|
||||
it 'installs trove-taskmanager package and service' do
|
||||
@ -66,57 +44,17 @@ describe 'trove::taskmanager' do
|
||||
end
|
||||
|
||||
it 'configures trove-taskmanager with default parameters' do
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/default_neutron_networks').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/nova_compute_service_type').with_value('compute')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/cinder_service_type').with_value('volume')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/swift_service_type').with_value('object-store')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/neutron_service_type').with_value('network')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/glance_service_type').with_value('image')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/nova_compute_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/cinder_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/swift_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/trove_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/neutron_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/glance_endpoint_type').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/taskmanager_manager').with_value('trove.taskmanager.manager.Manager')
|
||||
is_expected.to contain_trove_config('DEFAULT/taskmanager_manager').with_value('trove.taskmanager.manager.Manager')
|
||||
is_expected.to contain_trove_config('DEFAULT/guest_config').with_value('/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('DEFAULT/rpc_response_timeout').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/control_exchange').with_value('trove')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/remote_nova_client').with_ensure('absent')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/remote_cinder_client').with_ensure('absent')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/remote_neutron_client').with_ensure('absent')
|
||||
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/topics').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('oslo_messaging_rabbit/kombu_reconnect_delay').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('oslo_messaging_rabbit/kombu_failover_strategy').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('oslo_messaging_rabbit/amqp_durable_queues').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_taskmanager_config').with(
|
||||
:rabbit_use_ssl => '<SERVICE DEFAULT>',
|
||||
)
|
||||
end
|
||||
|
||||
it 'configures trove-taskmanager with default logging parameters' do
|
||||
is_expected.to contain_oslo__log('trove_taskmanager_config').with(
|
||||
:use_syslog => '<SERVICE DEFAULT>',
|
||||
:syslog_log_facility => '<SERVICE DEFAULT>',
|
||||
:log_dir => '/var/log/trove',
|
||||
:log_file => '/var/log/trove/trove-taskmanager.log',
|
||||
:debug => '<SERVICE DEFAULT>',
|
||||
)
|
||||
end
|
||||
|
||||
context 'when set use_guestagent_template to false' do
|
||||
let :pre_condition do
|
||||
"class { 'trove': }
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::taskmanager':
|
||||
use_guestagent_template => false,
|
||||
}"
|
||||
let :params do
|
||||
{ :use_guestagent_template => false }
|
||||
end
|
||||
|
||||
it 'configures trove-taskmanager with trove::guestagent' do
|
||||
is_expected.to contain_class('trove::guestagent').with(
|
||||
:enabled => false,
|
||||
@ -124,255 +62,6 @@ describe 'trove::taskmanager' do
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with single tenant mode enabled' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
single_tenant_mode => 'true'
|
||||
}
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::keystone::authtoken':
|
||||
password => 'a_big_secret',
|
||||
}"
|
||||
end
|
||||
it 'single tenant client values are set' do
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/remote_nova_client').with_value('trove.common.single_tenant_remote.nova_client_trove_admin')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/remote_cinder_client').with_value('trove.common.single_tenant_remote.cinder_client_trove_admin')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/remote_neutron_client').with_value('trove.common.single_tenant_remote.neutron_client_trove_admin')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using a single RabbitMQ server' do
|
||||
let :pre_condition do
|
||||
"class { 'trove': }
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
"
|
||||
end
|
||||
it 'configures trove-taskmanager with RabbitMQ' do
|
||||
is_expected.to contain_trove_taskmanager_config('oslo_messaging_rabbit/rabbit_ha_queues').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('oslo_messaging_rabbit/amqp_durable_queues').with_value('<SERVICE DEFAULT>')
|
||||
|
||||
# trove taskmanager also configures trove_guestagent.conf by default, ensure rabbit is right there
|
||||
is_expected.to contain_file('/etc/trove/trove-guestagent.conf').with_content(/^#rabbit_ha_queues=false$/)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using a single RabbitMQ server with enable rabbbit ha options' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_ha_queues => 'true',
|
||||
amqp_durable_queues => 'true',
|
||||
}
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
it 'configures trove-api with RabbitMQ' do
|
||||
is_expected.to contain_trove_taskmanager_config('oslo_messaging_rabbit/rabbit_ha_queues').with_value('true')
|
||||
is_expected.to contain_trove_taskmanager_config('oslo_messaging_rabbit/amqp_durable_queues').with_value('true')
|
||||
|
||||
# trove taskmanager also configures trove_guestagent.conf by default, ensure rabbit is right there
|
||||
is_expected.to contain_file('/etc/trove/trove-guestagent.conf').with_content(/^rabbit_ha_queues=true$/)
|
||||
is_expected.to contain_file('/etc/trove/trove-guestagent.conf').with_content(/^amqp_durable_queues=true$/)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using multiple RabbitMQ servers' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_ha_queues => 'true',
|
||||
}
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
it 'configures trove-taskmanager with RabbitMQ' do
|
||||
is_expected.to contain_trove_taskmanager_config('oslo_messaging_rabbit/rabbit_ha_queues').with_value('true')
|
||||
|
||||
# trove taskmanager also configures trove_guestagent.conf by default, ensure rabbit is right there
|
||||
is_expected.to contain_file('/etc/trove/trove-guestagent.conf').with_content(/^rabbit_ha_queues=true$/)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using MySQL' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
database_connection => 'mysql://trove:pass@10.0.0.1/trove'
|
||||
}
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
it 'configures trove-taskmanager with RabbitMQ' do
|
||||
is_expected.to contain_trove_taskmanager_config('database/connection').with_value('mysql://trove:pass@10.0.0.1/trove')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using Neutron' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
use_neutron => true
|
||||
}
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}
|
||||
class { 'trove::taskmanager':
|
||||
default_neutron_networks => 'trove_service',
|
||||
}
|
||||
"
|
||||
|
||||
end
|
||||
|
||||
it 'configures trove to use the Neutron network driver' do
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/default_neutron_networks').with_value('trove_service')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/network_driver').with_value('trove.network.neutron.NeutronDriver')
|
||||
|
||||
end
|
||||
|
||||
it 'configures trove to use any network label' do
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/network_label_regex').with_value('.*')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using Nova Network' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
use_neutron => false
|
||||
}
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
|
||||
end
|
||||
|
||||
it 'configures trove to use the Nova Network network driver' do
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/default_neutron_networks').with_ensure('absent')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/network_driver').with_value('trove.network.nova.NovaNetwork')
|
||||
end
|
||||
|
||||
it 'configures trove to use the "private" network label' do
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/network_label_regex').with_value('^private$')
|
||||
end
|
||||
end
|
||||
end
|
||||
context 'with SSL enabled with kombu' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_use_ssl => true,
|
||||
kombu_ssl_ca_certs => '/path/to/ssl/ca/certs',
|
||||
kombu_ssl_certfile => '/path/to/ssl/cert/file',
|
||||
kombu_ssl_keyfile => '/path/to/ssl/keyfile',
|
||||
kombu_ssl_version => 'TLSv1'
|
||||
}
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_taskmanager_config').with(
|
||||
:rabbit_use_ssl => true,
|
||||
:kombu_ssl_ca_certs => '/path/to/ssl/ca/certs',
|
||||
:kombu_ssl_certfile => '/path/to/ssl/cert/file',
|
||||
:kombu_ssl_keyfile => '/path/to/ssl/keyfile',
|
||||
:kombu_ssl_version => 'TLSv1',
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with SSL enabled without kombu' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_use_ssl => true
|
||||
}
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_taskmanager_config').with(
|
||||
:rabbit_use_ssl => true,
|
||||
:kombu_ssl_ca_certs => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_certfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_keyfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_version => '<SERVICE DEFAULT>',
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with SSL disabled' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
rabbit_use_ssl => false
|
||||
}
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_oslo__messaging__rabbit('trove_taskmanager_config').with(
|
||||
:rabbit_use_ssl => false,
|
||||
:kombu_ssl_ca_certs => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_certfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_keyfile => '<SERVICE DEFAULT>',
|
||||
:kombu_ssl_version => '<SERVICE DEFAULT>',
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with transport_url entries' do
|
||||
let :pre_condition do
|
||||
"class { 'trove':
|
||||
default_transport_url => 'rabbit://rabbit_user:password@localhost:5673',
|
||||
rpc_response_timeout => '120',
|
||||
control_exchange => 'openstack',
|
||||
notification_transport_url => 'rabbit://rabbit_user:password@localhost:5673'
|
||||
}
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
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('DEFAULT/rpc_response_timeout').with_value('120')
|
||||
is_expected.to contain_trove_taskmanager_config('DEFAULT/control_exchange').with_value('openstack')
|
||||
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 messaging' do
|
||||
let :pre_condition do
|
||||
"class { 'trove' : }
|
||||
class { 'trove::taskmanager::service_credentials':
|
||||
password => 'verysecrete',
|
||||
}"
|
||||
end
|
||||
|
||||
it do
|
||||
is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/server_request_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_taskmanager_config('oslo_messaging_amqp/group_request_prefix').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_taskmanager_config('oslo_messaging_amqp/idle_timeout').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/trace').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_taskmanager_config('oslo_messaging_amqp/ssl_cert_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_taskmanager_config('oslo_messaging_amqp/ssl_key_password').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_taskmanager_config('oslo_messaging_amqp/sasl_config_dir').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_taskmanager_config('oslo_messaging_amqp/username').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_trove_taskmanager_config('oslo_messaging_amqp/password').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
on_supported_os({
|
||||
|
Loading…
Reference in New Issue
Block a user