{% if groups['dc-1'] is defined and inventory_hostname in groups['dc-1'] %}
MSIP={{ hostvars[groups['dc-1-ms'][0]][interface_name].ipv4.address }}
{% elif groups['dc-2'] is defined and inventory_hostname in groups['dc-2'] %}
MSIP={{ hostvars[groups['dc-2-ms'][0]][interface_name].ipv4.address }}
{% else %}
{# Default to the MS in region 1 #}
MSIP={{ hostvars[groups['dc-1-ms'][0]][interface_name].ipv4.address }}
{% endif %}
ADMIN_EMAIL={{ opdk_user_email }}
APIGEE_PORT_HTTP_MS={{ ms_ext_mgmt_port }}
APIGEE_ADMINPW={{ opdk_user_pass }}
{% 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
{% else %}
REGION=Please update the region
{% endif %}
MP_POD={{ opdk_mp_pod }}
{% if groups['dc-1'] is defined and inventory_hostname in groups['dc-1'] %}
    {% if groups['dc-1-rmp'] | length > 0  %}
        MP_IP='{{ hostvars[groups['dc-1-rmp'][0]][interface_name].ipv4.address }}'
    {% elif groups['dc-2-rmp'] is defined and inventory_hostname in groups['dc-2'] %}
        MP_IP='{{ hostvars[groups['dc-2-rmp'][0]][interface_name].ipv4.address }}'
    {% elif groups['dc-3-rmp'] is defined and inventory_hostname in groups['dc-3'] %}
        MP_IP='{{ hostvars[groups['dc-3-rmp'][0]][interface_name].ipv4.address }}'
    {% endif %}
    {% if groups['dc-1-mp'] is defined  %}
        MP_IP='{{ hostvars[groups['dc-1-mp'][0]][interface_name].ipv4.address }}'
    {% elif groups['dc-2-mp'] is defined and inventory_hostname in groups['dc-2'] %}
        MP_IP='{{ hostvars[groups['dc-2-mp'][0]][interface_name].ipv4.address }}'
    {% elif groups['dc-3-mp'] is defined and inventory_hostname in groups['dc-3'] %}
        MP_IP='{{ hostvars[groups['dc-3-mp'][0]][interface_name].ipv4.address }}'
    {% endif %}
{% else %}
        MP_IP=please update the mp ip address
{% endif %}
MP_PORT={{ mp_ext_mgmt_port }}
{% if groups['dc-1'] is defined and inventory_hostname in groups['dc-1'] %}
    {% if groups['dc-1-rmp'] | length > 0  %}
        HOST_ALIAS='{{ groups['dc-1-rmp'] | join(" ") }}'
    {% elif groups['dc-2-rmp'] is defined and inventory_hostname in groups['dc-2'] %}
        HOST_ALIAS='{{ groups['dc-2-rmp'] | join(" ") }}'
    {% elif groups['dc-3-rmp'] is defined and inventory_hostname in groups['dc-3'] %}
        HOST_ALIAS="{{ groups['dc-3-rmp'] | join(' ') }}"
    {% endif %}
    {% if groups['dc-1-mp'] is defined  %}
        HOST_ALIAS='{{ groups['dc-1-mp'] | join(" ") }}'
    {% elif groups['dc-2-mp'] is defined and inventory_hostname in groups['dc-2'] %}
        HOST_ALIAS='{{ groups['dc-2-mp'] | join(" ") }}'
    {% elif groups['dc-3-mp'] is defined and inventory_hostname in groups['dc-3'] %}
        HOST_ALIAS="{{ groups['dc-3-mp'] | join(' ') }}"
    {% endif %}
{% else %}
    HOST_ALIAS=Neither a dc-1 or dc-2 inventory group was defined
{% endif %}
