Showing with 30 additions and 20 deletions.
  1. +8 −0 CHANGELOG.md
  2. +18 −18 lib/facter/pe_status_check.rb
  3. +3 −1 lib/facter/pe_status_check_role.rb
  4. +1 −1 metadata.json
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).

## [v2.0.2](https://github.com/puppetlabs/puppetlabs-pe_status_check/tree/v2.0.2) (2022-06-17)

[Full Changelog](https://github.com/puppetlabs/puppetlabs-pe_status_check/compare/v2.0.1...v2.0.2)

### Fixed

- SUP-3398 legacy primary support [\#135](https://github.com/puppetlabs/puppetlabs-pe_status_check/pull/135) ([MartyEwings](https://github.com/MartyEwings))

## [v2.0.1](https://github.com/puppetlabs/puppetlabs-pe_status_check/tree/v2.0.1) (2022-06-14)

[Full Changelog](https://github.com/puppetlabs/puppetlabs-pe_status_check/compare/v2.0.0...v2.0.1)
Expand Down
36 changes: 18 additions & 18 deletions lib/facter/pe_status_check.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

chunk(:S0004) do
# Are All Services running
next unless ['primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))

response = PEStatusCheck.http_get('/status/v1/services', 8140)
if response
Expand All @@ -53,7 +53,7 @@
end

chunk(:S0006) do
next unless ['primary'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary'].include?(Facter.value('pe_status_check_role'))

# Is puppet_metrics_collector running
{ S0006: PEStatusCheck.service_running_enabled('puppet_puppetserver-metrics.timer') }
Expand All @@ -78,21 +78,21 @@
end

chunk(:S0008) do
next unless ['primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))

# check codedir data mount has at least 20% free
{ S0008: PEStatusCheck.filesystem_free(Puppet.settings['codedir']) >= 20 }
end

chunk(:S0009) do
next unless ['primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))

# Is the Pe-puppetsever Service Running and Enabled
{ S0009: PEStatusCheck.service_running_enabled('pe-puppetserver') }
end

chunk(:S0010) do
next unless ['primary', 'replica', 'pe_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler'].include?(Facter.value('pe_status_check_role'))

# Is the pe-puppetdb Service Running and Enabled
{ S0010: PEStatusCheck.service_running_enabled('pe-puppetdb') }
Expand Down Expand Up @@ -146,7 +146,7 @@

chunk(:S0016) do
# Puppetserver
next unless ['primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))

time_now = Time.now - Puppet.settings['runinterval']
log_path = File.dirname(Puppet.settings['logdir'].to_s) + '/puppetserver/'
Expand All @@ -162,7 +162,7 @@

chunk(:S0017) do
# PuppetDB
next unless ['primary', 'pe_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'pe_compiler'].include?(Facter.value('pe_status_check_role'))

time_now = Time.now - Puppet.settings['runinterval']
log_path = File.dirname(Puppet.settings['logdir'].to_s) + '/puppetdb/'
Expand All @@ -178,7 +178,7 @@

chunk(:S0018) do
# Orchestrator
next unless ['primary'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary'].include?(Facter.value('pe_status_check_role'))

time_now = Time.now - Puppet.settings['runinterval']
log_path = File.dirname(Puppet.settings['logdir'].to_s) + '/orchestration-services/'
Expand All @@ -193,7 +193,7 @@
end

chunk(:S0019) do
next unless ['primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))

response = PEStatusCheck.http_get('/status/v1/services/pe-jruby-metrics?level=debug', 8140)
if response
Expand Down Expand Up @@ -249,7 +249,7 @@
end

chunk(:S0024) do
next unless ['primary', 'replica', 'pe_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler'].include?(Facter.value('pe_status_check_role'))

# Check discard directory. Newest file should not be less than a run interval old. Recent files indicate an issue that causes PuppetDB to reject incoming data.
newestfile = Dir.glob('/opt/puppetlabs/server/data/puppetdb/stockpile/discard/*.*').max_by { |f| File.mtime(f) }
Expand Down Expand Up @@ -284,7 +284,7 @@

chunk(:S0031) do
# check for Old pe_repo versions have been cleaned up
next unless ['primary'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary'].include?(Facter.value('pe_status_check_role'))

pe_version = Facter.value(:pe_server_version)
packages_dir = '/opt/puppetlabs/server/data/packages/public'
Expand All @@ -309,7 +309,7 @@
end

chunk(:S0033) do
next unless ['primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))

hiera_config_path = Puppet.settings['hiera_config']
next unless File.exist?(hiera_config_path)
Expand All @@ -319,7 +319,7 @@
end

chunk(:S0036) do
next unless ['primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))

str = IO.read('/etc/puppetlabs/puppetserver/conf.d/pe-puppet-server.conf')
max_queued_requests = str.match(%r{max-queued-requests: (\d+)})
Expand All @@ -336,7 +336,7 @@
end

chunk(:S0034) do
next unless ['primary'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary'].include?(Facter.value('pe_status_check_role'))

# PE has not been upgraded / updated in 1 year
# It was decided not to include infra components as this was deemed unecessary as they should align with the primary.
Expand All @@ -353,13 +353,13 @@

chunk(:S0035) do
# restrict to primary/replica/compiler
next unless ['primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
# return false if any Warnings appear in the 'puppet module list...'
{ S0035: !`/opt/puppetlabs/bin/puppet module list --tree 2>&1`.encode('ASCII', 'UTF-8', undef: :replace).match?(%r{Warning:\s+}) }
end

chunk(:S0036) do
next unless ['primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
str = IO.read('/etc/puppetlabs/puppetserver/conf.d/pe-puppet-server.conf')
max_queued_requests = str.match(%r{max-queued-requests: (\d+)})
if max_queued_requests.nil?
Expand All @@ -370,7 +370,7 @@
end

chunk(:S0038) do
next unless ['primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
response = PEStatusCheck.http_get('/puppet/v3/environments', 8140)
if response
envs_count = response.dig('environments').length
Expand All @@ -382,7 +382,7 @@

chunk(:S0039) do
# PuppetServer
next unless ['primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))
next unless ['primary', 'legacy_primary', 'replica', 'pe_compiler', 'legacy_compiler'].include?(Facter.value('pe_status_check_role'))

logfile = File.dirname(Puppet.settings['logdir'].to_s) + '/puppetserver/puppetserver-access.log'
apache_regex = %r{^(\S+) \S+ (\S+) (?<time>\[([^\]]+)\]) "([A-Z]+) ([^ "]+)? HTTP/[0-9.]+" (?<status>[0-9]{3})}
Expand Down
4 changes: 3 additions & 1 deletion lib/facter/pe_status_check_role.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@
node_profiles |= [short_profile]
end

if node_profiles.include?('certificate_authority')
if node_profiles.include?('certificate_authority') && node_profiles.include?('database')
then 'primary'
elsif node_profiles.include?('certificate_authority')
then 'legacy_primary'
elsif node_profiles.include?('primary_master_replica')
then 'replica'
# Use array subtraction to determine if more than one role is present
Expand Down
2 changes: 1 addition & 1 deletion metadata.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "puppetlabs-pe_status_check",
"version": "2.0.1",
"version": "2.0.2",
"author": "Marty Ewings",
"summary": "A Puppet Enterprise Module to Promote Preventative Maintenance and Self Service",
"license": "Apache-2.0",
Expand Down