Skip to content

Commit 724c96c

Browse files
committed
Fix #254 Add Support for H2 Database (for testing)Also Fix #73 - Set appropriate defaults for dbtype and dbdriver based on db.
1 parent a40b36f commit 724c96c

8 files changed

Lines changed: 106 additions & 25 deletions

File tree

README.md

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,8 @@ is enabled, this parameter is *required*.
204204

205205
##### `$db`
206206

207-
Which database to use for JIRA, defaults to 'postgresql'. Can be 'postgresql',
208-
'mysql', 'oracle' or 'sqlserver'.
207+
Which database to use for JIRA, defaults to 'postgresql'. Can be:
208+
'postgresql', 'mysql', 'oracle', 'sqlserver', or 'h2'.
209209

210210
##### `$dbuser`
211211

@@ -226,20 +226,39 @@ SID.
226226

227227
##### `$dbport`
228228

229-
The port of the database, defaults to '5432'. MySQL runs on '3306'. Oracle runs on
230-
'1521'. SQL Server runs on '1433'.
229+
The port of the database, defaults to an appropriate port for the $db:
230+
231+
| $db | DEFAULT |
232+
|------|--------|
233+
| postgresql | 5432 |
234+
| mysql | 3306 |
235+
| sqlserver | 1443 |
236+
| h2 | N/A |
231237

232238
##### `$dbdriver`
233239

234-
The database driver to use, defaults to 'org.postgresql.Driver'. Can be
235-
'org.postgresql.Driver', 'com.mysql.jdbc.Driver', 'oracle.jdbc.OracleDriver' or
236-
'net.sourceforge.jtds.jdbc.Driver'.
240+
The database driver to use, defaults to an appropriate value for $db:
241+
242+
| $db | DEFAULT |
243+
|------|--------|
244+
| postgresql | org.postgresql.Driver |
245+
| mysql | com.mysql.jdbc.Driver |
246+
| sqlserver | net.sourceforge.jtds.jdbc.Driver |
247+
| h2 | org.h2.Driver |
248+
237249

238250
##### `$dbtype`
239251

240-
Database type, defaults to 'postgres72'. Can be 'postgres72', 'mysql', 'oracle10g',
241-
or 'mssql'. Atlassian only supports Oracle 11g, even so this value should be as
242-
documented here.
252+
Database type, defaults to an appropriate value for $db:
253+
254+
| $db | DEFAULT |
255+
|------|--------|
256+
| postgresql | postgresql72 |
257+
| mysql | mysql |
258+
| sqlserver | mssql |
259+
| h2 | h2 |
260+
261+
NOTE: Atlassian only supports Oracle 11g/12g, even so this value should be as documented here.
243262

244263
##### `$dbschema`
245264

@@ -389,7 +408,7 @@ Specify a proxy server, with port number if needed. ie: https://example.com:8080
389408
Only supported with `deploy_module => archive` (the default). Defaults to 'undef'.
390409

391410
##### `$proxy_type`
392-
411+
393412
Proxy server type (none|http|https|ftp)
394413
Only supported with `deploy_module => archive` (the default). Defaults to 'undef'.
395414

manifests/config.pp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
'mysql' => 'select 1',
2727
'oracle' => 'select 1 from dual',
2828
'sqlserver' => 'select 1',
29+
'h2' => 'select 1',
2930
}
3031
}
3132
if $jira::time_between_eviction_runs == undef {
@@ -34,6 +35,7 @@
3435
'mysql' => '300000',
3536
'oracle' => '300000',
3637
'sqlserver' => '300000',
38+
'h2' => '5000',
3739
}
3840
}
3941

manifests/init.pp

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@
5050
Boolean $datacenter = false,
5151
$shared_homedir = undef,
5252
# Database Settings
53-
Enum['postgresql','mysql','sqlserver','oracle'] $db = 'postgresql',
53+
Enum['postgresql','mysql','sqlserver','oracle','h2'] $db = 'postgresql',
5454
$dbuser = 'jiraadm',
5555
$dbpassword = 'mypassword',
5656
$dbserver = 'localhost',
5757
$dbname = 'jira',
58-
$dbport = '5432',
59-
$dbdriver = 'org.postgresql.Driver',
60-
$dbtype = 'postgres72',
61-
$dburl = undef,
58+
Optional[Variant[Integer,String]] $dbport = undef,
59+
Optional[String] $dbdriver = undef,
60+
Optional[String] $dbtype = undef,
61+
Optional[String] $dburl = undef,
6262
$poolsize = '20',
6363
$dbschema = 'public',
6464
# MySQL Connector Settings
@@ -188,6 +188,42 @@
188188
$webappdir = $extractdir
189189
}
190190

