diff --git a/spec/api-rhel_spec.rb b/spec/api-rhel_spec.rb index cb97a7b..ab7d880 100644 --- a/spec/api-rhel_spec.rb +++ b/spec/api-rhel_spec.rb @@ -1,28 +1,30 @@ require_relative 'spec_helper' describe 'openstack-dns::api' do - describe 'redhat' do - let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) } - let(:node) { runner.node } - cached(:chef_run) do - runner.converge(described_recipe) - end + ALL_RHEL.each do |p| + context "redhat #{p[:version]}" do + let(:runner) { ChefSpec::SoloRunner.new(p) } + let(:node) { runner.node } + cached(:chef_run) do + runner.converge(described_recipe) + end - include_context 'dns-stubs' + include_context 'dns-stubs' - it 'converges successfully' do - expect { :chef_run }.to_not raise_error - end - it do - expect(chef_run).to enable_service('designate-api').with( - service_name: 'designate-api', - supports: { restart: true, status: true } - ) - expect(chef_run).to start_service('designate-api') - end - it do - expect(chef_run.service('designate-api')).to \ - subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + it 'converges successfully' do + expect { :chef_run }.to_not raise_error + end + it do + expect(chef_run).to enable_service('designate-api').with( + service_name: 'designate-api', + supports: { restart: true, status: true } + ) + expect(chef_run).to start_service('designate-api') + end + it do + expect(chef_run.service('designate-api')).to \ + subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + end end end end diff --git a/spec/central-rhel_spec.rb b/spec/central-rhel_spec.rb index aa471e3..562cb4b 100644 --- a/spec/central-rhel_spec.rb +++ b/spec/central-rhel_spec.rb @@ -1,28 +1,30 @@ require_relative 'spec_helper' describe 'openstack-dns::central' do - describe 'redhat' do - let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) } - let(:node) { runner.node } - cached(:chef_run) do - runner.converge(described_recipe) - end + ALL_RHEL.each do |p| + context "redhat #{p[:version]}" do + let(:runner) { ChefSpec::SoloRunner.new(p) } + let(:node) { runner.node } + cached(:chef_run) do + runner.converge(described_recipe) + end - include_context 'dns-stubs' + include_context 'dns-stubs' - it 'converges successfully' do - expect { :chef_run }.to_not raise_error - end - it do - expect(chef_run).to enable_service('designate_central').with( - service_name: 'designate-central', - supports: { restart: true, status: true } - ) - expect(chef_run).to start_service('designate_central') - end - it do - expect(chef_run.service('designate_central')).to \ - subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + it 'converges successfully' do + expect { :chef_run }.to_not raise_error + end + it do + expect(chef_run).to enable_service('designate_central').with( + service_name: 'designate-central', + supports: { restart: true, status: true } + ) + expect(chef_run).to start_service('designate_central') + end + it do + expect(chef_run.service('designate_central')).to \ + subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + end end end end diff --git a/spec/common-rhel_spec.rb b/spec/common-rhel_spec.rb index d281e2c..4c00d04 100644 --- a/spec/common-rhel_spec.rb +++ b/spec/common-rhel_spec.rb @@ -1,42 +1,52 @@ require_relative 'spec_helper' describe 'openstack-dns::common' do - describe 'redhat' do - let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) } - let(:node) { runner.node } - cached(:chef_run) do - runner.converge(described_recipe) - end + ALL_RHEL.each do |p| + context "redhat #{p[:version]}" do + let(:runner) { ChefSpec::SoloRunner.new(p) } + let(:node) { runner.node } + cached(:chef_run) do + runner.converge(described_recipe) + end - include_context 'dns-stubs' + include_context 'dns-stubs' - it 'converges successfully' do - expect { :chef_run }.to_not raise_error - end - it do - expect(chef_run).to_not include_recipe('openstack-common::logging') - end - it 'install designate packages' do - expect(chef_run).to upgrade_package %w(openstack-designate-api openstack-designate-central openstack-designate-mdns openstack-designate-producer openstack-designate-worker openstack-designate-sink) - end - it do - expect(chef_run).to upgrade_package('MySQL-python') - end - it do - expect(chef_run).to create_template('/etc/designate/pools.yaml').with( - source: 'pools.yaml.erb', - owner: 'designate', - group: 'designate', - mode: '644', - variables: { - banner: "\n# This file was autogenerated by Chef\n# Do not edit, changes will be overwritten\n", - bind_hosts: %w(127.0.0.1), - masters: %w(127.0.0.1), - ns_addresses: %w(127.0.0.1), - ns_hostnames: %w(ns1.example.org.), - rndc_key: '/etc/designate/rndc.key', - } - ) + it 'converges successfully' do + expect { :chef_run }.to_not raise_error + end + it do + expect(chef_run).to_not include_recipe('openstack-common::logging') + end + it 'install designate packages' do + expect(chef_run).to upgrade_package %w(openstack-designate-api openstack-designate-central openstack-designate-mdns openstack-designate-producer openstack-designate-worker openstack-designate-sink) + end + + case p + when REDHAT_7 + it do + expect(chef_run).to upgrade_package('MySQL-python') + end + when REDHAT_8 + it do + expect(chef_run).to upgrade_package('python3-PyMySQL') + end + end + it do + expect(chef_run).to create_template('/etc/designate/pools.yaml').with( + source: 'pools.yaml.erb', + owner: 'designate', + group: 'designate', + mode: '644', + variables: { + banner: "\n# This file was autogenerated by Chef\n# Do not edit, changes will be overwritten\n", + bind_hosts: %w(127.0.0.1), + masters: %w(127.0.0.1), + ns_addresses: %w(127.0.0.1), + ns_hostnames: %w(ns1.example.org.), + rndc_key: '/etc/designate/rndc.key', + } + ) + end end end end diff --git a/spec/mdns-rhel_spec.rb b/spec/mdns-rhel_spec.rb index 8fb29a3..c8e4c76 100644 --- a/spec/mdns-rhel_spec.rb +++ b/spec/mdns-rhel_spec.rb @@ -1,28 +1,30 @@ require_relative 'spec_helper' describe 'openstack-dns::mdns' do - describe 'redhat' do - let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) } - let(:node) { runner.node } - cached(:chef_run) do - runner.converge(described_recipe) - end + ALL_RHEL.each do |p| + context "redhat #{p[:version]}" do + let(:runner) { ChefSpec::SoloRunner.new(p) } + let(:node) { runner.node } + cached(:chef_run) do + runner.converge(described_recipe) + end - include_context 'dns-stubs' + include_context 'dns-stubs' - it 'converges successfully' do - expect { :chef_run }.to_not raise_error - end - it do - expect(chef_run).to enable_service('designate_mdns').with( - service_name: 'designate-mdns', - supports: { restart: true, status: true } - ) - expect(chef_run).to start_service('designate_mdns') - end - it do - expect(chef_run.service('designate_mdns')).to \ - subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + it 'converges successfully' do + expect { :chef_run }.to_not raise_error + end + it do + expect(chef_run).to enable_service('designate_mdns').with( + service_name: 'designate-mdns', + supports: { restart: true, status: true } + ) + expect(chef_run).to start_service('designate_mdns') + end + it do + expect(chef_run.service('designate_mdns')).to \ + subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + end end end end diff --git a/spec/producer-rhel_spec.rb b/spec/producer-rhel_spec.rb index e5773a0..f10079a 100644 --- a/spec/producer-rhel_spec.rb +++ b/spec/producer-rhel_spec.rb @@ -1,28 +1,30 @@ require_relative 'spec_helper' describe 'openstack-dns::producer' do - describe 'redhat' do - let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) } - let(:node) { runner.node } - cached(:chef_run) do - runner.converge(described_recipe) - end + ALL_RHEL.each do |p| + context "redhat #{p[:version]}" do + let(:runner) { ChefSpec::SoloRunner.new(p) } + let(:node) { runner.node } + cached(:chef_run) do + runner.converge(described_recipe) + end - include_context 'dns-stubs' + include_context 'dns-stubs' - it 'converges successfully' do - expect { :chef_run }.to_not raise_error - end - it do - expect(chef_run).to enable_service('designate_producer').with( - service_name: 'designate-producer', - supports: { restart: true, status: true } - ) - expect(chef_run).to start_service('designate_producer') - end - it do - expect(chef_run.service('designate_producer')).to \ - subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + it 'converges successfully' do + expect { :chef_run }.to_not raise_error + end + it do + expect(chef_run).to enable_service('designate_producer').with( + service_name: 'designate-producer', + supports: { restart: true, status: true } + ) + expect(chef_run).to start_service('designate_producer') + end + it do + expect(chef_run.service('designate_producer')).to \ + subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + end end end end diff --git a/spec/sink-rhel_spec.rb b/spec/sink-rhel_spec.rb index 5bd3033..8bf049b 100644 --- a/spec/sink-rhel_spec.rb +++ b/spec/sink-rhel_spec.rb @@ -1,28 +1,30 @@ require_relative 'spec_helper' describe 'openstack-dns::sink' do - describe 'redhat' do - let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) } - let(:node) { runner.node } - cached(:chef_run) do - runner.converge(described_recipe) - end + ALL_RHEL.each do |p| + context "redhat #{p[:version]}" do + let(:runner) { ChefSpec::SoloRunner.new(p) } + let(:node) { runner.node } + cached(:chef_run) do + runner.converge(described_recipe) + end - include_context 'dns-stubs' + include_context 'dns-stubs' - it 'converges successfully' do - expect { :chef_run }.to_not raise_error - end - it do - expect(chef_run).to enable_service('designate_sink').with( - service_name: 'designate-sink', - supports: { restart: true, status: true } - ) - expect(chef_run).to start_service('designate_sink') - end - it do - expect(chef_run.service('designate_sink')).to \ - subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + it 'converges successfully' do + expect { :chef_run }.to_not raise_error + end + it do + expect(chef_run).to enable_service('designate_sink').with( + service_name: 'designate-sink', + supports: { restart: true, status: true } + ) + expect(chef_run).to start_service('designate_sink') + end + it do + expect(chef_run.service('designate_sink')).to \ + subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + end end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 82bbd55..503c415 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -10,10 +10,21 @@ RSpec.configure do |config| config.file_cache_path = '/var/chef/cache' end -REDHAT_OPTS = { +REDHAT_7 = { platform: 'redhat', version: '7', }.freeze + +REDHAT_8 = { + platform: 'redhat', + version: '8', +}.freeze + +ALL_RHEL = [ + REDHAT_7, + REDHAT_8, +].freeze + UBUNTU_OPTS = { platform: 'ubuntu', version: '18.04', diff --git a/spec/worker-rhel_spec.rb b/spec/worker-rhel_spec.rb index 77d74f4..a1ab187 100644 --- a/spec/worker-rhel_spec.rb +++ b/spec/worker-rhel_spec.rb @@ -1,28 +1,30 @@ require_relative 'spec_helper' describe 'openstack-dns::worker' do - describe 'redhat' do - let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) } - let(:node) { runner.node } - cached(:chef_run) do - runner.converge(described_recipe) - end + ALL_RHEL.each do |p| + context "redhat #{p[:version]}" do + let(:runner) { ChefSpec::SoloRunner.new(p) } + let(:node) { runner.node } + cached(:chef_run) do + runner.converge(described_recipe) + end - include_context 'dns-stubs' + include_context 'dns-stubs' - it 'converges successfully' do - expect { :chef_run }.to_not raise_error - end - it do - expect(chef_run).to enable_service('designate_worker').with( - service_name: 'designate-worker', - supports: { restart: true, status: true } - ) - expect(chef_run).to start_service('designate_worker') - end - it do - expect(chef_run.service('designate_worker')).to \ - subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + it 'converges successfully' do + expect { :chef_run }.to_not raise_error + end + it do + expect(chef_run).to enable_service('designate_worker').with( + service_name: 'designate-worker', + supports: { restart: true, status: true } + ) + expect(chef_run).to start_service('designate_worker') + end + it do + expect(chef_run.service('designate_worker')).to \ + subscribe_to('template[/etc/designate/designate.conf]').on(:restart) + end end end end