HOSTIP={{ hostvars[public_address][interface_name].ipv4.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]][interface_name].ipv4.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]][interface_name].ipv4.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][interface_name].ipv4.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][interface_name].ipv4.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][interface_name].ipv4.address }}{% if not loop.last %} {% endif %}{% endfor %}"
{% else %}
ZK_CLIENT_HOSTS="{% for host in groups['ds'] %}{{ hostvars[host][interface_name].ipv4.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="$PG_MASTER"
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 %}

