HOSTIP={{ local_address }}
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['dc-1-ldap'] is defined and groups['dc-2-ldap'] is defined and inventory_hostname in groups['dc-1'] %}
LDAP_SID=1
LDAP_PEER={{ hostvars[groups['dc-2-ldap'][0]]['local_address']  }}
{% endif %}
{% if groups['dc-1-ldap'] is defined and groups['dc-2-ldap'] is defined and inventory_hostname in groups['dc-2'] %}
LDAP_SID=2
LDAP_PEER={{ hostvars[groups['dc-1-ldap'][0]]['local_address']  }}
{% endif %}
{% endif %}
APIGEE_LDAPPW={{ opdk_ldap_pass }}

ENABLE_AX={{ opdk_enable_ax }}
MP_POD={{ opdk_mp_pod }}

{# TODO: Build a module that discover the region of the inventory_hostname and update the REGION #}
{% if groups['dc-1'] is defined and inventory_hostname in groups['dc-1'] %}
REGION=dc-1
{% elif groups['dc-2'] is defined and inventory_hostname in groups['dc-2'] %}
REGION=dc-2
{% 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]['local_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['dc-1'] is defined and inventory_hostname in groups['dc-1'] %}
ZK_CLIENT_HOSTS="{% for host in groups['dc-1-ds'] %}{{ hostvars[host]['local_address'] }}{% if not loop.last %} {% endif %}{% endfor %}"
{% elif groups['dc-2'] is defined and inventory_hostname in groups['dc-2']%}
ZK_CLIENT_HOSTS="{% for host in groups['dc-2-ds'] %}{{ hostvars[host]['local_address'] }}{% if not loop.last %} {% endif %}{% endfor %}"
{% else %}
ZK_CLIENT_HOSTS="{% for host in groups['ds'] %}{{ hostvars[host]['local_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 }}
SKIP_SMTP={{ opdk_skip_smtp }}
{% if opdk_skip_smtp | bool %}
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 %}

{% if opdk_monetization is defined and opdk_monetization %}
# Monetization has been configured
PG_USER={{ pg_user }}
PG_PWD={{ pg_pass }}
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['dc-1-qpid'] is defined and inventory_hostname in groups['dc-1-qpid'] %}
QPID_HOST="{{  groups['dc-1-qpid'] | join(' ') }}"
{% else %}
QPID_HOST="{{  groups['dc-2-qpid'] | join(' ') }}"
{% endif %}
QPID_PORT={{ qpid_ext_mgmt_port }}
MX_GROUP=mxgroup
ORG_NAME={{ org_name }}
{% endif %}

