HOSTIP="$(hostname -i)"
MSIP={{ local_mgmt_ip }}
ADMIN_EMAIL={{ opdk_user_email }}
APIGEE_ADMINPW={{ opdk_user_pass }}
LICENSE_FILE={{ opdk_license_target_file_path }}
USE_LDAP_REMOTE_HOST={{ opdk_ldap_remote_host }}

LDAP_TYPE='{{ opdk_ldap_type }}'
{% if opdk_ldap_type == '2' %}
{% if groups['dc1-ldap'] is defined and groups['dc2-ldap'] is defined and inventory_hostname in groups['dc1'] %}
LDAP_SID=1
LDAP_PEER={{ hostvars[groups['dc2-ldap'][0]]['private_address']  }}
{% endif %}
{% if groups['dc1-ldap'] is defined and groups['dc2-ldap'] is defined and inventory_hostname in groups['dc2'] %}
LDAP_SID=2
LDAP_PEER={{ hostvars[groups['dc1-ldap'][0]]['private_address']  }}
{% endif %}
{% endif %}
APIGEE_LDAPPW={{ opdk_ldap_pass }}

ENABLE_AX={{ opdk_enable_ax }}
MP_POD={{ opdk_mp_pod | default(default_mp_pod) }}

{# TODO: Build a module that discover the region of the inventory_hostname and update the REGION dynamically #}
{% if groups['dc1'] is defined and inventory_hostname in groups['dc1'] %}
REGION=dc1
{% elif groups['dc2'] is defined and inventory_hostname in groups['dc2'] %}
REGION=dc2
{% elif groups['dc-3'] is defined and inventory_hostname in groups['dc-3'] %}
REGION=dc-3
{% endif %}

USE_ZK_CLUSTER={{ opdk_use_zk_cluster }}
{# TODO: Build a module to construct the ZK_HOSTS value#}
ZK_HOSTS="{% for host in groups['ds'] %}{{ hostvars[host]['private_address'] }}{% if hostvars[host]['zk_observer'] is defined and hostvars[host]['zk_observer'] == 'true' %}:observer{% endif %}{% if not loop.last %} {% endif %}{% endfor %}"

{# TODO: Build a module to construct the ZK_CLIENT_HOSTS value#}
{% if groups['dc1'] is defined and inventory_hostname in groups['dc1'] %}
ZK_CLIENT_HOSTS="{% for host in groups['dc1-ds'] %}{{ hostvars[host]['private_address'] }}{% if not loop.last %} {% endif %}{% endfor %}"
{% elif groups['dc2'] is defined and inventory_hostname in groups['dc2']%}
ZK_CLIENT_HOSTS="{% for host in groups['dc2-ds'] %}{{ hostvars[host]['private_address'] }}{% if not loop.last %} {% endif %}{% endfor %}"
{% else %}
ZK_CLIENT_HOSTS="{% for host in groups['ds'] %}{{ hostvars[host]['private_address'] }}{% if not loop.last %} {% endif %}{% endfor %}"
{% endif %}

USE_CASS_CLUSTER={{ opdk_use_cass_cluster }}
CASS_HOSTS="{{ cassandra_hosts }}"
CASS_USERNAME={{ opdk_cass_username }}
CASS_PASSWORD={{ opdk_cass_password }}
CASS_AUTH={{ opdk_cass_auth }}

SMTPMAILFROM="{{ opdk_smtp_mail_from }} <{{  opdk_user_email }}>"

SKIP_SMTP={{ opdk_smtp_skip }}
{% if opdk_smtp_skip | trim == 'n' %}
SMTPHOST={{ opdk_smtp_host }}
SMTPPORT={{ opdk_smtp_port }}
SMTPUSER={{ opdk_smtp_user }}
SMTPPASSWORD={{ opdk_smtp_password }}
SMTPSSL={{ opdk_smtp_ssl }}
{% endif %}
BIND_ON_ALL_INTERFACES={{ opdk_bind_on_all_interfaces }}

{% if pgmaster_ip is defined and pgstandby_ip is defined %}
PG_MASTER={{ pgmaster_ip }}
PG_STANDBY={{ pgstandby_ip }}
{% endif %}
PG_PWD={{ pg_pass }}

{% if opdk_monetization is defined and opdk_monetization %}
# Monetization has been configured
PG_USER={{ pg_user }}
MO_PG_HOST={{ pgmaster_ip }}
MO_PG_USER={{ pg_user }}
MO_PG_PASSWD={{ pg_pass }}
CASS_CLUSTERNAME={{ opdk_cass_clustername }}
APIGEE_PORT_HTTP_MS={{ ms_ext_mgmt_port }}
{% if groups['dc1-qpid'] is defined and inventory_hostname in groups['dc1-qpid'] %}
QPID_HOST="{{  groups['dc1-qpid'] | join(' ') }}"
{% else %}
QPID_HOST="{{  groups['dc2-qpid'] | join(' ') }}"
{% endif %}
QPID_PORT={{ qpid_ext_mgmt_port }}
MX_GROUP=mxgroup
ORG_NAME={{ org_name }}
{% endif %}

