From 90048136811d7b35d5ec7a200882c90f847eccfe Mon Sep 17 00:00:00 2001 From: vimesa Date: Mon, 4 Dec 2023 09:39:04 +0000 Subject: [PATCH 1/3] Add rsyslog_spec.rb --- spec/services/rsyslog_spec.rb | 92 +++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 spec/services/rsyslog_spec.rb diff --git a/spec/services/rsyslog_spec.rb b/spec/services/rsyslog_spec.rb new file mode 100644 index 0000000..791256d --- /dev/null +++ b/spec/services/rsyslog_spec.rb @@ -0,0 +1,92 @@ +# frozen_string_literal: true + +require 'spec_helper' +require 'json' +set :os, family: 'redhat', release: '9', arch: 'x86_64' + +packages = %w[ + rsyslog cookbook-rsyslog +] + +service = 'rsyslog' +config_directory = '/etc/rsyslog.d/' +files = %w[ + 01-server.conf 02-general.conf 20-redborder.conf 99-parse_rfc5424.conf +] +port = 514 + +describe "Checking packages for #{service}..." do + packages.each do |package| + describe package(package) do + before do + skip("#{package} is not installed, skipping...") unless package(package).installed? + end + + it 'is expected to be installed' do + expect(package(package).installed?).to be true + end + end + end +end + +service_status = command("systemctl is-enabled #{service}").stdout +service_status = service_status.strip + +if service_status == 'enabled' + describe "Checking #{service_status} service for #{service}..." do + describe service(service) do + it { should be_enabled } + it { should be_running } + end + + describe file(config_directory) do + it { should exist } + it { should be_directory } + end + + files.each do |file| + describe file("#{config_directory}/#{file}") do + it { should exist } + it { should be_file } + end + end + + describe port(port) do + it { should be_listening } + end + + describe 'Registered in consul' do + api_endpoint = 'http://localhost:8500/v1' + service_json = command("curl -s #{api_endpoint}/catalog/service/#{service} | jq -r '.[]'").stdout + health = command("curl -s #{api_endpoint}/health/service/#{service} | jq -r '.[].Checks[0].Status'").stdout + health = health.strip + registered = JSON.parse(service_json).key?('Address') && health == 'passing' ? true : false + it 'Should be registered and enabled' do + expect(registered).to be true + end + end + end +end + +if service_status == 'disabled' + describe "Checking #{service_status} service for #{service}..." do + describe service(service) do + it { should_not be_enabled } + it { should_not be_running } + end + + describe file(config_directory) do + it { should_not exist } + end + + files.each do |file| + describe file("#{config_directory}/#{file}") do + it { should_not exist } + end + end + + describe port(port) do + it { should_not be_listening } + end + end +end From ae7e5c6cef787278631cc4a6420c99554f297fc9 Mon Sep 17 00:00:00 2001 From: vimesa Date: Mon, 4 Dec 2023 10:27:06 +0000 Subject: [PATCH 2/3] Rubocop --- spec/services/rsyslog_spec.rb | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/spec/services/rsyslog_spec.rb b/spec/services/rsyslog_spec.rb index 791256d..3560378 100644 --- a/spec/services/rsyslog_spec.rb +++ b/spec/services/rsyslog_spec.rb @@ -10,8 +10,8 @@ service = 'rsyslog' config_directory = '/etc/rsyslog.d/' -files = %w[ - 01-server.conf 02-general.conf 20-redborder.conf 99-parse_rfc5424.conf +files = %w[ + 01-server.conf 02-general.conf 20-redborder.conf 99-parse_rfc5424.conf ] port = 514 @@ -39,15 +39,17 @@ it { should be_running } end - describe file(config_directory) do - it { should exist } - it { should be_directory } - end - - files.each do |file| - describe file("#{config_directory}/#{file}") do - it { should exist } - it { should be_file } + describe "Configuration files and directories" do + [config_directory, *files.map { |file| "#{config_directory}/#{file}" }].each do |file_path| + describe file(file_path) do + it { should exist } + + if File.directory?(file_path) + it { should be_directory } + else + it { should be_file } + end + end end end From 43f78a8ceced1714314356e59a185f50c3239d0e Mon Sep 17 00:00:00 2001 From: vimesa Date: Mon, 4 Dec 2023 10:31:15 +0000 Subject: [PATCH 3/3] Rubocop --- spec/services/rsyslog_spec.rb | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/spec/services/rsyslog_spec.rb b/spec/services/rsyslog_spec.rb index 3560378..c1431ca 100644 --- a/spec/services/rsyslog_spec.rb +++ b/spec/services/rsyslog_spec.rb @@ -39,16 +39,11 @@ it { should be_running } end - describe "Configuration files and directories" do + describe 'Configuration files and directories' do [config_directory, *files.map { |file| "#{config_directory}/#{file}" }].each do |file_path| describe file(file_path) do it { should exist } - - if File.directory?(file_path) - it { should be_directory } - else - it { should be_file } - end + it { should send(File.directory?(file_path) ? :be_directory : :be_file) } end end end