5151 state : started
5252
5353# Initialise cluster block
54- - name : initialise or reconfigure cluster block
54+ - name : Initialise or reconfigure cluster block
5555 when : mongo_replication_role == 'primary'
5656 block :
5757 - name : Check if replica set is already initialised
9797 verbosity : 2
9898
9999 # Reconfigure cluster
100+ # todo: this alwasy returns changed even wehn nothing changes
100101 - name : Reconfigure cluster if necessary
101102 community.mongodb.mongodb_replicaset :
102103 login_host : localhost
132133 login_user : admin
133134 login_password : " {{ mongo_admin_password }}"
134135 eval : " db.adminCommand({ getDefaultRWConcern: 1 })"
135- # transform: raw
136136 register : current_write_concern
137137 changed_when : false
138138
139139 - name : Debug write concern check
140140 ansible.builtin.debug :
141141 msg : " {{ current_write_concern.transformed_output.defaultWriteConcern }}"
142142 verbosity : 2
143+ when : current_write_concern.transformed_output.defaultWriteConcern is defined
143144
144145 - name : Set default write concern
145- community.mongodb.mongodb_shell :
146- login_host : localhost
147- login_user : admin
148- login_password : " {{ mongo_admin_password }}"
149- login_port : " {{ mongo_port }}"
150- eval : " db.adminCommand({ setDefaultRWConcern: 1, defaultWriteConcern: { w: {{ mongo_cluster_write_concern | default('majority') }}, wtimeout: {{ mongo_cluster_write_timeout | default(5000) }} } })"
151146 when : >
152- current_write_concern.transformed_output.defaultWriteConcern.w | string != mongo_cluster_write_concern | default('majority') | string
147+ current_write_concern.transformed_output.defaultWriteConcern is defined
148+ and
149+ (current_write_concern.transformed_output.defaultWriteConcern.w | string != mongo_cluster_write_concern | default('majority') | string
153150 or
154- current_write_concern.transformed_output.defaultWriteConcern.wtimeout | int != mongo_cluster_write_timeout | default(5000) | int
151+ current_write_concern.transformed_output.defaultWriteConcern.wtimeout | int != mongo_cluster_write_timeout | default(5000) | int)
152+ or current_write_concern.transformed_output.defaultWriteConcern is not defined
153+ block :
154+ - name : " set write concern majority"
155+ when : mongo_cluster_write_concern == "majority"
156+ community.mongodb.mongodb_shell :
157+ login_host : localhost
158+ login_user : admin
159+ login_password : " {{ mongo_admin_password }}"
160+ login_port : " {{ mongo_port }}"
161+ eval : " db.adminCommand({ setDefaultRWConcern: 1, defaultWriteConcern: { w: \" {{ mongo_cluster_write_concern | default('majority') }}\" , wtimeout: {{ mongo_cluster_write_timeout | default(5000) }} } })"
162+ # could not get this to work with either majority with quotes or number without quotes so for now an ugly fix
163+ - name : " set write concern numeric"
164+ when : mongo_cluster_write_concern != "majority"
165+ community.mongodb.mongodb_shell :
166+ login_host : localhost
167+ login_user : admin
168+ login_password : " {{ mongo_admin_password }}"
169+ login_port : " {{ mongo_port }}"
170+ eval : " db.adminCommand({ setDefaultRWConcern: 1, defaultWriteConcern: { w: {{ mongo_cluster_write_concern | default('majority') }}, wtimeout: {{ mongo_cluster_write_timeout | default(5000) }} } })"
0 commit comments