22
33require 'spec_helper_acceptance'
44
5- def on_supported_os
6- family = fact ( 'os.family' )
7- major = fact ( 'os.release.major' )
8- family == 'Debian' and ( major >= '22.04' or ( major >= '11' and major <= '20' ) )
9- end
10-
11- prepare = <<-EOS
12- # package {'diffutils':
13- # ensure => installed
14- # }
15- # file_line{'enable show_diff':
16- # path => '/etc/puppetlabs/puppet/puppet.conf',
17- # line => 'show_diff = true'
18- # }
19- EOS
20-
215pre = <<-EOS
226 if $facts['os']['family'] == 'RedHat' {
237 $java_package = 'java-17-openjdk'
248 $java_home = '/usr/lib/jvm/jre-17-openjdk'
259 $postgresql_version = '13'
2610 $pgsql_package_name = 'postgresql-server'
2711 $pgsql_data_dir = '/var/lib/pgsql'
12+
2813 $manage_dnf_module = $facts['os']['release']['major'] ? {
29- '8' => true,
30- default => false # RHEL-9 has pgsql 13 as a default
14+ '8' => true,
15+ default => false, # RHEL-9 has pgsql 13 as a default
3116 }
17+
3218 $autoremove_command = 'dnf --exclude="systemd*" autoremove -y'
33- }
34- elsif $facts['os']['family'] == 'Debian' {
19+ } elsif $facts['os']['family'] == 'Debian' {
3520 $postgresql_version = $facts['os']['release']['major'] ? {
3621 '11' => '13',
37- default => '14'
22+ default => '14',
3823 }
24+
3925 $java_package = 'openjdk-17-jre'
4026 $java_home = '/usr/lib/jvm/java-17-openjdk-amd64'
4127 $pgsql_package_name = "postgresql-${postgresql_version}"
4228 $pgsql_data_dir = "/var/lib/postgresql/${postgresql_version}/main/"
4329 $manage_dnf_module = false
4430 $autoremove_command = 'apt autoremove -y'
4531 }
32+
4633 $jira_install_dir = '/opt/jira/'
4734 $postgres_service = 'postgresql'
4835 $jira_service = 'jira'
@@ -57,9 +44,10 @@ class { 'postgresql::globals':
5744 manage_dnf_module => $manage_dnf_module,
5845 version => $postgresql_version,
5946 }
47+
6048 class { 'postgresql::server':
6149 service_status => 'systemctl status postgresql > /dev/null',
62- needs_initdb => true
50+ needs_initdb => true,
6351 }
6452
6553 postgresql::server::db { 'jira':
@@ -76,9 +64,10 @@ class { 'jira':
7664 javahome => $java_home,
7765 script_check_java_manage => false,
7866 connection_settings => 'tcpKeepAlive=true',
79- require => Postgresql::Server::Db['jira']
67+ require => Postgresql::Server::Db['jira'],
8068 }
8169EOS
70+
8271pp = pre + pp
8372
8473pp_upgrade = <<-EOS
@@ -87,50 +76,58 @@ class { 'jira':
8776 java_package => $java_package,
8877 javahome => $java_home,
8978 connection_settings => 'tcpKeepAlive=true',
90- script_check_java_manage => false
79+ script_check_java_manage => false,
9180 }
9281EOS
82+
9383pp_upgrade = pre + pp_upgrade
9484
9585pp_remove = <<-EOS
96- package {$java_package:
97- ensure => purged
86+ package { $java_package:
87+ ensure => purged,
9888 }
99- exec {'clear JIRA home':
100- command => 'rm -Rf ~jira/*',
89+
90+ exec { 'clear JIRA home':
91+ command => 'rm -Rf ~jira/*',
10192 provider => shell,
10293 }
103- package {$pgsql_package_name:
104- ensure => purged
94+
95+ package { $pgsql_package_name:
96+ ensure => purged,
10597 }
98+
10699 if $manage_dnf_module {
107- exec {" dnf module reset postgresql" :
108- command => 'dnf module reset -y postgresql',
100+ exec { ' dnf module reset postgresql' :
101+ command => 'dnf module reset -y postgresql',
109102 provider => shell,
110103 }
111104 }
112- exec {"autoremove cleanup":
113- command => $autoremove_command,
105+
106+ exec { 'autoremove cleanup':
107+ command => $autoremove_command,
114108 provider => shell,
115109 }
116- exec {'cleanup pgsql and JIRA install dir':
117- command => "rm -Rf ${pgsql_data_dir}/* ${$jira_install_dir}/atlassian-jira-software*",
110+
111+ exec { 'cleanup pgsql and JIRA install dir':
112+ command => "rm -Rf ${pgsql_data_dir}/* ${$jira_install_dir}/atlassian-jira-software*",
118113 provider => shell,
119- require => Exec['autoremove cleanup'],
114+ require => Exec['autoremove cleanup'],
120115 }
121- service{$postgres_service:
122- ensure => stopped
116+
117+ service { $postgres_service:
118+ ensure => stopped,
123119 }
124- service{$jira_service:
125- ensure => stopped
120+
121+ service { $jira_service:
122+ ensure => stopped,
126123 }
127124EOS
125+
128126pp_remove = pre + pp_remove
129127
130- context 'jira 10 only on RedHat >=8 and Debian-11' , if : on_supported_os do
128+ context 'jira 10' do
131129 describe 'jira 10 postgresql' do
132130 it 'installs jira 10 with defaults' do
133- apply_manifest ( prepare , catch_failures : true )
134131 # jira just takes *ages* to start up :-(
135132 wget_cmd = 'wget -q --tries=24 --retry-connrefused --read-timeout=10 localhost:8080'
136133 apply_manifest ( pp , catch_failures : true )
@@ -179,7 +176,7 @@ class { 'jira':
179176 apply_manifest ( pp_remove , catch_failures : true )
180177 end
181178
182- it { shell ( 'service jira stop' , acceptable_exit_codes : [ 0 , 1 ] ) }
179+ it { shell ( 'systemctl stop jira ' , acceptable_exit_codes : [ 0 , 1 ] ) }
183180 it { shell ( 'pkill -9 -f postgres' , acceptable_exit_codes : [ 0 , 1 ] ) }
184181 it { shell ( 'pkill -9 -f jira' , acceptable_exit_codes : [ 0 , 1 ] ) }
185182 end
0 commit comments