---

- name: Replication configuration
  mongodb_replication:
    build_indexes: "{{ item.build_indexes|default(omit) }}"
    login_host: "{{ mongodb_login_host|default('localhost') }}"
    login_port: "{{ mongodb_login_port|default(27017) }}"
    login_user: "{{ mongodb_root_admin_name }}"
    login_password: "{{ mongodb_root_admin_password }}"
    replica_set: "{{ mongodb_replication_replset }}"
    host_name: "{{ item.host_name }}"
    host_port: "{{ item.host_port|default(27017) }}"
    host_type: "{{ item.host_type|default('replica') }}"
    hidden: "{{ item.hidden|default(false) }}"
    priority: "{{ item.priority|default(1.0) }}"
    votes: "{{ item.votes|default(omit) }}"
    ssl: "{{ True if mongodb_net_ssl_mode == 'requireSSL' else False }}"
  when: mongodb_security_authorization == 'enabled'
  with_items:
    - "{{ mongodb_replication_params|default([]) }}"

- name: Replication configuration without auth on master
  mongodb_replication:
    build_indexes: "{{ item.build_indexes|default(omit) }}"
    login_host: "{{ mongodb_login_host|default('localhost') }}"
    login_port: "{{ mongodb_login_port|default(27017) }}"
    replica_set: "{{ mongodb_replication_replset }}"
    host_name: "{{ item.host_name }}"
    host_port: "{{ item.host_port|default(27017) }}"
    host_type: "{{ item.host_type|default('replica') }}"
    hidden: "{{ item.hidden|default(false) }}"
    priority: "{{ item.priority|default(1.0) }}"
    votes: "{{ item.votes|default(omit) }}"
    ssl: "{{ True if mongodb_net_ssl_mode == 'requireSSL' else False }}"
  when: ( mongodb_security_authorization == 'disabled'
        and mongodb_master is defined and mongodb_master )
  with_items:
    - "{{ mongodb_replication_params|default([]) }}"

- name: Replication configuration without auth on replicas and arbiters
  mongodb_replication:
    build_indexes: "{{ item.build_indexes|default(omit) }}"
    login_host: "{{ mongodb_login_host|default('localhost') }}"
    login_port: "{{ mongodb_login_port|default(27017) }}"
    replica_set: "{{ mongodb_replication_replset }}"
    host_name: "{{ item.host_name }}"
    host_port: "{{ item.host_port|default(27017) }}"
    host_type: "{{ item.host_type|default('replica') }}"
    hidden: "{{ item.hidden|default(false) }}"
    priority: "{{ item.priority|default(1.0) }}"
    votes: "{{ item.votes|default(omit) }}"
    ssl: "{{ True if mongodb_net_ssl_mode == 'requireSSL' else False }}"
  when: ( mongodb_security_authorization == 'disabled'
        and ( mongodb_master is not defined or not mongodb_master) )
  with_items:
    - "{{ mongodb_replication_params|default([]) }}"
