require 'spec_helper' describe 'glance::notify::rabbitmq' do shared_examples_for 'glance::notify::rabbitmq' do describe 'when using defaults' do it { is_expected.to contain_oslo__messaging__rabbit('glance_api_config').with( :rabbit_ha_queues => '', :heartbeat_timeout_threshold => '', :heartbeat_rate => '', :heartbeat_in_pthread => nil, :rabbit_qos_prefetch_count => '', :rabbit_use_ssl => '', :kombu_ssl_ca_certs => '', :kombu_ssl_certfile => '', :kombu_ssl_keyfile => '', :kombu_ssl_version => '', :kombu_reconnect_delay => '', :kombu_failover_strategy => '', :amqp_durable_queues => '', :kombu_compression => '', :rabbit_quorum_queue => '', :rabbit_transient_quorum_queue => '', :rabbit_quorum_delivery_limit => '', :rabbit_quorum_max_memory_length => '', :rabbit_quorum_max_memory_bytes => '', :enable_cancel_on_failover => '', ) } it { is_expected.to contain_oslo__messaging__default('glance_api_config').with( :executor_thread_pool_size => '', :transport_url => '', :rpc_response_timeout => '', :control_exchange => '', ) } it { is_expected.to contain_oslo__messaging__notifications('glance_api_config').with( :driver => '', :transport_url => '', :topics => '', :retry => '', ) } end describe 'when passing params and use ssl' do let :params do { :default_transport_url => 'rabbit://user:pass@host:1234/virt', :rpc_response_timeout => '120', :control_exchange => 'glance', :executor_thread_pool_size => 64, :rabbit_ha_queues => true, :rabbit_heartbeat_timeout_threshold => '60', :rabbit_heartbeat_rate => '10', :rabbit_heartbeat_in_pthread => true, :rabbit_qos_prefetch_count => 0, :rabbit_quorum_queue => true, :rabbit_transient_quorum_queue => true, :rabbit_quorum_delivery_limit => 3, :rabbit_quorum_max_memory_length => 5, :rabbit_quorum_max_memory_bytes => 1073741824, :rabbit_enable_cancel_on_failover => false, :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', :kombu_reconnect_delay => '5.0', :kombu_failover_strategy => 'shuffle', :amqp_durable_queues => true, :kombu_compression => 'gzip', :notification_transport_url => 'rabbit://user:pass@alt_host:1234/virt', :notification_topics => 'notification', :notification_driver => 'messagingv2', :notification_retry => 10, } end it { is_expected.to contain_oslo__messaging__rabbit('glance_api_config').with( :rabbit_ha_queues => true, :heartbeat_timeout_threshold => '60', :heartbeat_rate => '10', :heartbeat_in_pthread => true, :rabbit_qos_prefetch_count => 0, :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', :kombu_reconnect_delay => '5.0', :kombu_failover_strategy => 'shuffle', :amqp_durable_queues => true, :kombu_compression => 'gzip', :rabbit_quorum_queue => true, :rabbit_transient_quorum_queue => true, :rabbit_quorum_delivery_limit => 3, :rabbit_quorum_max_memory_length => 5, :rabbit_quorum_max_memory_bytes => 1073741824, :enable_cancel_on_failover => false, ) } it { is_expected.to contain_oslo__messaging__default('glance_api_config').with( :executor_thread_pool_size => 64, :transport_url => 'rabbit://user:pass@host:1234/virt', :rpc_response_timeout => '120', :control_exchange => 'glance', ) } it { is_expected.to contain_oslo__messaging__notifications('glance_api_config').with( :driver => 'messagingv2', :transport_url => 'rabbit://user:pass@alt_host:1234/virt', :topics => 'notification', :retry => 10, ) } 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 it_configures 'glance::notify::rabbitmq' end end end