Skip to content

Commit bcc501b

Browse files
authored
Merge pull request voxpupuli#375 from oranenj/db-defaults
Configure dbconfig.xml parameters explicitly to stop JIRA's healthcheck from complaining
2 parents e8f337e + 76c4dd4 commit bcc501b

3 files changed

Lines changed: 111 additions & 54 deletions

File tree

manifests/config.pp

Lines changed: 49 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,16 @@
4242
# can't use pick_default: https://tickets.puppetlabs.com/browse/MODULES-11018
4343
$dbschema = if $jira::dbschema { $jira::dbschema } else { $dbschema_default }
4444

45-
# Allow some backwards compatibility;
46-
if $jira::poolsize {
47-
deprecation('jira::poolsize', 'jira::poolsize is deprecated and simply sets max-pool-size. Please use jira::pool_max_size instead and remove this configuration')
48-
$pool_max_size_real = pick($jira::pool_max_size, $jira::poolsize)
49-
} else {
50-
$pool_max_size_real = $jira::pool_max_size
51-
}
52-
5345
if $jira::tomcat_redirect_https_port {
5446
unless $jira::tomcat_native_ssl {
5547
fail('You need to set jira::tomcat_native_ssl to true when using jira::tomcat_redirect_https_port')
5648
}
5749
}
5850

