Merged in bugfix/ITOPSENG-333-dont-create-db-if-exists (pull request #59)

ITOPSENG-333 prevent db_create if db already exists

Approved-by: Geoff Jacobs <gjacobs@atlassian.com>
Approved-by: Ben Partridge <bpartridge@atlassian.com>
This commit is contained in:
Brett Meehan
2019-12-16 04:04:28 +00:00

View File

@@ -10,6 +10,15 @@
password: "{{ atl_jdbc_password }}" password: "{{ atl_jdbc_password }}"
expires: 'infinity' expires: 'infinity'
- name: Collect dbcluster db_names
postgresql_query:
login_host: "{{ atl_db_host }}"
login_user: "{{ atl_db_root_user }}"
login_password: "{{ atl_db_root_password }}"
db: "{{ atl_db_root_db_name }}"
query: "SELECT datname FROM pg_database;"
register: dbcluster_db_names
- block: - block:
- name: Update root privs for new user - name: Update root privs for new user
@@ -22,6 +31,7 @@
objs: "{{ atl_jdbc_user }}" objs: "{{ atl_jdbc_user }}"
type: group type: group
# RDS does not allow changing the collation on an existing DB, it only allows collation change on creation of db. If the db already exists, we need the “create new application database” task to be skipped, idempotence can not be relied upon as we cant be certain the collation of the existing db
- name: Create new application database - name: Create new application database
postgresql_db: postgresql_db:
login_host: "{{ atl_db_host }}" login_host: "{{ atl_db_host }}"
@@ -35,6 +45,7 @@
lc_ctype: "{{ atl_jdbc_ctype }}" lc_ctype: "{{ atl_jdbc_ctype }}"
template: "{{ atl_jdbc_template }}" template: "{{ atl_jdbc_template }}"
register: db_created register: db_created
when: "atl_jdbc_db_name not in (dbcluster_db_names.query_result | map(attribute='datname') )"
tags: tags:
- new_only - new_only
@@ -62,4 +73,3 @@
login_password: "{{ atl_db_root_password }}" login_password: "{{ atl_db_root_password }}"
db: "{{ atl_jdbc_db_name }}" db: "{{ atl_jdbc_db_name }}"
query: "GRANT ALL ON SCHEMA public TO {{ atl_jdbc_user }};" query: "GRANT ALL ON SCHEMA public TO {{ atl_jdbc_user }};"