test(inspec): move common controls to the share profile

This commit is contained in:
Imran Iqbal
2021-07-20 18:01:37 +01:00
parent 27473b9865
commit 2214096362
6 changed files with 73 additions and 8 deletions

View File

@@ -1,19 +1,21 @@
# frozen_string_literal: true # frozen_string_literal: true
# Overide by Platform
service_name = 'postgresql' service_name = 'postgresql'
pg_port = 5432
if (platform[:name] == 'centos') && platform[:release].start_with?('6') pg_port =
service_name = 'postgresql-9.6' case platform[:family]
elsif (platform[:family] == 'debian') || (platform[:family] == 'suse') when 'debian', 'suse'
pg_port = 5433 5433
end else
5432
end
control 'Postgres service' do control 'Postgres service' do
impact 0.5 impact 0.5
title 'should be running and enabled' title 'should be installed, enabled and running'
describe service(service_name) do describe service(service_name) do
it { should be_installed }
it { should be_enabled } it { should be_enabled }
it { should be_running } it { should be_running }
end end

View File

@@ -0,0 +1,13 @@
# frozen_string_literal: true
# https://docs.chef.io/inspec/profiles/#including-all-controls-from-a-profile
# Could use `include_controls` in this scenario
# include_controls 'share'
# https://docs.chef.io/inspec/profiles/#selectively-including-controls-from-a-profile
# However, using `require_controls` for more clarity
require_controls 'share' do
control 'Postgres command'
control 'Postgres configuration'
# control 'Postgres service'
end

View File

@@ -0,0 +1,37 @@
# frozen_string_literal: true
service_name =
case platform[:family]
when 'redhat', 'fedora', 'suse'
case system.platform[:release]
when 'tumbleweed'
'postgresql'
else
'postgresql-13'
end
else
'postgresql'
end
pg_port =
case platform[:family]
when 'debian', 'suse'
5433
else
5432
end
control 'Postgres service' do
impact 0.5
title 'should be installed, enabled and running'
describe service(service_name) do
it { should be_installed }
it { should be_enabled }
it { should be_running }
end
describe port(pg_port) do
it { should be_listening }
end
end

View File

@@ -0,0 +1,13 @@
# frozen_string_literal: true
# https://docs.chef.io/inspec/profiles/#including-all-controls-from-a-profile
# Could use `include_controls` in this scenario
# include_controls 'share'
# https://docs.chef.io/inspec/profiles/#selectively-including-controls-from-a-profile
# However, using `require_controls` for more clarity
require_controls 'share' do
control 'Postgres command'
control 'Postgres configuration'
# control 'Postgres service'
end