fix: idempotent mongodb creation, with saved facts (#945)
Co-authored-by: Anish Lakhwara <anish+git@lakhwara.com>
This commit is contained in:
parent
00eb62214d
commit
dd3d9001fb
@ -25,7 +25,7 @@
|
|||||||
# MongoDB
|
# MongoDB
|
||||||
# ===========================================
|
# ===========================================
|
||||||
- name: d_ocean | db | test for existing mongodb
|
- name: d_ocean | db | test for existing mongodb
|
||||||
ansible.builtin.command: doctl db list
|
ansible.builtin.command: doctl db list -o json
|
||||||
changed_when: false
|
changed_when: false
|
||||||
failed_when: false
|
failed_when: false
|
||||||
register: db_check
|
register: db_check
|
||||||
@ -34,18 +34,22 @@
|
|||||||
ansible.builtin.command: doctl databases create {{ db_name }} --region {{ droplet_region }} --engine mongodb --version 6 --output json
|
ansible.builtin.command: doctl databases create {{ db_name }} --region {{ droplet_region }} --engine mongodb --version 6 --output json
|
||||||
async: 1800
|
async: 1800
|
||||||
poll: 60
|
poll: 60
|
||||||
register: db_create_result
|
register: db_create
|
||||||
when: "db_check.stdout.find(' ' + db_name + ' ') == -1"
|
when: "db_check.stdout | from_json | json_query(name_query) | length < 1"
|
||||||
|
vars:
|
||||||
|
name_query: '[?name==`{{db_name}}`]'
|
||||||
|
|
||||||
- name: d_ocean | db | set db url
|
- name: d_ocean | db | set db url
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
db_url: "{{ db_create_result.stdout | from_json | json_query('[0].private_connection.uri') }}"
|
db_url: "{{ db_create.stdout if db_create.changed == false else db_check.stdout | from_json | json_query(name_query) | json_query('[0].private_connection.uri') }}"
|
||||||
when: "db_check.stdout.find(' ' + db_name + ' ') == -1"
|
vars:
|
||||||
|
name_query: '[?name==`{{db_name}}`]'
|
||||||
|
|
||||||
- name: d_ocean | db | set db id
|
- name: d_ocean | db | set db id
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
db_uuid: db_create_result.stdout | from_json | json_query('[0].id')
|
db_uuid: "{{ db_create.stdout if db_create.changed == false else db_check.stdout | from_json | json_query(name_query) | json_query('[0].id')}}"
|
||||||
when: "db_check.stdout.find(' ' + db_name + ' ') == -1"
|
vars:
|
||||||
|
name_query: '[?name==`{{db_name}}`]'
|
||||||
|
|
||||||
# Storage (Space)
|
# Storage (Space)
|
||||||
# ===========================================
|
# ===========================================
|
||||||
|
Loading…
Reference in New Issue
Block a user