Skip to content

Commit c0148df

Browse files
authored
Merge pull request #112 from m0dular/SUP-3672-spec_tests
(SUP-3672) Remove legacy code and add spec tests
2 parents a049a45 + 74d3ff3 commit c0148df

11 files changed

+210
-385
lines changed

Diff for: .fixtures.yml

+1
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ fixtures:
99
ruby_task_helper: 'https://[email protected]/puppetlabs/puppetlabs-ruby_task_helper'
1010
stdlib: 'https://github.com/puppetlabs/puppetlabs-stdlib'
1111
facts: 'https://github.com/puppetlabs/puppetlabs-facts'
12+

Diff for: functions/version_based_databases.pp

-22
This file was deleted.

Diff for: manifests/init.pp

+11-31
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,28 @@
44
# Manage the inclusion of the pg_repack class
55
# @param disable_maintenance [Boolean] true or false (Default: false)
66
# Disable or enable maintenance mode
7-
# @param manage_postgresql_settings [Boolean] true or false (Default: true)
8-
# Manage PostgreSQL settings
9-
# @param manage_table_settings [Boolean] true or false (Default: false)
10-
# Manage table settings
117
# @param install_dir [String] Directory to install module into (Default: "/opt/puppetlabs/pe_databases")
128
# @param scripts_dir [String] Directory to install scripts into (Default: "${install_dir}/scripts")
139
# @param facts_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'facts' tables
1410
# @param catalogs_tables_repack_timer [String]The Systemd timer for the pg_repack job affecting the 'catalog' tables
1511
# @param other_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'other' tables
16-
# @param reports_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'reports' tables
17-
# @param resource_events_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'resource_events' tables
1812
class pe_databases (
1913
Boolean $manage_database_maintenance = true,
2014
Boolean $disable_maintenance = false,
21-
Boolean $manage_postgresql_settings = true,
22-
Boolean $manage_table_settings = false,
15+
Optional[Boolean] $manage_postgresql_settings = undef,
16+
Optional[Boolean] $manage_table_settings = undef,
2317
String[1] $install_dir = '/opt/puppetlabs/pe_databases',
2418
String[1] $scripts_dir = "${install_dir}/scripts",
2519
String[1] $facts_tables_repack_timer = 'Tue,Sat *-*-* 04:30:00',
2620
String[1] $catalogs_tables_repack_timer = 'Sun,Thu *-*-* 04:30:00',
2721
String[1] $other_tables_repack_timer = '*-*-20 05:30:00',
28-
String[1] $reports_tables_repack_timer = '*-*-10 05:30:00',
29-
String[1] $resource_events_tables_repack_timer = '*-*-15 05:30:00',
22+
Optional[String] $reports_tables_repack_timer = undef,
23+
Optional[String] $resource_events_tables_repack_timer = undef,
3024
) {
31-
$psql_version = $facts['pe_postgresql_info']['installed_server_version'] ? {
32-
undef => undef,
33-
default => String($facts['pe_postgresql_info']['installed_server_version'])
34-
}
25+
puppet_enterprise::deprecated_parameter{'pe_databases::manage_postgresql_settings': }
26+
puppet_enterprise::deprecated_parameter{'pe_databases::manage_table_settings': }
27+
puppet_enterprise::deprecated_parameter{'pe_databases::reports_tables_repack_timer': }
28+
puppet_enterprise::deprecated_parameter{'pe_databases::resource_events_tables_repack_timer': }
3529

3630
file { [$install_dir, $scripts_dir]:
3731
ensure => directory,
@@ -45,23 +39,9 @@
4539
}
4640

4741
if $facts.dig('pe_databases', 'have_systemd') {
48-
if versioncmp('2019.0.2', $facts['pe_server_version']) <= 0 {
49-
if $manage_database_maintenance {
50-
class { 'pe_databases::pg_repack':
51-
disable_maintenance => $disable_maintenance,
52-
}
53-
if $manage_table_settings {
54-
# This is to provide for situations, like PE XL,
55-
# where the pe-puppetdb database does not exist on the PostgreSQL system being tuned.
56-
# In PE XL, the Primary and Replica run PostgreSQL for all databases *except* for pe-puppetdb.
57-
include pe_databases::postgresql_settings::table_settings
58-
}
59-
}
60-
}
61-
else {
62-
notify { 'pe_databases_version_warn':
63-
message => 'This module only supports PE 2019.0.2 and later',
64-
loglevel => warning,
42+
if $manage_database_maintenance {
43+
class { 'pe_databases::pg_repack':
44+
disable_maintenance => $disable_maintenance,
6545
}
6646
}
6747
}

Diff for: manifests/pg_repack.pp

+18-44
Original file line numberDiff line numberDiff line change
@@ -9,71 +9,45 @@
99
# @param facts_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'facts' tables
1010
# @param catalogs_tables_repack_timer [String]The Systemd timer for the pg_repack job affecting the 'catalog' tables
1111
# @param other_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'other' tables
12-
# @param reports_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'reports' tables
13-
# @param resource_events_tables_repack_timer [String] The Systemd timer for the pg_repack job affecting the 'resource_events' tables
1412
class pe_databases::pg_repack (
15-
Boolean $disable_maintenance = false,
16-
Integer $jobs = $facts['processors']['count'] / 4,
17-
String[1] $facts_tables_repack_timer = $pe_databases::facts_tables_repack_timer,
18-
String[1] $catalogs_tables_repack_timer = $pe_databases::catalogs_tables_repack_timer,
19-
String[1] $other_tables_repack_timer = $pe_databases::other_tables_repack_timer,
20-
String[1] $reports_tables_repack_timer = $pe_databases::reports_tables_repack_timer,
21-
String[1] $resource_events_tables_repack_timer = $pe_databases::resource_events_tables_repack_timer,
13+
Boolean $disable_maintenance = false,
14+
Integer $jobs = $facts['processors']['count'] / 4,
15+
String[1] $facts_tables_repack_timer = $pe_databases::facts_tables_repack_timer,
16+
String[1] $catalogs_tables_repack_timer = $pe_databases::catalogs_tables_repack_timer,
17+
String[1] $other_tables_repack_timer = $pe_databases::other_tables_repack_timer,
18+
Optional[String] $reports_tables_repack_timer = undef,
19+
Optional[String] $resource_events_tables_repack_timer = undef,
2220
) {
23-
# PE 2019.1 starting shipping versioned pe-postgres packages where all paths are versioned.
24-
# So, prior to 2019.1 use a non-versioned path, and after use a versioned path.
25-
# TODO: Use $pe_databases::psql_version after identifying why it is cast to ${psql_version}00000 in spec tests.
21+
puppet_enterprise::deprecated_parameter{'pe_databases::pg_repack::reports_tables_repack_timer': }
22+
puppet_enterprise::deprecated_parameter{'pe_databases::pg_repack::resource_events_tables_repack_timer': }
23+
2624
$postgresql_version = $facts['pe_postgresql_info']['installed_server_version']
27-
$repack_executable = versioncmp('2019.1.0', $facts['pe_server_version']) ? {
28-
1 => '/opt/puppetlabs/server/apps/postgresql/bin/pg_repack',
29-
default => "/opt/puppetlabs/server/apps/postgresql/${postgresql_version}/bin/pg_repack"
30-
}
25+
$repack_executable = "/opt/puppetlabs/server/apps/postgresql/${postgresql_version}/bin/pg_repack"
3126

32-
$repack = "${repack_executable} -d pe-puppetdb"
33-
$repack_jobs = "--jobs ${jobs}"
27+
$repack_cmd = "${repack_executable} -d pe-puppetdb --jobs ${jobs}"
3428

35-
$facts_tables = '-t factsets -t fact_paths'
36-
$catalogs_tables = versioncmp($facts['pe_server_version'], '2019.8.1') ? {
37-
1 => '-t catalogs -t catalog_resources -t catalog_inputs -t edges -t certnames',
38-
default => '-t catalogs -t catalog_resources -t edges -t certnames' }
39-
$other_tables = '-t producers -t resource_params -t resource_params_cache'
40-
$reports_table = '-t reports'
41-
$resource_events_table = '-t resource_events'
29+
$fact_tables = '-t factsets -t fact_paths'
30+
$catalog_tables = '-t catalogs -t catalog_resources -t catalog_inputs -t edges -t certnames'
31+
$other_tables = '-t producers -t resource_params -t resource_params_cache'
4232

4333
pe_databases::collect { 'facts':
4434
disable_maintenance => $disable_maintenance,
45-
command => "${repack} ${repack_jobs} ${facts_tables}",
35+
command => "${repack_cmd} ${fact_tables}",
4636
on_cal => $facts_tables_repack_timer,
4737
}
4838

4939
pe_databases::collect { 'catalogs':
5040
disable_maintenance => $disable_maintenance,
51-
command => "${repack} ${repack_jobs} ${catalogs_tables}",
41+
command => "${repack_cmd} ${catalog_tables}",
5242
on_cal => $catalogs_tables_repack_timer,
5343
}
5444

5545
pe_databases::collect { 'other':
5646
disable_maintenance => $disable_maintenance,
57-
command => "${repack} ${repack_jobs} ${other_tables}",
47+
command => "${repack_cmd} ${other_tables}",
5848
on_cal => $other_tables_repack_timer,
5949
}
6050

61-
if versioncmp($facts['pe_server_version'], '2019.7.0') < 0 {
62-
pe_databases::collect { 'reports':
63-
disable_maintenance => $disable_maintenance,
64-
command => "${repack} ${repack_jobs} ${reports_table}",
65-
on_cal => $reports_tables_repack_timer,
66-
}
67-
}
68-
69-
if versioncmp($facts['pe_server_version'], '2019.3.0') < 0 {
70-
pe_databases::collect { 'resource_events':
71-
disable_maintenance => $disable_maintenance,
72-
command => "${repack} ${repack_jobs} ${resource_events_table}",
73-
on_cal => $resource_events_tables_repack_timer,
74-
}
75-
}
76-
7751
# Ensure legacy vaccum and pg_repack crons are purged.
7852
# If someone upgrades from an ancient v0.x version of the pe_databases module to 2.0 or newer,
7953
# the old cron jobs running vaccuum full will not be cleaned up. This can result in a deadlock

Diff for: manifests/postgresql_settings.pp

-126
This file was deleted.

Diff for: manifests/postgresql_settings/table_settings.pp

-54
This file was deleted.

Diff for: manifests/set_puppetdb_table_autovacuum_cost_delay_zero.pp

-17
This file was deleted.

0 commit comments

Comments
 (0)