{%- from "opencontrail/map.jinja" import config with context %}
[DEFAULTS]
ifmap_server_ip={{ config.bind.address }}
ifmap_server_port=8443
ifmap_username=api-server
ifmap_password=api-server
cassandra_server_list={% for member in config.database.members %}{{ member.host }}:9160 {% endfor %}
listen_ip_addr=0.0.0.0
listen_port={{ config.bind.get('api_port', '8082') }}
multi_tenancy={{ config.get('multi_tenancy', 'true')|lower }}
log_file=/var/log/contrail/contrail-api.log
log_local=1
log_level=SYS_NOTICE
disc_server_ip={{ config.discovery.host }}
disc_server_port=5998
#zk_server_ip=10.0.102.31:2181,10.0.102.32:2181,10.0.102.33:2181
zk_server_ip={% for member in config.database.members %}{{ member.host }}:2181{% if not loop.last %},{% endif %}{% endfor %}
redis_server_ip=$__contrail_redis_ip__
rabbit_server={{ config.message_queue.host }}
rabbit_port={{ config.message_queue.port }}
{%- if config.identity.engine == "keystone" %}
auth=keystone
{%- endif %}
#rabbit_port=5673{{ config.message_queue.port }}

[SECURITY]
use_certs=False
keyfile=/etc/contrail/ssl/private_keys/apiserver_key.pem
certfile=/etc/contrail/ssl/certs/apiserver.pem
ca_certs=/etc/contrail/ssl/certs/ca.pem

{%- if config.identity.engine == "keystone" %}
[KEYSTONE]
auth_host={{ config.identity.host }}
auth_protocol=http
auth_port={{ config.identity.port }}
admin_user={{ config.identity.user }}
admin_password={{ config.identity.password }}
admin_token={{ config.identity.token }}
admin_tenant_name={{ config.identity.tenant }}
insecure=True
{%- if config.identity.version == "3" %}
project_name={{ config.identity.tenant }}
auth_url=http://{{ config.identity.host }}:{{ config.identity.port }}/v3
{%- endif %}
{%- endif %}