191+
if $dbport {
192+
$dbport_real = $dbport
193+
} else {
194+
$dbport_real = $db ? {
195+
'postgresql' => '5432',
196+
'mysql' => '3306',
197+
'oracle' => '1521',
198+
'sqlserver' => '1433',
199+
'h2' => '',
200+
}
201+
}
202+
203+
if $dbdriver {
204+
$dbdriver_real = $dbdriver
205+
} else {
206+
$dbdriver_real = $db ? {
207+
'postgresql' => 'org.postgresql.Driver',
208+
'mysql' => 'com.mysql.jdbc.Driver',
209+
'oracle' => 'oracle.jdbc.OracleDriver',
210+
'sqlserver' => 'net.sourceforge.jtds.jdbc.Driver',
211+
'h2' => 'org.h2.Driver',
212+
}
213+
}
214+
215+
if $dbtype {
216+
$dbtype_real = $dbtype
217+
} else {
218+
$dbtype_real = $db ? {
219+
'postgresql' => 'postgres72',
220+
'mysql' => 'mysql',
221+
'oracle' => 'oracle10g',
222+
'sqlserver' => 'mssql',
223+
'h2' => 'h2',
224+
}
225+
}
226+
191227
if $dburl {
192228
$dburl_real = $dburl
193229
}
@@ -196,7 +232,8 @@
196232
'postgresql' => "jdbc:${db}://${dbserver}:${dbport}/${dbname}",
197233
'mysql' => "jdbc:${db}://${dbserver}:${dbport}/${dbname}?useUnicode=true&characterEncoding=UTF8&sessionVariables=default_storage_engine=InnoDB",
198234
'oracle' => "jdbc:${db}:thin:@${dbserver}:${dbport}:${dbname}",
199-
'sqlserver' => "jdbc:jtds:${db}://${dbserver}:${dbport}/${dbname}"
235+
'sqlserver' => "jdbc:jtds:${db}://${dbserver}:${dbport}/${dbname}",
236+
'h2' => "jdbc:h2:file:/${jira::homedir}/database/${dbname}",
200237
}
201238
}
202239

templates/dbconfig.h2.xml.erb

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<jira-database-config>
4+
<name>defaultDS</name>
5+
<delegator-name>default</delegator-name>
6+
<database-type><%= scope.lookupvar('jira::dbtype_real') %></database-type>
7+
<schema-name><%= scope.lookupvar('jira::dbschema') %></schema-name>
8+
<jdbc-datasource>
9+
<url><%= scope.lookupvar('jira::dburl_real') %></url>
10+
<driver-class><%= scope.lookupvar('jira::dbdriver_real') %></driver-class>
11+
<username><%= scope.lookupvar('jira::dbuser') %></username>
12+
<password><%= scope.lookupvar('jira::dbpassword') %></password>
13+
<pool-size><%= scope.lookupvar('jira::poolsize') %></pool-size>
14+
<pool-min-size><%= scope.lookupvar('jira::pool_min_size') %></pool-min-size>
15+
<pool-max-size><%= scope.lookupvar('jira::pool_max_size') %></pool-max-size>
16+
<pool-max-wait><%= scope.lookupvar('jira::pool_max_wait') %></pool-max-wait>
17+
<min-evictable-idle-time-millis><%= scope.lookupvar('jira::min_evictable_idle_time') %></min-evictable-idle-time-millis>
18+
<time-between-eviction-runs-millis><% if @time_between_eviction_runs %><%= @time_between_eviction_runs %><% else %><%= scope.lookupvar('jira::time_between_eviction_runs') %><% end %></time-between-eviction-runs-millis>
19+
<pool-max-idle><%= scope.lookupvar('jira::pool_max_idle') %></pool-max-idle>
20+
<pool-remove-abandoned><%= scope.lookupvar('jira::pool_remove_abandoned') %></pool-remove-abandoned>
21+
<pool-remove-abandoned-timeout><%= scope.lookupvar('jira::pool_remove_abandoned_timeout') %></pool-remove-abandoned-timeout>
22+
</jdbc-datasource>
23+
</jira-database-config>

