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
No known key found for this signature in database
GPG key ID: 6D8629439D2B7819
6 changed files with 73 additions and 8 deletions

View file

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

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