5951
if $jira::dbport {
60-
$dbport_real = $jira::dbport
52+
$dbport = $jira::dbport
6153
} else {
62-
$dbport_real = $jira::db ? {
54+
$dbport = $jira::db ? {
6355
'postgresql' => '5432',
6456
'mysql' => '3306',
6557
'oracle' => '1521',
@@ -69,9 +61,9 @@
6961
}
7062

7163
if $jira::dbdriver {
72-
$dbdriver_real = $jira::dbdriver
64+
$dbdriver = $jira::dbdriver
7365
} else {
74-
$dbdriver_real = $jira::db ? {
66+
$dbdriver = $jira::db ? {
7567
'postgresql' => 'org.postgresql.Driver',
7668
'mysql' => 'com.mysql.jdbc.Driver',
7769
'oracle' => 'oracle.jdbc.OracleDriver',
@@ -81,9 +73,9 @@
8173
}
8274

8375
if $jira::dbtype {
84-
$dbtype_real = $jira::dbtype
76+
$dbtype = $jira::dbtype
8577
} else {
86-
$dbtype_real = $jira::db ? {
78+
$dbtype = $jira::db ? {
8779
'postgresql' => 'postgres72',
8880
'mysql' => 'mysql',
8981
'oracle' => 'oracle10g',
@@ -93,20 +85,57 @@
9385
}
9486

9587
if $jira::dburl {
96-
$dburl_real = $jira::dburl
88+
$dburl = $jira::dburl
9789
}
9890
else {
9991
# SIDs use :, service names use /
10092
$oracle_separator = bool2str($jira::oracle_use_sid, ':', '/')
101-
$dburl_real = $jira::db ? {
102-
'postgresql' => "jdbc:${jira::db}://${jira::dbserver}:${dbport_real}/${jira::dbname}",
103-
'mysql' => "jdbc:${jira::db}://${jira::dbserver}:${dbport_real}/${jira::dbname}?useUnicode=true&characterEncoding=UTF8&sessionVariables=default_storage_engine=InnoDB",
104-
'oracle' => "jdbc:${jira::db}:thin:@${jira::dbserver}:${dbport_real}${oracle_separator}${jira::dbname}",
105-
'sqlserver' => "jdbc:jtds:${jira::db}://${jira::dbserver}:${dbport_real}/${jira::dbname}",
93+
$dburl = $jira::db ? {
94+
'postgresql' => "jdbc:${jira::db}://${jira::dbserver}:${dbport}/${jira::dbname}",
95+
'mysql' => "jdbc:${jira::db}://${jira::dbserver}:${dbport}/${jira::dbname}?useUnicode=true&characterEncoding=UTF8&sessionVariables=default_storage_engine=InnoDB",
96+
'oracle' => "jdbc:${jira::db}:thin:@${jira::dbserver}:${dbport}${oracle_separator}${jira::dbname}",
97+
'sqlserver' => "jdbc:jtds:${jira::db}://${jira::dbserver}:${dbport}/${jira::dbname}",
10698
'h2' => "jdbc:h2:file:/${jira::homedir}/database/${jira::dbname}",
10799
}
108100
}
109101

102+
# Allow some backwards compatibility;
103+
if $jira::poolsize {
104+
deprecation('jira::poolsize', 'jira::poolsize is deprecated and simply sets max-pool-size. Please use jira::pool_max_size instead and remove this configuration')
105+
}
106+
107+
$pool_min_size = pick($jira::pool_min_size, 20)
108+
$pool_max_size = pick($jira::pool_max_size, $jira::poolsize, 20)
109+
$pool_max_wait = pick($jira::pool_max_wait, 30000)
110+
$pool_max_idle = pick($jira::pool_max_idle, 20)
111+
$pool_remove_abandoned = pick($jira::pool_remove_abandoned, true)
112+
$pool_remove_abandoned_timeout = pick($jira::pool_remove_abandoned_timeout, 300)
113+
$min_evictable_idle_time = pick($jira::min_evictable_idle_time, 60000)
114+
$time_between_eviction_runs = pick($jira::time_between_eviction_runs, 300000)
115+
$pool_test_while_idle = pick($jira::pool_test_while_idle, true)
116+
$pool_test_on_borrow = pick($jira::pool_test_on_borrow, false)
117+
118+
# This is just for consistency
119+
$connection_settings = $jira::connection_settings
120+
121+
if $jira::db == 'mysql' {
122+
$validation_query_timeout = pick($jira::validation_query_timeout, 3)
123+
} else {
124+
$validation_query_timeout = $jira::validation_query_timeout
125+
}
126+
127+
if $jira::validation_query {
128+
$validation_query = $jira::validation_query
129+
} else {
130+
$validation_query = $jira::db ? {
131+
'mysql' => 'select 1',
132+
'sqlserver' => 'select 1',
133+
'oracle' => 'select 1 from dual',
134+
'postgresql' => 'select version();',
135+
'h2' => undef,
136+
}
137+
}
138+
110139
$tomcat_protocol_ssl_real = pick($jira::tomcat_protocol_ssl, 'org.apache.coyote.http11.Http11NioProtocol')
111140

112141
$jira_properties = {

spec/classes/jira_config_spec.rb

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,17 @@
2828
is_expected.to contain_file('/home/jira/dbconfig.xml').
2929
with_content(%r{jdbc:postgresql://localhost:5432/jira}).
3030
with_content(%r{<schema-name>public</schema-name>}).
31-
without_content(%r{<pool})
31+
with_content(%r{<pool-max-size>20}).
32+
with_content(%r{<pool-min-size>20}).
33+
with_content(%r{<pool-max-wait>30000}).
34+
with_content(%r{<pool-max-idle>20}).
35+
with_content(%r{<pool-remove-abandoned>true}).
36+
with_content(%r{<pool-remove-abandoned-timeout>300}).
37+
with_content(%r{<min-evictable-idle-time-millis>60000}).
38+
with_content(%r{<time-between-eviction-runs-millis>300000}).
39+
with_content(%r{<pool-test-while-idle>true}).
40+
with_content(%r{<pool-test-on-borrow>false}).
41+
with_content(%r{<validation-query>select version\(\);})
3242
end
3343
it { is_expected.not_to contain_file('/home/jira/cluster.properties') }
3444
it { is_expected.not_to contain_file('/opt/jira/atlassian-jira-software-8.13.5-standalone/bin/check-java.sh') }
@@ -46,15 +56,33 @@
4656
it { is_expected.to contain_package('java-11-openjdk-headless') }
4757
end
4858

59+
context 'default params with java install and mysql' do
60+
let(:params) do
61+
{
62+
db: 'mysql',
63+
javahome: '/usr/lib/jvm/jre-11-openjdk',
64+
java_package: 'java-11-openjdk-headless',
65+
}
66+
end
67+
68+
it { is_expected.to compile.with_all_deps }
69+
it { is_expected.to contain_package('java-11-openjdk-headless') }
70+
it do
71+
is_expected.to contain_file('/home/jira/dbconfig.xml').
72+
with_content(%r{<validation-query>select 1</validation-query>}).
73+
with_content(%r{<validation-query-timeout>3</validation-query-timeout>})
74+
end
75+
end
76+
4977
context 'database settings' do
5078
let(:params) do
5179
{
5280
version: '8.13.5',
5381
javahome: '/opt/java',
5482
connection_settings: 'TEST-SETTING;',
55-
pool_max_size: 20,
83+
pool_max_size: 200,
5684
pool_min_size: 10,
57-
validation_query: 'SELECT version();',
85+
validation_query: 'SELECT myfunction();',
5886
}
5987
end
6088

@@ -64,9 +92,9 @@
6492
it do
6593
is_expected.to contain_file('/home/jira/dbconfig.xml').
6694
with_content(%r{<connection-settings>TEST-SETTING;</connection-settings>}).
67-
with_content(%r{<pool-max-size>20</pool-max-size>}).
95+
with_content(%r{<pool-max-size>200</pool-max-size>}).
6896
with_content(%r{<pool-min-size>10</pool-min-size>}).
69-
with_content(%r{<validation-query>SELECT version\(\);</validation-query>})
97+
with_content(%r{<validation-query>SELECT myfunction\(\);</validation-query>})
7098
end
7199
end
72100

templates/dbconfig.xml.epp

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,54 +4,54 @@
44
<jira-database-config>
55
<name>defaultDS</name>
66
<delegator-name>default</delegator-name>
7-
<database-type><%= $jira::config::dbtype_real %></database-type>
7+
<database-type><%= $jira::config::dbtype %></database-type>
88
<% if $jira::config::dbschema != undef { -%>
99
<schema-name><%= $jira::config::dbschema %></schema-name>
1010
<% } -%>
1111
<jdbc-datasource>
12-
<url><%= $jira::config::dburl_real %></url>
13-
<driver-class><%= $jira::config::dbdriver_real %></driver-class>
12+
<url><%= $jira::config::dburl %></url>
13+
<driver-class><%= $jira::config::dbdriver %></driver-class>
1414
<username><%= $jira::dbuser %></username>
1515
<password><%= $jira::dbpassword %></password>
1616
<%# For most of these, Jira defaults are better... -%>
17-
<% if $jira::pool_min_size != undef { -%>
18-
<pool-min-size><%= $jira::pool_min_size %></pool-min-size>
17+
<% if $jira::config::pool_min_size != undef { -%>
18+
<pool-min-size><%= $jira::config::pool_min_size %></pool-min-size>
1919
<% } -%>
20-
<% if $jira::config::pool_max_size_real != undef { -%>
21-
<pool-max-size><%= $jira::config::pool_max_size_real %></pool-max-size>
20+
<% if $jira::config::pool_max_size != undef { -%>
21+
<pool-max-size><%= $jira::config::pool_max_size %></pool-max-size>
2222
<% } -%>
23-
<% if $jira::pool_max_idle != undef { -%>
24-
<pool-max-idle><%= $jira::pool_max_idle %></pool-max-idle>
23+
<% if $jira::config::pool_max_idle != undef { -%>
24+
<pool-max-idle><%= $jira::config::pool_max_idle %></pool-max-idle>
2525
<% } -%>
26-
<% if $jira::pool_max_wait != undef { -%>
27-
<pool-max-wait><%= $jira::pool_max_wait %></pool-max-wait>
26+
<% if $jira::config::pool_max_wait != undef { -%>
27+
<pool-max-wait><%= $jira::config::pool_max_wait %></pool-max-wait>
2828
<% } -%>
29-
<% if $jira::min_evictable_idle_time != undef { -%>
30-
<min-evictable-idle-time-millis><%= $jira::min_evictable_idle_time %></min-evictable-idle-time-millis>
29+
<% if $jira::config::min_evictable_idle_time != undef { -%>
30+
<min-evictable-idle-time-millis><%= $jira::config::min_evictable_idle_time %></min-evictable-idle-time-millis>
3131
<% } -%>
32-
<% if $jira::pool_remove_abandoned != undef { -%>
33-
<pool-remove-abandoned><%= $jira::pool_remove_abandoned %></pool-remove-abandoned>
32+
<% if $jira::config::pool_remove_abandoned != undef { -%>
33+
<pool-remove-abandoned><%= $jira::config::pool_remove_abandoned %></pool-remove-abandoned>
3434
<% } -%>
35-
<% if $jira::pool_remove_abandoned_timeout != undef { -%>
36-
<pool-remove-abandoned-timeout><%= $jira::pool_remove_abandoned_timeout %></pool-remove-abandoned-timeout>
35+
<% if $jira::config::pool_remove_abandoned_timeout != undef { -%>
36+
<pool-remove-abandoned-timeout><%= $jira::config::pool_remove_abandoned_timeout %></pool-remove-abandoned-timeout>
3737
<% } -%>
38-
<% if $jira::pool_test_while_idle != undef { -%>
39-
<pool-test-while-idle><%= $jira::pool_test_while_idle %></pool-test-while-idle>
38+
<% if $jira::config::pool_test_while_idle != undef { -%>
39+
<pool-test-while-idle><%= $jira::config::pool_test_while_idle %></pool-test-while-idle>
4040
<% } -%>
41-
<% if $jira::pool_test_on_borrow != undef { -%>
42-
<pool-test-on-borrow><%= $jira::pool_test_on_borrow %></pool-test-on-borrow>
41+
<% if $jira::config::pool_test_on_borrow != undef { -%>
42+
<pool-test-on-borrow><%= $jira::config::pool_test_on_borrow %></pool-test-on-borrow>
4343
<% } -%>
44-
<% if $jira::validation_query != undef { -%>
45-
<validation-query><%= $jira::validation_query %></validation-query>
44+
<% if $jira::config::validation_query != undef { -%>
45+
<validation-query><%= $jira::config::validation_query %></validation-query>
4646
<% } -%>
47-
<% if $jira::validation_query_timeout != undef { -%>
48-
<validation-query-timeout><%= $jira::validation_query_timeout %></validation-query-timeout>
47+
<% if $jira::config::validation_query_timeout != undef { -%>
48+
<validation-query-timeout><%= $jira::config::validation_query_timeout %></validation-query-timeout>
4949
<% } -%>
50-
<% if $jira::time_between_eviction_runs != undef { -%>
51-
<time-between-eviction-runs-millis><%= $jira::time_between_eviction_runs %></time-between-eviction-runs-millis>
50+
<% if $jira::config::time_between_eviction_runs != undef { -%>
51+
<time-between-eviction-runs-millis><%= $jira::config::time_between_eviction_runs %></time-between-eviction-runs-millis>
5252
<% } -%>
53-
<% if $jira::connection_settings { -%>
54-
<connection-settings><%= $jira::connection_settings %></connection-settings>
53+
<% if $jira::config::connection_settings { -%>
54+
<connection-settings><%= $jira::config::connection_settings %></connection-settings>
5555
<% } -%>
5656
</jdbc-datasource>
5757
</jira-database-config>

0 commit comments

Comments
 (0)