Add support for configuring common component
This patch updates cloudkitty class and related spec test to add support for installing and configuring Cloudkitty common component. Change-Id: Ia561fd6b0d44514dd5dd1b97ed71db7921a6ca75
This commit is contained in:
@@ -1,14 +1,359 @@
|
||||
# == Class: cloudkitty
|
||||
#
|
||||
# Full description of class cloudkitty here.
|
||||
# Cloudkitty base package & configuration
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*sample_parameter*]
|
||||
# Explanation of what this parameter affects and what it defaults to.
|
||||
# [*ensure_package*]
|
||||
# (Optional) Ensure state for package.
|
||||
# Defaults to 'present'
|
||||
#
|
||||
class cloudkitty {
|
||||
# [*rpc_backend*]
|
||||
# (Optional) Use these options to configure the message system.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*rpc_response_timeout*]
|
||||
# (Optional) Configure the timeout (in seconds) for rpc responses
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*rabbit_ha_queues*]
|
||||
# (optional) Use HA queues in RabbitMQ (x-ha-policy: all).
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*rabbit_heartbeat_timeout_threshold*]
|
||||
# (optional) Number of seconds after which the RabbitMQ broker is considered
|
||||
# down if the heartbeat keepalive fails. Any value >0 enables heartbeats.
|
||||
# Heartbeating helps to ensure the TCP connection to RabbitMQ isn't silently
|
||||
# closed, resulting in missed or lost messages from the queue.
|
||||
# (Requires kombu >= 3.0.7 and amqp >= 1.4.0)
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*rabbit_heartbeat_rate*]
|
||||
# (optional) How often during the rabbit_heartbeat_timeout_threshold period to
|
||||
# check the heartbeat on RabbitMQ connection. (i.e. rabbit_heartbeat_rate=2
|
||||
# when rabbit_heartbeat_timeout_threshold=60, the heartbeat will be checked
|
||||
# every 30 seconds.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*rabbit_use_ssl*]
|
||||
# (Optional) Connect over SSL for RabbitMQ.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*kombu_ssl_ca_certs*]
|
||||
# (Optional) SSL certification authority file (valid only if SSL enabled).
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*kombu_ssl_certfile*]
|
||||
# (Optional) SSL cert file (valid only if SSL enabled).
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*kombu_ssl_keyfile*]
|
||||
# (Optional) SSL key file (valid only if SSL enabled).
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*kombu_ssl_version*]
|
||||
# (Optional) SSL version to use (valid only if SSL enabled).
|
||||
# Valid values are TLSv1, SSLv23 and SSLv3. SSLv2 may be
|
||||
# available on some distributions.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*kombu_reconnect_delay*]
|
||||
# (Optional) How long to wait before reconnecting in response
|
||||
# to an AMQP consumer cancel notification. (floating point value)
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*kombu_failover_strategy*]
|
||||
# (Optional) Determines how the next RabbitMQ node is chosen in case the one
|
||||
# we are currently connected to becomes unavailable. Takes effect only if
|
||||
# more than one RabbitMQ node is provided in config. (string value)
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*kombu_compression*]
|
||||
# (optional) Possible values are: gzip, bz2. If not set compression will not
|
||||
# be used. This option may notbe available in future versions. EXPERIMENTAL.
|
||||
# (string value)
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*amqp_durable_queues*]
|
||||
# (Optional) Use durable queues in amqp.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_server_request_prefix*]
|
||||
# (Optional) Address prefix used when sending to a specific server
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_broadcast_prefix*]
|
||||
# (Optional) address prefix used when broadcasting to all servers
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_group_request_prefix*]
|
||||
# (Optional) address prefix when sending to any server in group
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_container_name*]
|
||||
# (Optional) Name for the AMQP container
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_idle_timeout*]
|
||||
# (Optional) Timeout for inactive connections
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_trace*]
|
||||
# (Optional) Debug: dump AMQP frames to stdout
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_ssl_ca_file*]
|
||||
# (Optional) CA certificate PEM file to verify server certificate
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_ssl_cert_file*]
|
||||
# (Optional) Identifying certificate PEM file to present to clients
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_ssl_key_file*]
|
||||
# (Optional) Private key PEM file used to sign cert_file certificate
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_ssl_key_password*]
|
||||
# (Optional) Password for decrypting ssl_key_file (if encrypted)
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_allow_insecure_clients*]
|
||||
# (Optional) Accept clients using either SSL or plain TCP
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_sasl_mechanisms*]
|
||||
# (Optional) Space separated list of acceptable SASL mechanisms
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_sasl_config_dir*]
|
||||
# (Optional) Path to directory that contains the SASL configuration
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_sasl_config_name*]
|
||||
# (Optional) Name of configuration file (without .conf suffix)
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_username*]
|
||||
# (Optional) User name for message broker authentication
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*amqp_password*]
|
||||
# (Optional) Password for message broker authentication
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*default_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_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*]
|
||||
# (Optional) Driver or drivers to handle sending notifications.
|
||||
# Value can be a string or a list.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*notification_topics*]
|
||||
# (optional) AMQP topic used for OpenStack notifications
|
||||
# Defaults to ::os_service_default
|
||||
#
|
||||
# [*flavor*]
|
||||
# (optional) Specifies the Authentication method.
|
||||
# Set to 'standalone' to get cloudkitty to work with a remote OpenStack
|
||||
# Tested versions include 0.9 and 2.2
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*region_name*]
|
||||
# (Optional) Region name for services. This is the
|
||||
# default region name that cloudkitty talks to service endpoints on.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*enable_proxy_headers_parsing*]
|
||||
# (Optional) Enable paste middleware to handle SSL requests through
|
||||
# HTTPProxyToWSGI middleware.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*purge_config*]
|
||||
# (optional) Whether to set only the specified config options
|
||||
# in the cloudkitty config.
|
||||
# Defaults to false.
|
||||
#
|
||||
# [*auth_strategy*]
|
||||
# (Optional) Type of authentication to use
|
||||
# Defaults to 'keystone'.
|
||||
#
|
||||
# [*api_paste_config*]
|
||||
# (Optional) Configuration file for WSGI definition of API.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*host*]
|
||||
# (Optional) Name of this node. This can be an opaque identifier.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*state_backend*]
|
||||
# (Optional) Backend for the state manager.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*state_basepath*]
|
||||
# (Optional) Storage directory for the file state backend.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*output_backend*]
|
||||
# (Optional) Backend for the output manager.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*output_basepath*]
|
||||
# (Optional) Storage directory for the file output backend.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*pipeline*]
|
||||
# (Optional) Output pipeline
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*storage_backend*]
|
||||
# (Optional) Name of the storage backend driver.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*tenant_fetcher_backend*]
|
||||
# (Optional) Driver used to fetch tenant list.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
class cloudkitty(
|
||||
$ensure_package = 'present',
|
||||
$rpc_backend = $::os_service_default,
|
||||
$rabbit_use_ssl = $::os_service_default,
|
||||
$rabbit_heartbeat_timeout_threshold = $::os_service_default,
|
||||
$rabbit_heartbeat_rate = $::os_service_default,
|
||||
$rabbit_ha_queues = $::os_service_default,
|
||||
$kombu_ssl_ca_certs = $::os_service_default,
|
||||
$kombu_ssl_certfile = $::os_service_default,
|
||||
$kombu_ssl_keyfile = $::os_service_default,
|
||||
$kombu_ssl_version = $::os_service_default,
|
||||
$kombu_reconnect_delay = $::os_service_default,
|
||||
$kombu_failover_strategy = $::os_service_default,
|
||||
$kombu_compression = $::os_service_default,
|
||||
$amqp_durable_queues = $::os_service_default,
|
||||
$amqp_server_request_prefix = $::os_service_default,
|
||||
$amqp_broadcast_prefix = $::os_service_default,
|
||||
$amqp_group_request_prefix = $::os_service_default,
|
||||
$amqp_container_name = $::os_service_default,
|
||||
$amqp_idle_timeout = $::os_service_default,
|
||||
$amqp_trace = $::os_service_default,
|
||||
$amqp_ssl_ca_file = $::os_service_default,
|
||||
$amqp_ssl_cert_file = $::os_service_default,
|
||||
$amqp_ssl_key_file = $::os_service_default,
|
||||
$amqp_ssl_key_password = $::os_service_default,
|
||||
$amqp_allow_insecure_clients = $::os_service_default,
|
||||
$amqp_sasl_mechanisms = $::os_service_default,
|
||||
$amqp_sasl_config_dir = $::os_service_default,
|
||||
$amqp_sasl_config_name = $::os_service_default,
|
||||
$amqp_username = $::os_service_default,
|
||||
$amqp_password = $::os_service_default,
|
||||
$notification_driver = $::os_service_default,
|
||||
$notification_topics = $::os_service_default,
|
||||
$default_transport_url = $::os_service_default,
|
||||
$notification_transport_url = $::os_service_default,
|
||||
$purge_config = false,
|
||||
$auth_strategy = 'keystone',
|
||||
$api_paste_config = $::os_service_default,
|
||||
$host = $::os_service_default,
|
||||
$state_backend = $::os_service_default,
|
||||
$state_basepath = $::os_service_default,
|
||||
$output_backend = $::os_service_default,
|
||||
$output_basepath = $::os_service_default,
|
||||
$pipeline = $::os_service_default,
|
||||
$storage_backend = $::os_service_default,
|
||||
$tenant_fetcher_backend = $::os_service_default,
|
||||
) {
|
||||
|
||||
include ::cloudkitty::params
|
||||
include ::cloudkitty::logging
|
||||
include ::cloudkitty::db
|
||||
include ::cloudkitty::deps
|
||||
include ::cloudkitty::storage
|
||||
|
||||
package { 'cloudkitty-common':
|
||||
ensure => $ensure_package,
|
||||
name => $::cloudkitty::params::common_package_name,
|
||||
tag => ['openstack','cloudkitty-package'],
|
||||
}
|
||||
|
||||
resources { 'cloudkitty_config':
|
||||
purge => $purge_config,
|
||||
}
|
||||
|
||||
if $rpc_backend == 'rabbit' or is_service_default($rpc_backend) {
|
||||
oslo::messaging::rabbit { 'cloudkitty_config':
|
||||
rabbit_ha_queues => $rabbit_ha_queues,
|
||||
rabbit_use_ssl => $rabbit_use_ssl,
|
||||
amqp_durable_queues => $amqp_durable_queues,
|
||||
heartbeat_timeout_threshold => $rabbit_heartbeat_timeout_threshold,
|
||||
heartbeat_rate => $rabbit_heartbeat_rate,
|
||||
kombu_ssl_version => $kombu_ssl_version,
|
||||
kombu_ssl_keyfile => $kombu_ssl_keyfile,
|
||||
kombu_ssl_certfile => $kombu_ssl_certfile,
|
||||
kombu_ssl_ca_certs => $kombu_ssl_ca_certs,
|
||||
kombu_reconnect_delay => $kombu_reconnect_delay,
|
||||
kombu_failover_strategy => $kombu_failover_strategy,
|
||||
kombu_compression => $kombu_compression,
|
||||
}
|
||||
}
|
||||
elsif $rpc_backend == 'amqp' {
|
||||
oslo::messaging::amqp { 'cloudkitty_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,
|
||||
allow_insecure_clients => $amqp_allow_insecure_clients,
|
||||
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,
|
||||
}
|
||||
}
|
||||
|
||||
oslo::messaging::default { 'cloudkitty_config':
|
||||
transport_url => $default_transport_url,
|
||||
}
|
||||
|
||||
oslo::messaging::notifications { 'cloudkitty_config':
|
||||
transport_url => $notification_transport_url,
|
||||
driver => $notification_driver,
|
||||
topics => $notification_topics,
|
||||
}
|
||||
|
||||
cloudkitty_config {
|
||||
'DEFAULT/api_paste_config': value => $api_paste_config;
|
||||
'DEFAULT/auth_strategy': value => $auth_strategy;
|
||||
'DEFAULT/host': value => $host;
|
||||
}
|
||||
|
||||
cloudkitty_config {
|
||||
'state/backend': value => $state_backend;
|
||||
'state/basepath': value => $state_basepath;
|
||||
}
|
||||
|
||||
cloudkitty_config {
|
||||
'output/backend': value => $output_backend;
|
||||
'output/basepath': value => $output_basepath;
|
||||
'output/pipeline': value => $pipeline;
|
||||
}
|
||||
|
||||
cloudkitty_config {
|
||||
'storage/backend': value => $storage_backend;
|
||||
'tenant_fetcher/backend': value => $tenant_fetcher_backend;
|
||||
}
|
||||
}
|
||||
|
||||
212
spec/classes/cloudkitty_init_spec.rb
Normal file
212
spec/classes/cloudkitty_init_spec.rb
Normal file
@@ -0,0 +1,212 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'cloudkitty' do
|
||||
|
||||
shared_examples 'cloudkitty' do
|
||||
|
||||
context 'with default parameters' do
|
||||
|
||||
it 'contains related class' do
|
||||
is_expected.to contain_class('cloudkitty::params')
|
||||
is_expected.to contain_class('cloudkitty::logging')
|
||||
is_expected.to contain_class('cloudkitty::deps')
|
||||
is_expected.to contain_class('cloudkitty::db')
|
||||
is_expected.to contain_class('cloudkitty::storage')
|
||||
end
|
||||
|
||||
it 'installs packages' do
|
||||
is_expected.to contain_package('cloudkitty-common').with(
|
||||
:name => platform_params[:cloudkitty_common_package],
|
||||
:ensure => 'present',
|
||||
:tag => ['openstack', 'cloudkitty-package']
|
||||
)
|
||||
end
|
||||
|
||||
it 'configures rabbit' do
|
||||
is_expected.to contain_cloudkitty_config('DEFAULT/transport_url').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/heartbeat_rate').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/kombu_compression').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_notifications/transport_url').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_notifications/driver').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('storage/backend').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
|
||||
it 'passes purge to resource' do
|
||||
is_expected.to contain_resources('cloudkitty_config').with({
|
||||
:purge => false
|
||||
})
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'with overridden parameters' do
|
||||
let :params do
|
||||
{
|
||||
:rpc_backend => 'rabbit',
|
||||
:rabbit_ha_queues => 'undef',
|
||||
:rabbit_heartbeat_timeout_threshold => '60',
|
||||
:rabbit_heartbeat_rate => '10',
|
||||
:kombu_compression => 'gzip',
|
||||
:ensure_package => '2012.1.1-15.el6',
|
||||
:notification_topics => 'openstack',
|
||||
:default_transport_url => 'rabbit://rabbit_user:password@localhost:5673',
|
||||
:storage_backend => 'gnocchi',
|
||||
}
|
||||
end
|
||||
|
||||
it 'configures rabbit' do
|
||||
is_expected.to contain_cloudkitty_config('DEFAULT/rpc_backend').with_value('rabbit')
|
||||
is_expected.to contain_cloudkitty_config('DEFAULT/transport_url').with_value('rabbit://rabbit_user:password@localhost:5673')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('60')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/heartbeat_rate').with_value('10')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/kombu_compression').with_value('gzip')
|
||||
end
|
||||
|
||||
it 'configures various things' do
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_notifications/topics').with_value('openstack')
|
||||
is_expected.to contain_cloudkitty_config('storage/backend').with_value('gnocchi')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'with kombu_reconnect_delay set to 5.0' do
|
||||
let :params do
|
||||
{ :kombu_reconnect_delay => '5.0' }
|
||||
end
|
||||
|
||||
it 'configures rabbit' do
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/kombu_reconnect_delay').with_value('5.0')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with rabbit_ha_queues set to true' do
|
||||
let :params do
|
||||
{ :rabbit_ha_queues => 'true' }
|
||||
end
|
||||
|
||||
it 'configures rabbit' do
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/rabbit_ha_queues').with_value(true)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with amqp_durable_queues parameter' do
|
||||
let :params do
|
||||
{ :amqp_durable_queues => 'true' }
|
||||
end
|
||||
|
||||
it 'configures rabbit' do
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/rabbit_ha_queues').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/rabbit_use_ssl').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/amqp_durable_queues').with_value(true)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with rabbit ssl enabled with kombu' do
|
||||
let :params do
|
||||
{ :rabbit_use_ssl => true,
|
||||
:kombu_ssl_ca_certs => '/etc/ca.cert',
|
||||
:kombu_ssl_certfile => '/etc/certfile',
|
||||
:kombu_ssl_keyfile => '/etc/key',
|
||||
:kombu_ssl_version => 'TLSv1', }
|
||||
end
|
||||
|
||||
it 'configures rabbit' do
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/rabbit_use_ssl').with_value(true)
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/kombu_ssl_ca_certs').with_value('/etc/ca.cert')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/kombu_ssl_certfile').with_value('/etc/certfile')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/kombu_ssl_keyfile').with_value('/etc/key')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/kombu_ssl_version').with_value('TLSv1')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with rabbit ssl enabled without kombu' do
|
||||
let :params do
|
||||
{ :rabbit_use_ssl => true, }
|
||||
end
|
||||
|
||||
it 'configures rabbit' do
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/rabbit_use_ssl').with_value(true)
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/kombu_ssl_ca_certs').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/kombu_ssl_certfile').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/kombu_ssl_keyfile').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_rabbit/kombu_ssl_version').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with amqp rpc_backend' do
|
||||
let :params do
|
||||
{ :rpc_backend => 'amqp' }
|
||||
end
|
||||
|
||||
context 'with default parameters' do
|
||||
it 'configures amqp' do
|
||||
is_expected.to contain_cloudkitty_config('DEFAULT/rpc_backend').with_value('amqp')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/server_request_prefix').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/broadcast_prefix').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/group_request_prefix').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/container_name').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/idle_timeout').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/trace').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/ssl_ca_file').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/ssl_cert_file').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/ssl_key_file').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/ssl_key_password').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/allow_insecure_clients').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/sasl_mechanisms').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/sasl_config_dir').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/sasl_config_name').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/username').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/password').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'with overriden amqp parameters' do
|
||||
let :params do
|
||||
{ :rpc_backend => 'amqp',
|
||||
:amqp_idle_timeout => '60',
|
||||
:amqp_trace => true,
|
||||
:amqp_ssl_ca_file => '/etc/ca.cert',
|
||||
:amqp_ssl_cert_file => '/etc/certfile',
|
||||
:amqp_ssl_key_file => '/etc/key',
|
||||
:amqp_username => 'amqp_user',
|
||||
:amqp_password => 'password',
|
||||
}
|
||||
end
|
||||
|
||||
it 'configures amqp' do
|
||||
is_expected.to contain_cloudkitty_config('DEFAULT/rpc_backend').with_value('amqp')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/idle_timeout').with_value('60')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/trace').with_value('true')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/ssl_ca_file').with_value('/etc/ca.cert')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/ssl_cert_file').with_value('/etc/certfile')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/ssl_key_file').with_value('/etc/key')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/username').with_value('amqp_user')
|
||||
is_expected.to contain_cloudkitty_config('oslo_messaging_amqp/password').with_value('password')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
on_supported_os({
|
||||
:supported_os => OSDefaults.get_supported_os
|
||||
}).each do |os,facts|
|
||||
context "on #{os}" do
|
||||
let (:facts) do
|
||||
facts.merge!(OSDefaults.get_facts())
|
||||
end
|
||||
|
||||
let(:platform_params) do
|
||||
case facts[:osfamily]
|
||||
when 'Debian'
|
||||
{ :cloudkitty_common_package => 'cloudkitty-common' }
|
||||
when 'RedHat'
|
||||
{ :cloudkitty_common_package => 'openstack-cloudkitty-common' }
|
||||
end
|
||||
end
|
||||
it_behaves_like 'cloudkitty'
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user