templates/dbconfig.mysql.xml.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
<jira-database-config>
44
<name>defaultDS</name>
55
<delegator-name>default</delegator-name>
6-
<database-type><%= scope.lookupvar('jira::dbtype') %></database-type>
6+
<database-type><%= scope.lookupvar('jira::dbtype_real') %></database-type>
77
<jdbc-datasource>
88
<url><%= scope.lookupvar('jira::dburl_real') %></url>
9-
<driver-class><%= scope.lookupvar('jira::dbdriver') %></driver-class>
9+
<driver-class><%= scope.lookupvar('jira::dbdriver_real') %></driver-class>
1010
<username><%= scope.lookupvar('jira::dbuser') %></username>
1111
<password><%= scope.lookupvar('jira::dbpassword') %></password>
1212
<pool-size><%= scope.lookupvar('jira::poolsize') %></pool-size>

templates/dbconfig.oracle.xml.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
<jira-database-config>
44
<name>defaultDS</name>
55
<delegator-name>default</delegator-name>
6-
<database-type><%= scope.lookupvar('jira::dbtype') %></database-type>
6+
<database-type><%= scope.lookupvar('jira::dbtype_real') %></database-type>
77
<jdbc-datasource>
88
<url><%= scope.lookupvar('jira::dburl_real') %></url>
9-
<driver-class><%= scope.lookupvar('jira::dbdriver') %></driver-class>
9+
<driver-class><%= scope.lookupvar('jira::dbdriver_real') %></driver-class>
1010
<username><%= scope.lookupvar('jira::dbuser') %></username>
1111
<password><%= scope.lookupvar('jira::dbpassword') %></password>
1212
<pool-min-size><%= scope.lookupvar('jira::pool_min_size') %></pool-min-size>

templates/dbconfig.postgresql.xml.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
<jira-database-config>
44
<name>defaultDS</name>
55
<delegator-name>default</delegator-name>
6-
<database-type><%= scope.lookupvar('jira::dbtype') %></database-type>
6+
<database-type><%= scope.lookupvar('jira::dbtype_real') %></database-type>
77
<schema-name><%= scope.lookupvar('jira::dbschema') %></schema-name>
88
<jdbc-datasource>
99
<url><%= scope.lookupvar('jira::dburl_real') %></url>
10-
<driver-class><%= scope.lookupvar('jira::dbdriver') %></driver-class>
10+
<driver-class><%= scope.lookupvar('jira::dbdriver_real') %></driver-class>
1111
<username><%= scope.lookupvar('jira::dbuser') %></username>
1212
<password><%= scope.lookupvar('jira::dbpassword') %></password>
1313
<pool-size><%= scope.lookupvar('jira::poolsize') %></pool-size>

templates/dbconfig.sqlserver.xml.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
<jira-database-config>
44
<name>defaultDS</name>
55
<delegator-name>default</delegator-name>
6-
<database-type><%= scope.lookupvar('jira::dbtype') %></database-type>
6+
<database-type><%= scope.lookupvar('jira::dbtype_real') %></database-type>
77
<schema-name><%= scope.lookupvar('jira::dbschema') %></schema-name>
88
<jdbc-datasource>
99
<url><%= scope.lookupvar('jira::dburl_real') %></url>
10-
<driver-class><%= scope.lookupvar('jira::dbdriver') %></driver-class>
10+
<driver-class><%= scope.lookupvar('jira::dbdriver_real') %></driver-class>
1111
<username><%= scope.lookupvar('jira::dbuser') %></username>
1212
<password><%= scope.lookupvar('jira::dbpassword') %></password>
1313
<pool-min-size><%= scope.lookupvar('jira::pool_min_size') %></pool-min-size>

0 commit comments

Comments
 (0)