diff --git a/README.md b/README.md
index a54c64a..51dc0f9 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
## Introduction
This repository is a suite of Ansible roles, playbooks and support scripts to
-automate the installation and maintenance of Atlassian Data-Center products in
+automate the installation and maintenance of Atlassian Data Center products in
cloud environments.
## Usage
diff --git a/group_vars/aws_node_local.yml b/group_vars/aws_node_local.yml
index a69c57c..85b2edd 100644
--- a/group_vars/aws_node_local.yml
+++ b/group_vars/aws_node_local.yml
@@ -38,11 +38,20 @@ atl_db_host: "{{ lookup('env', 'ATL_DB_HOST') }}"
atl_db_port: "{{ lookup('env', 'ATL_DB_PORT') or '5432' }}"
atl_db_root_user: "{{ lookup('env', 'ATL_DB_ROOT_USER') or 'postgres' }}"
atl_db_root_password: "{{ lookup('env', 'ATL_DB_ROOT_PASSWORD') }}"
+atl_db_driver: "{{ lookup('env', 'ATL_DB_DRIVER') or 'org.postgresql.Driver' }}"
+
atl_db_poolminsize: "{{ lookup('env', 'ATL_DB_POOLMINSIZE') or '20' }}"
atl_db_poolmaxsize: "{{ lookup('env', 'ATL_DB_POOLMAXSIZE') or '100' }}"
atl_db_minidle: "{{ lookup('env', 'ATL_DB_MINIDLE') or '10' }}"
atl_db_maxidle: "{{ lookup('env', 'ATL_DB_MAXIDLE') or '20' }}"
-atl_db_driver: "{{ lookup('env', 'ATL_DB_DRIVER') or 'org.postgresql.Driver' }}"
+
+atl_db_maxwaitmillis: "{{ lookup('env', 'ATL_DB_MAXWAITMILLIS') or '30000' }}"
+atl_db_timebetweenevictionrunsmillis: "{{ lookup('env', 'ATL_DB_TIMEBETWEENEVICTIONRUNSMILLIS') or '30000' }}"
+atl_db_minevictableidletimemillis: "{{ lookup('env', 'ATL_DB_MINEVICTABLEIDLETIMEMILLIS') or '5000' }}"
+atl_db_removeabandoned: "{{ lookup('env', 'ATL_DB_REMOVEABANDONED') or 'true' }}"
+atl_db_removeabandonedtimeout: "{{ lookup('env', 'ATL_DB_REMOVEABANDONEDTIMEOUT') or '300' }}"
+atl_db_testwhileidle: "{{ lookup('env', 'ATL_DB_TESTWHILEIDLE') or 'true'}}"
+atl_db_testonborrow: "{{ lookup('env', 'ATL_DB_TESTONBORROW') or 'false' }}"
atl_jdbc_db_name: "{{ lookup('env', 'ATL_JDBC_DB_NAME') }}"
atl_jdbc_user: "{{ lookup('env', 'ATL_JDBC_USER') }}"
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..9572a3d
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,3 @@
+ansible==2.7.10
+molecule==2.20.1
+docker==4.0.1
\ No newline at end of file
diff --git a/roles/jira_config/defaults/main.yml b/roles/jira_config/defaults/main.yml
index 20b8473..0a90817 100644
--- a/roles/jira_config/defaults/main.yml
+++ b/roles/jira_config/defaults/main.yml
@@ -21,3 +21,16 @@ atl_tomcat_protocol: "HTTP/1.1"
atl_tomcat_redirectport: ""
atl_tomcat_scheme: "http"
atl_tomcat_secure: "false"
+
+atl_db_poolminsize: '20'
+atl_db_poolmaxsize: '100'
+atl_db_minidle: '10'
+atl_db_maxidle: '20'
+
+atl_db_maxwaitmillis: '30000'
+atl_db_timebetweenevictionrunsmillis: '30000'
+atl_db_minevictableidletimemillis: '5000'
+atl_db_removeabandoned: 'true'
+atl_db_removeabandonedtimeout: '300'
+atl_db_testwhileidle: 'true'
+atl_db_testonborrow: 'false'
diff --git a/roles/jira_config/molecule/default/playbook.yml b/roles/jira_config/molecule/default/playbook.yml
index 51783ff..be14065 100644
--- a/roles/jira_config/molecule/default/playbook.yml
+++ b/roles/jira_config/molecule/default/playbook.yml
@@ -6,9 +6,23 @@
atl_product_edition: "jira-software"
atl_product_user: "jira"
atl_product_version: "7.13.2"
+
+ # dbconfig.xml variables
atl_jdbc_user: 'atljira'
+ atl_jdbc_password: 'molecule_password'
atl_jvm_heap: 'PLACEHOLDER'
atl_cluster_node_id: 'FAKEID'
+ atl_db_poolminsize: 1111
+ atl_db_poolmaxsize: 1111
+ atl_db_minidle: 1111
+ atl_db_maxidle: 1111
+ atl_db_maxwaitmillis: 1111
+ atl_db_minevictableidletimemillis: 1111
+ atl_db_timebetweenevictionrunsmillis: 1111
+ atl_db_removeabandoned: 'false'
+ atl_db_removeabandonedtimeout: 1111
+ atl_db_testwhileidle: 'false'
+ atl_db_testonborrow: 'true'
roles:
- role: linux_common
diff --git a/roles/jira_config/molecule/default/tests/test_default.py b/roles/jira_config/molecule/default/tests/test_default.py
index 2be5dfb..d34ecde 100644
--- a/roles/jira_config/molecule/default/tests/test_default.py
+++ b/roles/jira_config/molecule/default/tests/test_default.py
@@ -12,22 +12,23 @@ def test_dbconfig_file(host):
assert f.user == 'jira'
assert f.contains("org.postgresql.Driver")
assert f.contains("atljira")
- assert f.contains("20")
+ assert f.contains("molecule_password")
-def test_setenv_file(host):
- f = host.file('/opt/atlassian/jira-software/current/bin/setenv.sh')
- assert f.exists
- assert f.contains('^JVM_MINIMUM_MEMORY="PLACEHOLDER"')
- assert f.contains('^JVM_MAXIMUM_MEMORY="PLACEHOLDER"')
- assert f.contains('^JIRA_HOME="/var/atlassian/application-data/jira"')
- assert f.contains('^export CATALINA_OPTS="')
+ assert f.contains("1111")
+ assert f.contains("1111")
+ assert f.contains("1111")
+ assert f.contains("1111")
+ assert f.contains("1111")
+ assert f.contains("1111")
+ assert f.contains("false")
+ assert f.contains("1111")
+ assert f.contains("1111")
+ assert f.contains("false")
+ assert f.contains("1111")
+ assert f.contains("false")
+ assert f.contains("true")
-def test_cluster_file(host):
- f = host.file('/var/atlassian/application-data/jira/cluster.properties')
- assert f.exists
- assert f.contains('jira.node.id = FAKEID')
- assert f.contains('jira.shared.home = /media/atl/jira/shared')
def test_server_file(host):
f = host.file('/opt/atlassian/jira-software/current/conf/server.xml')
@@ -47,6 +48,7 @@ def test_server_file(host):
assert not f.contains('proxyName=')
assert not f.contains('proxyPort=')
+
def test_install_permissions(host):
assert host.file('/opt/atlassian/jira-software/current/conf/server.xml').user == 'root'
assert host.file('/opt/atlassian/jira-software/current/atlassian-jira/WEB-INF/web.xml').user == 'root'
diff --git a/roles/jira_config/templates/dbconfig.xml.j2 b/roles/jira_config/templates/dbconfig.xml.j2
index 9e83a9a..18c9ed7 100644
--- a/roles/jira_config/templates/dbconfig.xml.j2
+++ b/roles/jira_config/templates/dbconfig.xml.j2
@@ -16,13 +16,13 @@
{{ atl_db_minidle }}
{{ atl_db_maxidle }}
- 30000
+ {{ atl_db_maxwaitmillis }}
select 1
- 30000
- 5000
- true
- 300
- true
- false
+ {{ atl_db_timebetweenevictionrunsmillis }}
+ {{ atl_db_minevictableidletimemillis }}
+ {{ atl_db_removeabandoned }}
+ {{ atl_db_removeabandonedtimeout }}
+ {{ atl_db_testwhileidle }}
+ {{ atl_db_testonborrow }}