{%- from "nova/map.jinja" import controller with context %}
[DEFAULT]
logdir = /var/log/nova
verbose = True
{%- if controller.debug %}
debug = True
{%- else %}
debug = False
{%- endif %}
state_path = /var/lib/nova
lock_path = /var/lib/nova/tmp
volumes_dir = /etc/nova/volumes
dhcpbridge = /usr/bin/nova-dhcpbridge
dhcpbridge_flagfile = /etc/nova/nova.conf
dhcp_domain = {{ controller.dhcp_domain }}
force_dhcp_release = True
injected_network_template = /usr/share/nova/interfaces.template
libvirt_nonblocking = True
libvirt_use_virtio_for_bridges=True
libvirt_inject_partition = -1
vif_plugging_is_fatal = False
vif_plugging_timeout = 0
cpu_allocation_ratio = {{ controller.cpu_allocation_ratio }}
ram_allocation_ratio = {{ controller.ram_allocation_ratio }}
disk_allocation_ratio = {{ controller.disk_allocation_ratio }}
scheduler_default_filters = {{ controller.scheduler_default_filters }}
vnc_keymap = {{ controller.get('vnc_keymap', 'en-us') }}

allow_resize_to_same_host = True

logdir=/var/log/nova
iscsi_helper=tgtadm
connection_type=libvirt
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
ec2_private_dns_show_ip=True
api_paste_config=/etc/nova/api-paste.ini
volumes_path=/var/lib/nova/volumes

sql_connection = {{ controller.database.engine }}://{{ controller.database.user }}:{{ controller.database.password }}@{{ controller.database.host }}/{{ controller.database.name }}

network_api_class = nova.network.neutronv2.api.API

compute_driver = libvirt.LibvirtDriver
libvirt_type=kvm
rootwrap_config = /etc/nova/rootwrap.conf
auth_strategy = keystone
firewall_driver=nova.virt.firewall.NoopFirewallDriver
enabled_apis = ec2,osapi_compute,metadata

my_ip={{ controller.bind.private_address }}



neutron_auth_strategy = keystone
neutron_admin_auth_url = http://{{ controller.identity.host }}:35357/v{% if controller.identity.get('version', 2) == 2 %}2.0{% else %}3{% endif %}
{% if pillar.neutron is defined %}
neutron_admin_password={{ pillar.neutron.server.identity.password }}
neutron_admin_tenant_name={{ pillar.neutron.server.identity.tenant }}
neutron_admin_username={{ pillar.neutron.server.identity.user }}
neutron_region_name={{ pillar.neutron.server.identity.region }}
{%- else %}
neutron_admin_password={{ controller.network.password }}
neutron_admin_tenant_name={{ controller.network.tenant }}
neutron_admin_username={{ controller.network.user }}
neutron_region_name={{ controller.network.region }}
{%- endif %}
neutron_url=http://{{ controller.network.host }}:{{ controller.network.port }}


linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
security_group_api = neutron

rpc_backend = nova.rpc.impl_kombu

{%- if controller.cache is defined %}
memcached_servers={%- for member in controller.cache.members %}{{ member.host }}:11211{% if not loop.last %},{% endif %}{%- endfor %}
{%- endif %}


volume_api_class=nova.volume.cinder.API
ec2_listen={{ controller.bind.private_address }}
osapi_volume_listen={{ controller.bind.private_address }}
osapi_compute_listen={{ controller.bind.private_address }}
metadata_listen={{ controller.bind.private_address }}
glance_host = {{ controller.glance.host }}
osapi_compute_workers = {{ controller.workers }}

#NoVNC
vnc_enabled=true
{%- if pillar.nova.compute is defined %}
vncserver_listen={{ controller.bind.private_address }}
vncserver_proxyclient_address={{ controller.bind.private_address }}
{%- else %}
vncserver_listen=0.0.0.0
{%- endif %}
novncproxy_base_url={{ controller.vncproxy_url }}/vnc_auto.html
novncproxy_port={{ controller.bind.get('vncproxy_port', '6080') }}

