puppet-tripleo/spec/classes/tripleo_profile_base_qdr_spec.rb
Andrew Smith 79ccad4b8d Support both rabbitmq and oslo.messaging service nodes
This commit selects either the rabbitmq hosts or the
hosts associated to oslo.messaging rpc and notify services.
This is required for the transition of t-h-t to the use
of the separated oslo.messaging service backends.

This patch:
*select rpc and notify hosts from rabbitmq or oslo_messaging
*modify qdrouterd inter-router link port
*update qdr unit spec
*add release note

Needed-By: I934561612d26befd88a9053262836b47bdf4efb0
Change-Id: I154e2fe6f66b296b9b643627d57696e5178e1815
2018-03-16 18:16:42 -04:00

120 lines
3.4 KiB
Ruby

#
# Copyright (C) 2017 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 'tripleo::profile::base::qdr' do
let :params do
{
:step => 3,
:qdr_username => 'openstack',
:qdr_password => 'bigsecret',
}
end
shared_examples_for 'tripleo::profile::base::qdr' do
context 'with step 3 on single node' do
before do
facts.merge!({
:hostname => 'node.example.com',
})
params.merge!({
:oslomsg_rpc_hosts => ['node.example.com'],
})
end
it 'should setup standalone' do
is_expected.to contain_class('qdr').with(
:router_mode => 'standalone',
:extra_listeners => [],
:connectors => [],
)
end
end
context 'with step 3 on node1 of multinode' do
before do
facts.merge!({
:hostname => 'node1.example.com',
})
params.merge!({
:oslomsg_rpc_hosts => ['node1.example.com','node2.example.com','node3.example.com'],
})
end
it 'should set interior listener and no connectors' do
is_expected.to contain_class('qdr').with(
:router_mode => 'interior',
:extra_listeners => [{'host' => '0.0.0.0','port' => '31460','role' => 'inter-router'}],
:connectors => [],
)
end
end
context 'with step 3 on node2 of multinode' do
before do
facts.merge!({
:hostname => 'node2.example.com',
})
params.merge!({
:oslomsg_rpc_hosts => ['node1.example.com','node2.example.com','node3.example.com'],
})
end
it 'should set up interior listener and one connector' do
is_expected.to contain_class('qdr').with(
:router_mode => 'interior',
:extra_listeners => [{'host' => '0.0.0.0','port' => '31460','role' => 'inter-router'}],
:connectors => [{"host"=>"node1.example.com", "role"=>"inter-router", "port"=>"31460"}],
)
end
end
context 'with step 3 on node3 of multinode' do
before do
facts.merge!({
:hostname => 'node3.example.com',
})
params.merge!({
:oslomsg_rpc_hosts => ['node1.example.com','node2.example.com','node3.example.com'],
})
end
it 'should set up interior listener and two connectors' do
is_expected.to contain_class('qdr').with(
:router_mode => 'interior',
:extra_listeners => [{'host' => '0.0.0.0','port' => '31460','role' => 'inter-router'}],
:connectors => [
{"host"=>"node1.example.com", "role"=>"inter-router", "port"=>"31460"},
{"host"=>"node2.example.com", "role"=>"inter-router", "port"=>"31460"}],
)
end
end
end
on_supported_os.each do |os, facts|
context "on #{os}" do
let(:facts) do
facts.merge({ })
end
it_behaves_like 'tripleo::profile::base::qdr'
end
end
end