{%- from "nova/map.jinja" import compute with context %}

[DEFAULT]
logdir=/var/log/nova
state_path=/var/lib/nova
connection_type=libvirt
rootwrap_config=/etc/nova/rootwrap.conf
verbose=True
api_paste_config=/etc/nova/api-paste.ini
volumes_path=/var/lib/nova/volumes
compute_manager=nova.compute.manager.ComputeManager
network_device_mtu=65000
use_neutron = True
config_drive_format=vfat
force_config_drive=True
security_group_api=neutron
vif_plugging_is_fatal=True
vif_plugging_timeout=300
dhcp_domain={{ compute.get('dhcp_domain', 'novalocal') }}
{%- if compute.get('sriov', false) %}
{%- for nic_name, sriov in compute.sriov.iteritems() %}
pci_passthrough_whitelist = {"devname":"{{ sriov.devname }}","physical_network":"{{ sriov.physical_network }}"}
{%- endfor %}
{%- endif %}
{%- if compute.image.use_cow is defined %}
use_cow_images = {{ compute.image.use_cow }}
{%- endif %}

remove_unused_original_minimum_age_seconds=86400
image_service=nova.image.glance.GlanceImageService

reserved_host_memory_mb = {{ compute.get('reserved_host_memory_mb', '512') }}

{%- if compute.vcpu_pin_set is defined %}
vcpu_pin_set={{ compute.vcpu_pin_set }}
{%- endif %}

allow_resize_to_same_host=True

auth_strategy = keystone

neutron_url_timeout = 300
compute_driver = nova.virt.libvirt.LibvirtDriver

heal_instance_info_cache_interval = {{ compute.heal_instance_info_cache_interval }}

image_cache_manager_interval = 0
firewall_driver = nova.virt.firewall.NoopFirewallDriver

rpc_cast_timeout = 30
rpc_response_timeout = 3600
executor_thread_pool_size = 70
report_interval = {{ compute.get('report_interval', '60') }}

block_device_allocate_retries=600
block_device_allocate_retries_interval=10

resume_guests_state_on_host_boot = {{ compute.get('resume_guests_state_on_host_boot', True) }}
service_down_time = 90

{% if pillar.ceilometer is defined %}
instance_usage_audit = True
instance_usage_audit_period = hour
{%- endif %}

instances_path = {{ compute.instances_path }}

{%- if compute.get('notification', {}).notify_on is defined %}
{%- for key, value in compute.notification.notify_on.iteritems() %}
notify_on_{{ key }} = {{ value }}
{%- endfor %}
{%- elif pillar.ceilometer is defined %}
notify_on_state_change = vm_and_task_state
{%- endif %}

[oslo_concurrency]
lock_path = /var/lib/nova/tmp

[oslo_messaging_notifications]
{%- if compute.notification is mapping %}
driver = {{ compute.notification.get('driver', 'messagingv2') }}
{%- if compute.notification.topics is defined %}
topics = {{ compute.notification.topics }}
{%- endif %}
{%- elif compute.notification %}
driver = messagingv2
{%- endif %}

[vnc]
enabled = true
novncproxy_base_url={{ compute.vncproxy_url }}/vnc_auto.html
novncproxy_port={{ compute.bind.vnc_port }}
vncserver_listen=0.0.0.0
vncserver_proxyclient_address={{ compute.bind.vnc_address }}
keymap = {{ compute.get('vnc_keymap', 'en-us') }}

[spice]
enabled = false
html5proxy_base_url = {{ compute.vncproxy_url }}/spice_auto.html

[cache]
{%- if compute.cache is defined %}
backend = oslo_cache.memcache_pool
enabled = true
memcache_servers={%- for member in compute.cache.members %}{{ member.host }}:11211{% if not loop.last %},{% endif %}{%- endfor %}
{%- endif %}

[libvirt]
cpu_mode = {{ compute.get('cpu_mode', 'host-passthrough') }}
virt_type = kvm
inject_partition=-2
inject_password=False
disk_cachemodes="network=writeback,block=none"
libvirt_inject_password=True
block_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_NON_SHARED_INC
live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST
libvirt_inject_key=True
inject_key=False
vif_driver=nova.virt.libvirt.vif.LibvirtGenericVIFDriver

{%- if compute.get('ceph', {}).ephemeral is defined %}
images_type=rbd
images_rbd_pool={{ compute.ceph.rbd_pool }}
images_rbd_ceph_conf=/etc/ceph/ceph.conf
rbd_user={{ compute.ceph.rbd_user }}
rbd_secret_uuid={{ compute.ceph.secret_uuid }}
libvirt_inject_password=false
libvirt_inject_key=false
{%- endif %}
{%- if compute.libvirt.hw_disk_discard is defined %}
hw_disk_discard={{ compute.libvirt.hw_disk_discard }}
{%- endif %}

{%- if compute.get('libvirt', {}).uri is defined %}
connection_uri={{ compute.libvirt.uri }}
{%- endif %}

[keystone_authtoken]
signing_dirname=/tmp/keystone-signing-nova
revocation_cache_time = 10
auth_type = password
user_domain_id = {{ compute.identity.get('domain', 'default') }}
project_domain_id = {{ compute.identity.get('domain', 'default') }}
project_name = {{ compute.identity.tenant }}
username = {{ compute.identity.user }}
password = {{ compute.identity.password }}
auth_uri=http://{{ compute.identity.host }}:5000
auth_url=http://{{ compute.identity.host }}:35357
{%- if compute.cache is defined %}
memcached_servers={%- for member in compute.cache.members %}{{ member.host }}:11211{% if not loop.last %},{% endif %}{%- endfor %}
{%- endif %}

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

rabbit_userid = {{ compute.message_queue.user }}
rabbit_password = {{ compute.message_queue.password }}
rabbit_virtual_host = {{ compute.message_queue.virtual_host }}
rpc_conn_pool_size = 300
rabbit_retry_interval = 1
rabbit_retry_backoff = 2

[glance]
api_servers=http://{{ compute.image.host }}:9292

[neutron]
username={{ compute.network.user }}
password={{ compute.network.password }}
project_name={{ compute.identity.tenant }}
auth_url=http://{{ compute.identity.host }}:{{ compute.identity.port }}
url=http://{{ compute.network.host }}:{{ compute.network.port }}
region_name= {{ compute.network.region }}
extension_sync_interval={{ compute.network.get('extension_sync_interval', '600') }}
auth_type = password
project_domain_name = default
user_domain_name = default
timeout=30

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

{%- if compute.workaround is defined %}
[workarounds]
disable_libvirt_livesnapshot={{ compute.workaround.get('disable_libvirt_livesnapshot', True)|lower }}
{%- endif %}