{%- if controller.get('networking', 'default') != "contrail" %}
neutron_metadata_proxy_shared_secret={{ controller.metadata.password }}
{%- endif %}

allow_resize_to_same_host=True

rpc_cast_timeout = 30
rpc_conn_pool_size = 300
rpc_response_timeout = 3600
rpc_thread_pool_size = 70
report_interval = 5

block_device_allocate_retries=600
block_device_allocate_retries_interval=10

[oslo_concurrency]

lock_path = /var/lib/nova/tmp

[oslo_messaging_rabbit]
{%- if controller.message_queue.members is defined %}
rabbit_hosts = {% for member in controller.message_queue.members -%}
                   {{ member.host }}:{{ member.get('port', 5672) }}
                   {%- if not loop.last -%},{%- endif -%}
               {%- endfor -%}
{%- else %}
rabbit_host = {{ controller.message_queue.host }}
rabbit_port = {{ controller.message_queue.port }}
{%- endif %}

rabbit_userid = {{ controller.message_queue.user }}
rabbit_password = {{ controller.message_queue.password }}
rabbit_virtual_host = {{ controller.message_queue.virtual_host }}

rabbit_retry_interval = 1
rabbit_retry_backoff = 2

{%- if controller.identity.get('version', 2) == 2 %}

[keystone_authtoken]
signing_dirname=/tmp/keystone-signing-nova
signing_dir=/tmp/keystone-signing-nova
admin_tenant_name = {{ controller.identity.tenant }}
admin_user = {{ controller.identity.user }}
admin_password = {{ controller.identity.password }}
auth_host = {{ controller.identity.host }}
auth_port = {{ controller.identity.port }}
auth_protocol=http
auth_uri=http://{{ controller.identity.host }}:5000

{%- else %}

[keystone_authtoken]
signing_dirname=/tmp/keystone-signing-nova
identity_uri = http://{{ controller.identity.host }}:35357/v3
revocation_cache_time = 10
auth_section = generic_password

[generic_password]
auth_plugin = password
user_domain_id = {{ controller.identity.get('domain', 'default') }}
project_domain_id = {{ controller.identity.get('domain', 'default') }}
project_name = {{ controller.identity.tenant }}
username = {{ controller.identity.user }}
password = {{ controller.identity.password }}
auth_uri=http://{{ controller.identity.host }}:5000/v3
auth_url=http://{{ controller.identity.host }}:35357/v3

{%- endif %}

[conductor]
workers = {{ controller.workers }}

[database]
idle_timeout = 180
min_pool_size = 100
max_pool_size = 700
max_overflow = 100
retry_interval = 5
max_retries = -1
db_max_retries = 3
db_retry_interval = 1
connection_debug = 10
pool_timeout = 120
connection = {{ controller.database.engine }}://{{ controller.database.user }}:{{ controller.database.password }}@{{ controller.database.host }}/{{ controller.database.name }}

[glance]

host = {{ controller.glance.host }}

[neutron]
auth_strategy = keystone
admin_auth_url = http://{{ controller.identity.host }}:35357/v{% if controller.identity.get('version', 2) == 2 %}2.0{% else %}3{% endif %}
{% if pillar.neutron is defined %}
admin_password={{ pillar.neutron.server.identity.password }}
admin_tenant_name={{ pillar.neutron.server.identity.tenant }}
admin_username={{ pillar.neutron.server.identity.user }}
region_name= {{ pillar.neutron.server.identity.region }}
{%- else %}
admin_password={{ controller.network.password }}
admin_tenant_name={{ controller.network.tenant }}
admin_username={{ controller.network.user }}
region_name= {{ controller.network.region }}
{%- endif %}
url=http://{{ controller.network.host }}:{{ controller.network.port }}

service_metadata_proxy=True

[cinder]
os_region_name = {{ controller.identity.region }}
catalog_info=volumev2:cinderv2:internalURL
