{%- from "opencontrail/map.jinja" import config with context -%}

[KEYSTONE]

{%- if config.identity.engine != "none" %}

auth_host={{ config.identity.host }}
auth_protocol={{ config.identity.protocol }}
auth_port={{ config.identity.port }}
admin_user={{ config.identity.user }}
admin_password={{ config.identity.password }}
admin_tenant_name={{ config.identity.tenant }}
insecure=True
region_name={{ config.identity.get("region", "RegionOne") }}
{%- if config.cache is defined %}
#memcache_servers=127.0.0.1:11211
memcache_servers={% for member in config.cache.members %}{{ member.host }}:{{ member.port }}{% if not loop.last %},{% endif %}{% endfor %}
{%- endif %}
{%- if config.identity.version == "3" %}
project_name={{ config.identity.tenant }}
project_domain_name={{ config.identity.get('domain', 'default')|lower}}
auth_url={{ config.identity.protocol }}://{{ config.identity.host }}:{{ config.identity.port }}/v3
{%- else %}
auth_url={{ config.identity.protocol }}://{{ config.identity.host }}:{{ config.identity.port }}/v2.0
{%- endif %}

{%- endif %}