24465850 Update Nova for the Mitaka release
authorLaszlo Peter <laszlo.peter@oracle.com>
Wed, 07 Sep 2016 14:48:42 -0700
changeset 6854 52081f923019
parent 6853 cf1567491b1b
child 6855 ea44e7e0ca98
24465850 Update Nova for the Mitaka release 22456289 nova interface-attach reports an error; adds unusable entry to instance anyway
components/openstack/nova/Makefile
components/openstack/nova/files/nova-api
components/openstack/nova/files/nova-api-ec2.xml
components/openstack/nova/files/nova-compute
components/openstack/nova/files/nova-compute.xml
components/openstack/nova/files/nova-conductor
components/openstack/nova/files/nova-objectstore
components/openstack/nova/files/nova-objectstore.xml
components/openstack/nova/files/nova-upgrade
components/openstack/nova/files/nova.conf
components/openstack/nova/files/release
components/openstack/nova/files/solariszones/driver.py
components/openstack/nova/files/solariszones/sysconfig.py
components/openstack/nova/files/zone-vnc-console
components/openstack/nova/nova.p5m
components/openstack/nova/patches/01-Solaris-vm_mode.patch
components/openstack/nova/patches/02-requirements.patch
components/openstack/nova/patches/03-Solaris-flavors.patch
components/openstack/nova/patches/04-compute-hvtype.patch
components/openstack/nova/patches/05-force-driver-snapshot.patch
components/openstack/nova/patches/06-Solaris-dev-name.patch
components/openstack/nova/patches/07-opts.patch
components/openstack/nova/patches/08-confirm_migration_context.patch
components/openstack/nova/patches/09-generate_sample.patch
components/openstack/nova/patches/09-remove-pycrypto.patch
components/openstack/nova/patches/10-launchpad-1486590.patch
components/openstack/nova/patches/10-no-security-groups.patch
components/openstack/nova/patches/11-launchpad-1435633.patch
components/openstack/nova/patches/11-migrate-data.patch
components/openstack/nova/patches/12-launch-conf.patch
components/openstack/nova/patches/13-mysql_cluster_support.patch
--- a/components/openstack/nova/Makefile	Wed Sep 07 14:48:42 2016 -0700
+++ b/components/openstack/nova/Makefile	Wed Sep 07 14:48:42 2016 -0700
@@ -26,20 +26,20 @@
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		nova
-COMPONENT_CODENAME=	kilo
-COMPONENT_VERSION=	2015.1.2
-COMPONENT_BE_VERSION=	2015.1
+COMPONENT_CODENAME=	mitaka
+COMPONENT_VERSION=	13.1.0
+COMPONENT_BE_VERSION=	2016.1
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:8ea47c076367dec47d7bea89210f260da64171be5adf559ced8514d5fdb6c453
-COMPONENT_ARCHIVE_URL=	http://launchpad.net/$(COMPONENT_NAME)/$(COMPONENT_CODENAME)/$(COMPONENT_VERSION)/+download/$(COMPONENT_ARCHIVE)
+    sha256:2c44b0f015f48348d768abff0e0fc90c6f8faf46743cae94736d77704f249368
+COMPONENT_ARCHIVE_URL=	\
+    https://tarballs.openstack.org/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_SIG_URL=	$(COMPONENT_ARCHIVE_URL).asc
 COMPONENT_PROJECT_URL=	http://www.openstack.org/
 COMPONENT_BUGDB=	service/nova
-IPS_COMPONENT_VERSION=	0.$(COMPONENT_VERSION)
 
-TPNO=			25792
+TPNO=			30363
 
 PKG_VARS +=		COMPONENT_BE_VERSION
 
@@ -63,33 +63,32 @@
 # the proto directory for pkgdepend(1) to find.
 #
 COMPONENT_POST_INSTALL_ACTION += \
-	($(CP) \
-	    /dev/null $(PROTO_DIR)$(PYTHON_LIB)/nova/virt/libvirt/__init__.py; \
-	 $(MKDIR) $(PROTO_DIR)/lib/svc/manifest/application/openstack; \
-	 $(CP) \
-	     files/nova-api-ec2.xml \
-	     files/nova-api-metadata.xml \
-	     files/nova-api-osapi-compute.xml \
-	     files/nova-cert.xml \
-	     files/nova-compute.xml \
-	     files/nova-conductor.xml \
-	     files/nova-consoleauth.xml \
-	     files/nova-novncproxy.xml \
-	     files/nova-objectstore.xml \
-	     files/nova-scheduler.xml \
-	     files/nova-upgrade.xml \
-	     files/zone-vnc-console.xml \
-	     $(PROTO_DIR)/lib/svc/manifest/application/openstack; \
-	 $(CP) \
-	     files/network/solaris_net.py \
-	     $(PROTO_DIR)$(PYTHON_LIB)/nova/network; \
-	 $(MKDIR) $(PROTO_DIR)$(PYTHON_LIB)/nova/virt/solariszones; \
-	 $(CP) \
-	     files/solariszones/__init__.py \
-	     files/solariszones/driver.py \
-	     files/solariszones/sysconfig.py \
-	     $(PROTO_DIR)$(PYTHON_LIB)/nova/virt/solariszones); \
-	$(PYTHON) -m compileall $(PROTO_DIR)/$(PYTHON_VENDOR_PACKAGES)
+    ($(CP) /dev/null $(PROTO_DIR)$(PYTHON_LIB)/nova/virt/libvirt/__init__.py; \
+     $(MKDIR) $(PROTO_DIR)/lib/svc/manifest/application/openstack; \
+     $(CP) \
+	 files/nova-api-ec2.xml \
+	 files/nova-api-metadata.xml \
+	 files/nova-api-osapi-compute.xml \
+	 files/nova-cert.xml \
+	 files/nova-compute.xml \
+	 files/nova-conductor.xml \
+	 files/nova-consoleauth.xml \
+	 files/nova-novncproxy.xml \
+	 files/nova-objectstore.xml \
+	 files/nova-scheduler.xml \
+	 files/nova-upgrade.xml \
+	 files/zone-vnc-console.xml \
+	 $(PROTO_DIR)/lib/svc/manifest/application/openstack; \
+     $(CP) \
+	 files/network/solaris_net.py \
+	 $(PROTO_DIR)$(PYTHON_LIB)/nova/network; \
+     $(MKDIR) $(PROTO_DIR)$(PYTHON_LIB)/nova/virt/solariszones; \
+     $(CP) \
+	 files/solariszones/__init__.py \
+	 files/solariszones/driver.py \
+	 files/solariszones/sysconfig.py \
+	 $(PROTO_DIR)$(PYTHON_LIB)/nova/virt/solariszones); \
+    $(PYTHON) -m compileall $(PROTO_DIR)/$(PYTHON_VENDOR_PACKAGES)
 
 # common targets
 build:		$(BUILD_NO_ARCH)
@@ -98,7 +97,7 @@
 
 test:		$(NO_TESTS)
 
-system-test:    $(NO_TESTS)
+system-test:	$(NO_TESTS)
 
 
 REQUIRED_PACKAGES += cloud/openstack/openstack-common
@@ -106,11 +105,12 @@
 REQUIRED_PACKAGES += library/python/eventlet-27
 REQUIRED_PACKAGES += library/python/iniparse-27
 REQUIRED_PACKAGES += library/python/oslo.config-27
+REQUIRED_PACKAGES += library/python/oslo.log-27
+REQUIRED_PACKAGES += library/python/oslo.messaging-27
 REQUIRED_PACKAGES += library/python/oslo.serialization-27
 REQUIRED_PACKAGES += library/python/sqlalchemy-27
 REQUIRED_PACKAGES += library/python/sqlalchemy-migrate-27
 REQUIRED_PACKAGES += library/python/webob-27
-REQUIRED_PACKAGES += service/network/evs
 REQUIRED_PACKAGES += system/core-os
 REQUIRED_PACKAGES += system/file-system/zfs
 REQUIRED_PACKAGES += system/library/storage/suri
--- a/components/openstack/nova/files/nova-api	Wed Sep 07 14:48:42 2016 -0700
+++ b/components/openstack/nova/files/nova-api	Wed Sep 07 14:48:42 2016 -0700
@@ -1,6 +1,6 @@
 #!/usr/bin/python2.7
 
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 #    Licensed under the Apache License, Version 2.0 (the "License"); you may
 #    not use this file except in compliance with the License. You may obtain
@@ -17,14 +17,12 @@
 import os
 import sys
 
+from oslo_config import cfg
 import smf_include
 
-from oslo.config import cfg
-
 
 # name to script mapping for nova API
 MAPPING = {
-    "ec2": "/usr/lib/nova/nova-api-ec2",
     "metadata": "/usr/lib/nova/nova-api-metadata",
     "osapi_compute": "/usr/lib/nova/nova-api-os-compute"
 }
--- a/components/openstack/nova/files/nova-api-ec2.xml	Wed Sep 07 14:48:42 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
-<!--
- Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
-
- Licensed under the Apache License, Version 2.0 (the "License"); you may
- not use this file except in compliance with the License. You may obtain
- a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- License for the specific language governing permissions and limitations
- under the License.
-
- NOTE:  This service manifest is not editable; its contents will
- be overwritten by package or patch operations, including
- operating system upgrade.  Make customizations in a different
- file.
--->
-<service_bundle type="manifest" name="nova-api">
-
-  <service version="1" type="service"
-    name="application/openstack/nova/nova-api-ec2">
-
-    <dependency name='multiuser' grouping='require_all' restart_on='error'
-      type='service'>
-      <service_fmri value='svc:/milestone/multi-user:default' />
-    </dependency>
-
-    <dependency name='upgrade' grouping='require_all' restart_on='none'
-      type='service'>
-      <service_fmri
-        value='svc:/application/openstack/nova/nova-upgrade' />
-    </dependency>
-
-    <dependency name='ntp' grouping='optional_all' restart_on='none'
-      type='service'>
-      <service_fmri value='svc:/network/ntp'/>
-    </dependency>
-
-    <dependency name='rabbitmq' grouping='optional_all' restart_on='none'
-      type='service'>
-      <service_fmri value='svc:/application/rabbitmq'/>
-    </dependency>
-
-    <logfile_attributes permissions='600'/>
-
-    <exec_method timeout_seconds="60" type="method" name="start"
-      exec="/lib/svc/method/nova-api %m ec2">
-      <method_context>
-        <method_credential user='nova' group='nova' />
-      </method_context>
-    </exec_method>
-    <exec_method timeout_seconds="60" type="method" name="stop"
-      exec=":kill"/>
-
-    <instance name='default' enabled='false'>
-      <!-- to start/stop/refresh the service -->
-      <property_group name='general' type='framework'>
-        <propval name='action_authorization' type='astring'
-                 value='solaris.smf.manage.nova' />
-        <propval name='value_authorization' type='astring'
-                 value='solaris.smf.value.nova' />
-      </property_group>
-    </instance>
-
-    <template>
-      <common_name>
-        <loctext xml:lang="C">
-          OpenStack Nova EC2 API Service
-        </loctext>
-      </common_name>
-      <description>
-        <loctext xml:lang="C">
-          nova-api-ec2 is a service that supports the Nova EC2 API.
-        </loctext>
-      </description>
-    </template>
-  </service>
-</service_bundle>
--- a/components/openstack/nova/files/nova-compute	Wed Sep 07 14:48:42 2016 -0700
+++ b/components/openstack/nova/files/nova-compute	Wed Sep 07 14:48:42 2016 -0700
@@ -56,7 +56,7 @@
     # retrieve the suspend path or just get the default
     suspend_default_path = '/var/share/zones/SYSsuspend'
     try:
-        suspend_path = parser.get('DEFAULT', 'zones_suspend_path')
+        suspend_path = parser.get('solariszones', 'zones_suspend_path')
     except ConfigParser.NoOptionError:
         suspend_path = suspend_default_path
 
@@ -73,7 +73,7 @@
     # retrieve the image cache path or just get the default
     imagecache_default_path = '/var/share/nova/images'
     try:
-        imagecache_path = parser.get('DEFAULT', 'glancecache_dirname')
+        imagecache_path = parser.get('solariszones', 'glancecache_dirname')
     except ConfigParser.NoOptionError:
         imagecache_path = imagecache_default_path
 
--- a/components/openstack/nova/files/nova-compute.xml	Wed Sep 07 14:48:42 2016 -0700
+++ b/components/openstack/nova/files/nova-compute.xml	Wed Sep 07 14:48:42 2016 -0700
@@ -1,7 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
 <!--
- Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 
  Licensed under the Apache License, Version 2.0 (the "License"); you may
  not use this file except in compliance with the License. You may obtain
@@ -36,13 +36,8 @@
         value='svc:/application/openstack/nova/nova-upgrade' />
     </dependency>
 
-    <dependency name='evs' grouping='require_all' restart_on='error'
-      type='service'>
-      <service_fmri value='svc:/network/evs:default' />
-    </dependency>
-
-    <dependency name='neutron-ovs-agent' grouping='optional_all' restart_on='none'
-      type='service'>
+    <dependency name='neutron-ovs-agent' grouping='optional_all'
+      restart_on='none' type='service'>
       <service_fmri value='svc:/application/openstack/neutron/neutron-openvswitch-agent:default' />
     </dependency>
 
--- a/components/openstack/nova/files/nova-conductor	Wed Sep 07 14:48:42 2016 -0700
+++ b/components/openstack/nova/files/nova-conductor	Wed Sep 07 14:48:42 2016 -0700
@@ -15,12 +15,11 @@
 #    under the License.
 
 import os
+from subprocess import CalledProcessError, check_call
 import sys
 
 import smf_include
 
-from subprocess import CalledProcessError, check_call
-
 
 def start():
     # sync the database to make sure it's ready
@@ -31,6 +30,14 @@
         print "Unable to create database for Nova:  %s" % err
         sys.exit(smf_include.SMF_EXIT_ERR_CONFIG)
 
+    # sync the database to make sure it's ready
+    cmd = ["/usr/bin/nova-manage", "api_db", "sync"]
+    try:
+        check_call(cmd)
+    except CalledProcessError as err:
+        print "Unable to create nova_api database for Nova:  %s" % err
+        sys.exit(smf_include.SMF_EXIT_ERR_CONFIG)
+
     smf_include.smf_subprocess("/usr/lib/nova/nova-conductor")
 
 if __name__ == "__main__":
--- a/components/openstack/nova/files/nova-objectstore	Wed Sep 07 14:48:42 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-#!/usr/bin/python2.7
-
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import os
-
-import smf_include
-
-
-def start():
-    smf_include.smf_subprocess("/usr/lib/nova/nova-objectstore")
-
-if __name__ == "__main__":
-    os.putenv("LC_ALL", "C")
-    smf_include.smf_main()
--- a/components/openstack/nova/files/nova-objectstore.xml	Wed Sep 07 14:48:42 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
-<!--
- Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
-
- Licensed under the Apache License, Version 2.0 (the "License"); you may
- not use this file except in compliance with the License. You may obtain
- a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- License for the specific language governing permissions and limitations
- under the License.
-
- NOTE:  This service manifest is not editable; its contents will
- be overwritten by package or patch operations, including
- operating system upgrade.  Make customizations in a different
- file.
--->
-<service_bundle type="manifest" name="nova-objectstore">
-
-  <service version="1" type="service"
-    name="application/openstack/nova/nova-objectstore">
-
-    <dependency name='multiuser' grouping='require_all' restart_on='error'
-      type='service'>
-      <service_fmri value='svc:/milestone/multi-user:default' />
-    </dependency>
-
-    <dependency name='upgrade' grouping='require_all' restart_on='none'
-      type='service'>
-      <service_fmri
-        value='svc:/application/openstack/nova/nova-upgrade' />
-    </dependency>
-
-    <dependency name='ntp' grouping='optional_all' restart_on='none'
-      type='service'>
-      <service_fmri value='svc:/network/ntp'/>
-    </dependency>
-
-    <dependency name='rabbitmq' grouping='optional_all' restart_on='none'
-      type='service'>
-      <service_fmri value='svc:/application/rabbitmq'/>
-    </dependency>
-
-    <logfile_attributes permissions='600'/>
-
-    <exec_method timeout_seconds="60" type="method" name="start"
-      exec="/lib/svc/method/nova-objectstore %m">
-      <method_context>
-        <method_credential user='nova' group='nova' />
-      </method_context>
-    </exec_method>
-    <exec_method timeout_seconds="60" type="method" name="stop"
-      exec=":kill"/>
-
-    <instance name='default' enabled='false'>
-      <!-- to start/stop/refresh the service -->
-      <property_group name='general' type='framework'>
-        <propval name='action_authorization' type='astring'
-                 value='solaris.smf.manage.nova' />
-        <propval name='value_authorization' type='astring'
-                 value='solaris.smf.value.nova' />
-      </property_group>
-    </instance>
-
-    <template>
-      <common_name>
-        <loctext xml:lang="C">
-          OpenStack Nova Object Store Service
-        </loctext>
-      </common_name>
-      <description>
-        <loctext xml:lang="C">
-          The nova-objectstore service provides an S3 interface for registering
-          images onto the Glance image management service.
-        </loctext>
-      </description>
-    </template>
-  </service>
-</service_bundle>
--- a/components/openstack/nova/files/nova-upgrade	Wed Sep 07 14:48:42 2016 -0700
+++ b/components/openstack/nova/files/nova-upgrade	Wed Sep 07 14:48:42 2016 -0700
@@ -28,88 +28,91 @@
     move_conf
 
 NOVA_CONF_MAPPINGS = {
-    # Deprecated group/name for Kilo
+    # Deprecated group/name for Liberty
     ('DEFAULT', 'network_device_mtu'): (None, None),
-    ('DEFAULT', 'log-format'): (None, None),
-    ('DEFAULT', 'use-syslog'): (None, None),
-    ('cinder', 'http_timeout'): ('cinder', 'timeout'),
+    ('DEFAULT', 'vnc_keymap'): ('vnc', 'keymap'),
+    ('DEFAULT', 'vnc_enabled'): ('vnc', 'enabled'),
+    ('DEFAULT', 'xvpvncproxy_base_url'): ('vnc', 'xvpvncproxy_base_url'),
     ('ironic', 'client_log_level'): (None, None),
-    ('DEFAULT', 'amqp_durable_queues'):
-        ('oslo_messaging_qpid', 'amqp_durable_queues'),
-    ('DEFAULT', 'amqp_auto_delete'):
-        ('oslo_messaging_qpid', 'amqp_auto_delete'),
-    ('DEFAULT', 'rpc_conn_pool_size'):
-        ('oslo_messaging_qpid', 'rpc_conn_pool_size'),
-    ('DEFAULT', 'qpid_hostname'):
-        ('oslo_messaging_qpid', 'qpid_hostname'),
-    ('DEFAULT', 'qpid_port'):
-        ('oslo_messaging_qpid', 'qpid_port'),
-    ('DEFAULT', 'qpid_hosts'):
-        ('oslo_messaging_qpid', 'qpid_hosts'),
-    ('DEFAULT', 'qpid_username'):
-        ('oslo_messaging_qpid', 'qpid_username'),
-    ('DEFAULT', 'qpid_password'):
-        ('oslo_messaging_qpid', 'qpid_password'),
-    ('DEFAULT', 'qpid_sasl_mechanisms'):
-        ('oslo_messaging_qpid', 'qpid_sasl_mechanisms'),
-    ('DEFAULT', 'qpid_heartbeat'):
-        ('oslo_messaging_qpid', 'qpid_heartbeat'),
-    ('DEFAULT', 'qpid_protocol'):
-        ('oslo_messaging_qpid', 'qpid_protocol'),
-    ('DEFAULT', 'qpid_tcp_nodelay'):
-        ('oslo_messaging_qpid', 'qpid_tcp_nodelay'),
-    ('DEFAULT', 'qpid_receiver_capacity'):
-        ('oslo_messaging_qpid', 'qpid_receiver_capacity'),
-    ('DEFAULT', 'qpid_topology_version'):
-        ('oslo_messaging_qpid', 'qpid_topology_version'),
-    ('DEFAULT', 'kombu_ssl_version'):
-        ('oslo_messaging_rabbit', 'kombu_ssl_version'),
-    ('DEFAULT', 'kombu_ssl_keyfile'):
-        ('oslo_messaging_rabbit', 'kombu_ssl_keyfile'),
-    ('DEFAULT', 'kombu_ssl_certfile'):
-        ('oslo_messaging_rabbit', 'kombu_ssl_certfile'),
-    ('DEFAULT', 'kombu_ssl_ca_certs'):
-        ('oslo_messaging_rabbit', 'kombu_ssl_ca_certs'),
-    ('DEFAULT', 'kombu_reconnect_delay'):
-        ('oslo_messaging_rabbit', 'kombu_reconnect_delay'),
-    ('DEFAULT', 'rabbit_host'):
-        ('oslo_messaging_rabbit', 'rabbit_host'),
-    ('DEFAULT', 'rabbit_port'):
-        ('oslo_messaging_rabbit', 'rabbit_port'),
-    ('DEFAULT', 'rabbit_hosts'):
-        ('oslo_messaging_rabbit', 'rabbit_hosts'),
-    ('DEFAULT', 'rabbit_use_ssl'):
-        ('oslo_messaging_rabbit', 'rabbit_use_ssl'),
-    ('DEFAULT', 'rabbit_userid'):
-        ('oslo_messaging_rabbit', 'rabbit_userid'),
-    ('DEFAULT', 'rabbit_password'):
-        ('oslo_messaging_rabbit', 'rabbit_password'),
-    ('DEFAULT', 'rabbit_login_method'):
-        ('oslo_messaging_rabbit', 'rabbit_login_method'),
-    ('DEFAULT', 'rabbit_virtual_host'):
-        ('oslo_messaging_rabbit', 'rabbit_virtual_host'),
-    ('DEFAULT', 'rabbit_retry_backoff'):
-        ('oslo_messaging_rabbit', 'rabbit_retry_backoff'),
-    ('DEFAULT', 'rabbit_max_retries'):
-        ('oslo_messaging_rabbit', 'rabbit_max_retries'),
-    ('DEFAULT', 'rabbit_ha_queues'):
-        ('oslo_messaging_rabbit', 'rabbit_ha_queues'),
-    ('DEFAULT', 'fake_rabbit'):
-        ('oslo_messaging_rabbit', 'fake_rabbit'),
-    ('DEFAULT', 'osapi_max_request_body_size'):
-        ('oslo_middleware', 'max_request_body_size'),
-    ('neutron', 'ca_certificates_file'): ('neutron', 'cafile'),
+    ('neutron', 'admin_username'): ('neutron', 'username'),
+    ('DEFAULT', 'ssl_ca_file'): ('ssl', 'ca_file'),
+    ('osapi_v21', 'enabled'): (None, None),
+    ('DEFAULT', 'novncproxy_base_url'): ('vnc', 'novncproxy_base_url'),
     ('neutron', 'admin_user_id'): (None, None),
     ('neutron', 'admin_tenant_id'): (None, None),
+    ('DEFAULT', 'ssl_cert_file'): ('ssl', 'cert_file'),
     ('DEFAULT', 'log_format'): (None, None),
-    ('cinder', 'api_insecure'): ('cinder', 'insecure'),
+    ('DEFAULT', 'vncserver_proxyclient_address'):
+        ('vnc', 'vncserver_proxyclient_address'),
+    ('osapi_v21', 'extensions_blacklist'): (None, None),
+    ('workarounds', 'destroy_after_evacuate'): (None, None),
+    ('neutron', 'admin_tenant_name'): ('neutron', 'tenant_name'),
+    ('DEFAULT', 'osapi_compute_ext_list'): (None, None),
+    ('DEFAULT', 'rpc_thread_pool_size'):
+        ('DEFAULT', 'executor_thread_pool_size'),
+    ('DEFAULT', 'vncserver_listen'): ('vnc', 'vncserver_listen'),
+    ('neutron', 'admin_password'): ('neutron', 'password'),
+    ('DEFAULT', 'ssl_key_file'): ('ssl', 'key_file'),
+    ('neutron', 'admin_auth_url'): ('neutron', 'auth_url'),
+    # Deprecated group/name for Mitaka
+    ('DEFAULT', 'cert_manager'): (None, None),
+    ('DEFAULT', 'compute_available_monitors'): (None, None),
+    ('DEFAULT', 'compute_manager'): (None, None),
+    ('DEFAULT', 'compute_resources'): (None, None),
+    ('DEFAULT', 'compute_stats_class'): (None, None),
+    ('DEFAULT', 'console_manager'): (None, None),
+    ('DEFAULT', 'consoleauth_manager'): (None, None),
+    ('DEFAULT', 'db_driver'): (None, None),
+    ('DEFAULT', 'memcached_servers'): (None, None),
+    ('DEFAULT', 'metadata_manager'): (None, None),
+    ('DEFAULT', 'network_api_class'): (None, None),
+    ('DEFAULT', 'network_device_mtu'): (None, None),
+    ('DEFAULT', 'osapi_compute_ext_list'): (None, None),
+    ('DEFAULT', 'scheduler_manager'): (None, None),
+    ('DEFAULT', 'security_group_api'): (None, None),
     ('DEFAULT', 'share_dhcp_address'): (None, None),
-    ('neutron', 'api_insecure'): ('neutron', 'insecure'),
-    ('cinder', 'ca_certificates_file'): ('cinder', 'cafile'),
-    ('neutron', 'url_timeout'): ('neutron', 'timeout'),
-    ('neutron', 'allow_duplicate_networks'): (None, None),
+    ('DEFAULT', 'use_syslog'): (None, None),
+    ('DEFAULT', 'vendordata_driver'): (None, None),
+    ('DEFAULT', 'volume_api_class'): (None, None),
+    ('cells', 'manager'): (None, None),
+    ('conductor', 'manager'): (None, None),
+    ('conductor', 'use_local'): (None, None),
+    ('glance', 'host'): (None, None),
+    ('glance', 'port'): (None, None),
+    ('glance', 'protocol'): (None, None),
+    ('hyperv', 'force_volumeutils_v1'): (None, None),
+    ('ironic', 'admin_auth_token'): (None, None),
+    ('ironic', 'api_version'): (None, None),
+    ('ironic', 'client_log_level'): (None, None),
+    ('libvirt', 'remove_unused_kernels'): (None, None),
+    ('osapi_v21', 'enabled'): (None, None),
+    ('osapi_v21', 'extensions_blacklist'): (None, None),
+    ('osapi_v21', 'extensions_whitelist'): (None, None),
+    ('osapi_v21', 'project_id_regex'): (None, None),
+    ('serial_console', 'listen'): (None, None),
+    ('workarounds', 'destroy_after_evacuate'): (None, None),
+    # move entries from DEFAULT.nova.virt.solariszones.driver to its own
+    # section
+    ('DEFAULT', 'boot_volume_type'): ('solariszones', 'boot_volume_type'),
+    ('DEFAULT', 'boot_volume_az'): ('solariszones', 'boot_volume_az'),
+    ('DEFAULT', 'glancecache_dirname'):
+        ('solariszones', 'glancecache_dirname'),
+    ('DEFAULT', 'live_migration_cipher'):
+        ('solariszones', 'live_migration_cipher'),
+    ('DEFAULT', 'solariszones_snapshots_directory'):
+        ('solariszones', 'solariszones_snapshots_directory'),
+    ('DEFAULT', 'zones_suspend_path'): ('solariszones', 'zones_suspend_path'),
+    ('DEFAULT', 'solariszones_boot_options'):
+    ('solariszones', 'solariszones_boot_options'),
 }
 
+
+API_PASTE_MAPPING = {
+    ('composite:osapi_compute', '/v1.1'): (None, None),
+    ('composite:osapi_compute', '/v3'): (None, None),
+}
+
+
 NOVA_CONF_EXCEPTIONS = [
     ('DEFAULT', 'ec2_workers'),
     ('DEFAULT', 'osapi_compute_workers'),
@@ -126,6 +129,12 @@
     ('keystone_authtoken', 'admin_password'),
     ('keystone_authtoken', 'admin_tenant_name'),
     ('neutron', 'service_metadata_proxy'),
+    ('neutron', 'username'),
+    ('neutron', 'password'),
+    ('neutron', 'tenant_name'),
+    ('neutron', 'auth_url'),
+
+
 ]
 
 
@@ -155,65 +164,11 @@
         # backup all the old configuration files
         create_backups('/etc/nova')
 
-        modify_conf('/etc/nova/api-paste.ini')
+        modify_conf('/etc/nova/api-paste.ini', API_PASTE_MAPPING)
         modify_conf('/etc/nova/logging.conf')
-
-        # It's possible that nova.conf has database.connection commented out
-        # (to use the default value).  If it is, and none of other deprecated
-        # values are set, manually set database.connection in the new conf
-        # file.
-        if os.path.exists('/etc/nova/nova.conf.new'):
-
-            # open the previous version
-            old = iniparse.ConfigParser()
-            old.readfp(open('/etc/nova/nova.conf'))
-
-            # open the new version
-            new = iniparse.ConfigParser()
-            new.readfp(open('/etc/nova/nova.conf.new'))
-
-            options = [
-                ('database', 'sql_connection'),
-                ('sql', 'connection'),
-                ('database', 'connection'),
-                ('DEFAULT', 'sql_connection')
-            ]
-            test = lambda x: old.has_section(x[0]) and \
-                old.has_option(x[0], x[1])
-
-            if not any(map(test, options)):
-                if old.has_option('DEFAULT', 'state_path'):
-                    state_path = old.get('DEFAULT', 'state_path')
-                else:
-                    state_path = '/var/lib/nova'
-
-                if old.has_option('DEFAULT', 'sqlite_db'):
-                    sqlite_db = old.get('DEFAULT', 'sqlite_db')
-                else:
-                    sqlite_db = 'nova.sqlite'
-
-                new.set('database', 'connection',
-                        'sqlite:///%s/%s' % (state_path, sqlite_db))
-
-                with open('/etc/nova/nova.conf.new', 'w+') as fh:
-                    new.write(fh)
-
         modify_conf('/etc/nova/nova.conf', NOVA_CONF_MAPPINGS,
                     NOVA_CONF_EXCEPTIONS)
 
-    config = iniparse.RawConfigParser()
-    config.read('/etc/nova/nova.conf')
-    # In certain cases the database section does not exist and the
-    # default database chosen is sqlite.
-    if config.has_section('database'):
-        db_connection = config.get('database', 'connection')
-
-        if db_connection.startswith('mysql'):
-            engine = sqlalchemy.create_engine(db_connection)
-            if engine.url.username != '%SERVICE_USER%':
-                alter_mysql_tables(engine)
-                print "altered character set to utf8 in nova tables"
-
     # update the current version
     check_call(['/usr/sbin/svccfg', '-s', os.environ['SMF_FMRI'], 'setprop',
                'config/upgrade-id', '=', pkg_ver])
--- a/components/openstack/nova/files/nova.conf	Wed Sep 07 14:48:42 2016 -0700
+++ b/components/openstack/nova/files/nova.conf	Wed Sep 07 14:48:42 2016 -0700
@@ -1,4170 +1,5935 @@
 [DEFAULT]
 
 #
-# Options defined in oslo.messaging
-#
-
-# ZeroMQ bind address. Should be a wildcard (*), an ethernet
-# interface, or IP. The "host" option should point or resolve
-# to this address. (string value)
-#rpc_zmq_bind_address=*
-
-# MatchMaker driver. (string value)
-#rpc_zmq_matchmaker=local
-
-# ZeroMQ receiver listening port. (integer value)
-#rpc_zmq_port=9501
-
-# Number of ZeroMQ contexts, defaults to 1. (integer value)
-#rpc_zmq_contexts=1
-
-# Maximum number of ingress messages to locally buffer per
-# topic. Default is unlimited. (integer value)
-#rpc_zmq_topic_backlog=<None>
-
-# Directory for holding IPC sockets. (string value)
-#rpc_zmq_ipc_dir=/var/run/openstack
-
-# Name of this node. Must be a valid hostname, FQDN, or IP
-# address. Must match "host" option, if running Nova. (string
-# value)
-#rpc_zmq_host=nova
-
-# Seconds to wait before a cast expires (TTL). Only supported
-# by impl_zmq. (integer value)
-#rpc_cast_timeout=30
-
-# Heartbeat frequency. (integer value)
-#matchmaker_heartbeat_freq=300
-
-# Heartbeat time-to-live. (integer value)
-#matchmaker_heartbeat_ttl=600
-
-# Size of RPC thread pool. (integer value)
-#rpc_thread_pool_size=64
-
-# Driver or drivers to handle sending notifications. (multi
-# valued)
-#notification_driver=
-
-# AMQP topic used for OpenStack notifications. (list value)
-# Deprecated group/name - [rpc_notifier2]/topics
-#notification_topics=notifications
-
-# Seconds to wait for a response from a call. (integer value)
-#rpc_response_timeout=60
-
-# A URL representing the messaging driver to use and its full
-# configuration. If not set, we fall back to the rpc_backend
-# option and driver specific configuration. (string value)
-#transport_url=<None>
-
-# The messaging driver to use, defaults to rabbit. Other
-# drivers include qpid and zmq. (string value)
-#rpc_backend=rabbit
-
-# The default exchange under which topics are scoped. May be
-# overridden by an exchange name specified in the
-# transport_url option. (string value)
-#control_exchange=openstack
-
-
-#
-# Options defined in oslo.log
-#
-
-# Print debugging output (set logging level to DEBUG instead
-# of default WARNING level). (boolean value)
-#debug=false
-
-# Print more verbose output (set logging level to INFO instead
-# of default WARNING level). (boolean value)
-#verbose=false
-
-# The name of a logging configuration file. This file is
-# appended to any existing logging configuration files. For
-# details about logging configuration files, see the Python
-# logging module documentation. (string value)
-# Deprecated group/name - [DEFAULT]/log_config
-#log_config_append=<None>
-
-# DEPRECATED. A logging.Formatter log message format string
-# which may use any of the available logging.LogRecord
-# attributes. This option is deprecated.  Please use
-# logging_context_format_string and
-# logging_default_format_string instead. (string value)
-#log_format=<None>
-
-# Format string for %%(asctime)s in log records. Default:
-# %(default)s . (string value)
-#log_date_format=%Y-%m-%d %H:%M:%S
-
-# (Optional) Name of log file to output to. If no default is
-# set, logging will go to stdout. (string value)
-# Deprecated group/name - [DEFAULT]/logfile
-#log_file=<None>
-
-# (Optional) The base directory used for relative --log-file
-# paths. (string value)
-# Deprecated group/name - [DEFAULT]/logdir
-#log_dir=<None>
-
-# Use syslog for logging. Existing syslog format is DEPRECATED
-# during I, and will change in J to honor RFC5424. (boolean
-# value)
-#use_syslog=false
-
-# (Optional) Enables or disables syslog rfc5424 format for
-# logging. If enabled, prefixes the MSG part of the syslog
-# message with APP-NAME (RFC5424). The format without the APP-
-# NAME is deprecated in I, and will be removed in J. (boolean
-# value)
-#use_syslog_rfc_format=false
-
-# Syslog facility to receive log lines. (string value)
-#syslog_log_facility=LOG_USER
-
-# Log output to standard error. (boolean value)
-#use_stderr=true
-
-# Format string to use for log messages with context. (string
-# value)
-#logging_context_format_string=%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
-
-# Format string to use for log messages without context.
-# (string value)
-#logging_default_format_string=%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
-
-# Data to append to log format when level is DEBUG. (string
-# value)
-#logging_debug_format_suffix=%(funcName)s %(pathname)s:%(lineno)d
-
-# Prefix each line of exception output with this format.
-# (string value)
-#logging_exception_prefix=%(asctime)s.%(msecs)03d %(process)d TRACE %(name)s %(instance)s
-
-# List of logger=LEVEL pairs. (list value)
-#default_log_levels=amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN
-
-# Enables or disables publication of error events. (boolean
-# value)
-#publish_errors=false
-
-# Enables or disables fatal status of deprecations. (boolean
-# value)
-#fatal_deprecations=false
-
-# The format for an instance that is passed with the log
-# message. (string value)
-#instance_format="[instance: %(uuid)s] "
-
-# The format for an instance UUID that is passed with the log
-# message. (string value)
-#instance_uuid_format="[instance: %(uuid)s] "
-
-
-#
-# Options defined in nova.availability_zones
-#
-
-# The availability_zone to show internal services under
-# (string value)
-#internal_service_availability_zone=internal
-
-# Default compute node availability_zone (string value)
-#default_availability_zone=nova
-
-
-#
-# Options defined in nova.crypto
-#
+# From nova
+#
+
+# Number of times to retry live-migration before failing. If == -1, try until
+# out of hosts. If == 0, only try once, no retries. (integer value)
+#migrate_max_retries = -1
+
+# The topic console auth proxy nodes listen on (string value)
+#consoleauth_topic = consoleauth
+
+# DEPRECATED: The driver to use for database access (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#db_driver = nova.db
+
+# Backend to use for IPv6 generation (string value)
+#ipv6_backend = rfc2462
+
+# The driver for servicegroup service. (string value)
+# Allowed values: db, mc
+#servicegroup_driver = db
+
+# Image ID used when starting up a cloudpipe vpn server (string value)
+#vpn_image_id = 0
+
+# Flavor for vpn instances (string value)
+#vpn_flavor = m1.tiny
+
+# Template for cloudpipe instance boot script (string value)
+#boot_script_template = $pybasedir/nova/cloudpipe/bootscript.template
+
+# Network to push into openvpn config (string value)
+#dmz_net = 10.0.0.0
+
+# Netmask to push into openvpn config (string value)
+#dmz_mask = 255.255.255.0
+
+# Suffix to add to project name for vpn key and secgroups (string value)
+#vpn_key_suffix = -vpn
+
+# This is the filename that will be used for storing websocket frames received
+# and sent by a proxy service (like VNC, spice, serial) running on this host.
+# If this is not set (default), no recording will be done. (string value)
+#record = <None>
+
+# Become a daemon (background process) (boolean value)
+#daemon = false
+
+# Disallow non-encrypted connections (boolean value)
+#ssl_only = false
+
+# Source is ipv6 (boolean value)
+#source_is_ipv6 = false
+
+# SSL certificate file (string value)
+#cert = self.pem
+
+# SSL key file (if separate from cert) (string value)
+#key = <None>
+
+# Run webserver on same port. Serve files from DIR. (string value)
+#web = /usr/share/spice-html5
+
+# Driver to use for the console proxy (string value)
+console_driver = nova.console.fake.FakeConsoleProxy
+
+# Stub calls to compute worker for tests (boolean value)
+#stub_compute = false
+
+# Publicly visible name for this console host (string value)
+#console_public_hostname =
+
+# The topic console proxy nodes listen on (string value)
+#console_topic = console
+
+# XVP conf template (string value)
+#console_xvp_conf_template = $pybasedir/nova/console/xvp.conf.template
+
+# Generated XVP conf file (string value)
+#console_xvp_conf = /etc/xvp.conf
+
+# XVP master process pid file (string value)
+#console_xvp_pid = /var/run/xvp.pid
+
+# XVP log file (string value)
+#console_xvp_log = /var/log/xvp.log
+
+# Port for XVP to multiplex VNC connections on (integer value)
+# Minimum value: 1
+# Maximum value: 65535
+#console_xvp_multiplex_port = 5900
+
+# How many seconds before deleting tokens (integer value)
+#console_token_ttl = 600
 
 # Filename of root CA (string value)
-#ca_file=cacert.pem
+#ca_file = cacert.pem
 
 # Filename of private key (string value)
-#key_file=private/cakey.pem
+#key_file = private/cakey.pem
 
 # Filename of root Certificate Revocation List (string value)
-#crl_file=crl.pem
+#crl_file = crl.pem
 
 # Where we keep our keys (string value)
-#keys_path=$state_path/keys
+#keys_path = $state_path/keys
 
 # Where we keep our root CA (string value)
-#ca_path=$state_path/CA
+#ca_path = $state_path/CA
 
 # Should we use a CA for each project? (boolean value)
-#use_project_ca=false
-
-# Subject for certificate for users, %s for project, user,
-# timestamp (string value)
-#user_cert_subject=/C=US/ST=California/O=OpenStack/OU=NovaDev/CN=%.16s-%.16s-%s
-
-# Subject for certificate for projects, %s for project,
-# timestamp (string value)
-#project_cert_subject=/C=US/ST=California/O=OpenStack/OU=NovaDev/CN=project-ca-%.16s-%s
-
-
-#
-# Options defined in nova.exception
-#
+#use_project_ca = false
+
+# Subject for certificate for users, %s for project, user, timestamp (string
+# value)
+#user_cert_subject = /C=US/ST=California/O=OpenStack/OU=NovaDev/CN=%.16s-%.16s-%s
+
+# Subject for certificate for projects, %s for project, timestamp (string
+# value)
+#project_cert_subject = /C=US/ST=California/O=OpenStack/OU=NovaDev/CN=project-ca-%.16s-%s
+
+# Services to be added to the available pool on create (boolean value)
+#enable_new_services = true
+
+# Template string to be used to generate instance names (string value)
+#instance_name_template = instance-%08x
+
+# Template string to be used to generate snapshot names (string value)
+#snapshot_name_template = snapshot-%s
+
+# When set, compute API will consider duplicate hostnames invalid within the
+# specified scope, regardless of case. Should be empty, "project" or "global".
+# (string value)
+#osapi_compute_unique_server_name_scope =
 
 # Make exception message format errors fatal (boolean value)
-#fatal_exception_format_errors=false
-
-
-#
-# Options defined in nova.netconf
-#
+#fatal_exception_format_errors = false
 
 # IP address of this host (string value)
-#my_ip=10.0.0.1
+#my_ip =
 
 # Block storage IP address of this host (string value)
-#my_block_storage_ip=$my_ip
-
-# Name of this node.  This can be an opaque identifier.  It is
-# not necessarily a hostname, FQDN, or IP address. However,
-# the node name must be valid within an AMQP key, and if using
-# ZeroMQ, a valid hostname, FQDN, or IP address (string value)
-#host=nova
+#my_block_storage_ip = $my_ip
+
+# Name of this node.  This can be an opaque identifier.  It is not necessarily
+# a hostname, FQDN, or IP address. However, the node name must be valid within
+# an AMQP key, and if using ZeroMQ, a valid hostname, FQDN, or IP address
+# (string value)
+#host =
 
 # Use IPv6 (boolean value)
-#use_ipv6=false
-
-
-#
-# Options defined in nova.notifications
-#
-
-# If set, send compute.instance.update notifications on
-# instance state changes.  Valid values are None for no
-# notifications, "vm_state" for notifications on VM state
-# changes, or "vm_and_task_state" for notifications on VM and
-# task state changes. (string value)
-#notify_on_state_change=<None>
-
-# If set, send api.fault notifications on caught exceptions in
-# the API service. (boolean value)
-#notify_api_faults=false
-
-# Default notification level for outgoing notifications
-# (string value)
-#default_notification_level=INFO
-
-# Default publisher_id for outgoing notifications (string
-# value)
-#default_publisher_id=<None>
-
-
-#
-# Options defined in nova.paths
-#
-
-# Directory where the nova python module is installed (string
-# value)
-pybasedir=/usr/lib/python2.7/vendor-packages
+#use_ipv6 = false
+
+# If set, send compute.instance.update notifications on instance state changes.
+# Valid values are None for no notifications, "vm_state" for notifications on
+# VM state changes, or "vm_and_task_state" for notifications on VM and task
+# state changes. (string value)
+#notify_on_state_change = <None>
+
+# If set, send api.fault notifications on caught exceptions in the API service.
+# (boolean value)
+#notify_api_faults = false
+
+# Default notification level for outgoing notifications (string value)
+# Allowed values: DEBUG, INFO, WARN, ERROR, CRITICAL
+#default_notification_level = INFO
+
+# Default publisher_id for outgoing notifications (string value)
+#default_publisher_id = <None>
+
+# DEPRECATED: THIS VALUE SHOULD BE SET WHEN CREATING THE NETWORK. If True in
+# multi_host mode, all compute hosts share the same dhcp address. The same IP
+# address used for DHCP will be added on each nova-network node which is only
+# visible to the vms on the same host. (boolean value)
+#share_dhcp_address = false
+
+# DEPRECATED: THIS VALUE SHOULD BE SET WHEN CREATING THE NETWORK. MTU setting
+# for network interface. (integer value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#network_device_mtu = <None>
+
+# Directory where the nova python module is installed (string value)
+pybasedir = /usr/lib/python2.7/vendor-packages
 
 # Directory where nova binaries are installed (string value)
-bindir=/usr/bin
-
-# Top-level directory for maintaining nova's state (string
-# value)
-state_path=/var/lib/nova
-
-
-#
-# Options defined in nova.quota
-#
+bindir = /usr/lib/nova
+
+# Top-level directory for maintaining nova's state (string value)
+state_path = /var/lib/nova
 
 # Number of instances allowed per project (integer value)
-#quota_instances=10
+#quota_instances = 10
 
 # Number of instance cores allowed per project (integer value)
-#quota_cores=20
-
-# Megabytes of instance RAM allowed per project (integer
-# value)
-#quota_ram=51200
+#quota_cores = 20
+
+# Megabytes of instance RAM allowed per project (integer value)
+#quota_ram = 51200
 
 # Number of floating IPs allowed per project (integer value)
-#quota_floating_ips=10
-
-# Number of fixed IPs allowed per project (this should be at
-# least the number of instances allowed) (integer value)
-#quota_fixed_ips=-1
-
-# Number of metadata items allowed per instance (integer
-# value)
-#quota_metadata_items=128
+#quota_floating_ips = 10
+
+# Number of fixed IPs allowed per project (this should be at least the number
+# of instances allowed) (integer value)
+#quota_fixed_ips = -1
+
+# Number of metadata items allowed per instance (integer value)
+#quota_metadata_items = 128
 
 # Number of injected files allowed (integer value)
-#quota_injected_files=5
+#quota_injected_files = 5
 
 # Number of bytes allowed per injected file (integer value)
-#quota_injected_file_content_bytes=10240
+#quota_injected_file_content_bytes = 10240
 
 # Length of injected file path (integer value)
-#quota_injected_file_path_length=255
+#quota_injected_file_path_length = 255
 
 # Number of security groups per project (integer value)
-#quota_security_groups=10
+#quota_security_groups = 10
 
 # Number of security rules per security group (integer value)
-#quota_security_group_rules=20
+#quota_security_group_rules = 20
 
 # Number of key pairs per user (integer value)
-#quota_key_pairs=100
+#quota_key_pairs = 100
 
 # Number of server groups per project (integer value)
-#quota_server_groups=10
+#quota_server_groups = 10
 
 # Number of servers per server group (integer value)
-#quota_server_group_members=10
-
-# Number of seconds until a reservation expires (integer
-# value)
-#reservation_expire=86400
-
-# Count of reservations until usage is refreshed. This
-# defaults to 0(off) to avoid additional load but it is useful
-# to turn on to help keep quota usage up to date and reduce
-# the impact of out of sync usage issues. (integer value)
-#until_refresh=0
-
-# Number of seconds between subsequent usage refreshes. This
-# defaults to 0(off) to avoid additional load but it is useful
-# to turn on to help keep quota usage up to date and reduce
-# the impact of out of sync usage issues. Note that quotas are
-# not updated on a periodic task, they will update on a new
-# reservation if max_age has passed since the last reservation
-# (integer value)
-#max_age=0
+#quota_server_group_members = 10
+
+# Number of seconds until a reservation expires (integer value)
+#reservation_expire = 86400
+
+# Count of reservations until usage is refreshed. This defaults to 0(off) to
+# avoid additional load but it is useful to turn on to help keep quota usage up
+# to date and reduce the impact of out of sync usage issues. (integer value)
+#until_refresh = 0
+
+# Number of seconds between subsequent usage refreshes. This defaults to 0(off)
+# to avoid additional load but it is useful to turn on to help keep quota usage
+# up to date and reduce the impact of out of sync usage issues. Note that
+# quotas are not updated on a periodic task, they will update on a new
+# reservation if max_age has passed since the last reservation (integer value)
+#max_age = 0
 
 # Default driver to use for quota checks (string value)
-#quota_driver=nova.quota.DbQuotaDriver
-
-
-#
-# Options defined in nova.service
-#
-
-# Seconds between nodes reporting state to datastore (integer
-# value)
-#report_interval=10
+#quota_driver = nova.quota.DbQuotaDriver
+
+# Seconds between nodes reporting state to datastore (integer value)
+#report_interval = 10
 
 # Enable periodic tasks (boolean value)
-#periodic_enable=true
-
-# Range of seconds to randomly delay when starting the
-# periodic task scheduler to reduce stampeding. (Disable by
-# setting to 0) (integer value)
-#periodic_fuzzy_delay=60
+#periodic_enable = true
+
+# Range of seconds to randomly delay when starting the periodic task scheduler
+# to reduce stampeding. (Disable by setting to 0) (integer value)
+#periodic_fuzzy_delay = 60
 
 # A list of APIs to enable by default (list value)
-#enabled_apis=ec2,osapi_compute,metadata
+#enabled_apis = osapi_compute,metadata
 
 # A list of APIs with enabled SSL (list value)
-#enabled_ssl_apis=
-
-# The IP address on which the EC2 API will listen. (string
-# value)
-#ec2_listen=0.0.0.0
-
-# The port on which the EC2 API will listen. (integer value)
-#ec2_listen_port=8773
-
-# Number of workers for EC2 API service. The default will be
-# equal to the number of CPUs available. (integer value)
-ec2_workers=1
-
-# The IP address on which the OpenStack API will listen.
-# (string value)
-#osapi_compute_listen=0.0.0.0
-
-# The port on which the OpenStack API will listen. (integer
-# value)
-#osapi_compute_listen_port=8774
-
-# Number of workers for OpenStack API service. The default
-# will be the number of CPUs available. (integer value)
-osapi_compute_workers=1
-
-# OpenStack metadata service manager (string value)
-#metadata_manager=nova.api.manager.MetadataManager
-
-# The IP address on which the metadata API will listen.
-# (string value)
-#metadata_listen=0.0.0.0
-
-# The port on which the metadata API will listen. (integer
-# value)
-#metadata_listen_port=8775
-
-# Number of workers for metadata service. The default will be
-# the number of CPUs available. (integer value)
-metadata_workers=1
-
-# Full class name for the Manager for compute (string value)
-#compute_manager=nova.compute.manager.ComputeManager
-
-# Full class name for the Manager for console proxy (string
-# value)
-#console_manager=nova.console.manager.ConsoleProxyManager
-
-# Manager for console auth (string value)
-#consoleauth_manager=nova.consoleauth.manager.ConsoleAuthManager
-
-# Full class name for the Manager for cert (string value)
-#cert_manager=nova.cert.manager.CertManager
+#enabled_ssl_apis =
+
+# The IP address on which the OpenStack API will listen. (string value)
+#osapi_compute_listen = 0.0.0.0
+
+# The port on which the OpenStack API will listen. (integer value)
+# Minimum value: 1
+# Maximum value: 65535
+#osapi_compute_listen_port = 8774
+
+# Number of workers for OpenStack API service. The default will be the number
+# of CPUs available. (integer value)
+osapi_compute_workers = 1
+
+# DEPRECATED: OpenStack metadata service manager (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#metadata_manager = nova.api.manager.MetadataManager
+
+# The IP address on which the metadata API will listen. (string value)
+#metadata_listen = 0.0.0.0
+
+# The port on which the metadata API will listen. (integer value)
+# Minimum value: 1
+# Maximum value: 65535
+#metadata_listen_port = 8775
+
+# Number of workers for metadata service. The default will be the number of
+# CPUs available. (integer value)
+metadata_workers = 1
+
+# DEPRECATED: Full class name for the Manager for compute (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#compute_manager = nova.compute.manager.ComputeManager
+
+# DEPRECATED: Full class name for the Manager for console proxy (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#console_manager = nova.console.manager.ConsoleProxyManager
+
+# DEPRECATED: Manager for console auth (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#consoleauth_manager = nova.consoleauth.manager.ConsoleAuthManager
+
+# DEPRECATED: Full class name for the Manager for cert (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#cert_manager = nova.cert.manager.CertManager
 
 # Full class name for the Manager for network (string value)
-#network_manager=nova.network.manager.VlanManager
-
-# Full class name for the Manager for scheduler (string value)
-#scheduler_manager=nova.scheduler.manager.SchedulerManager
-
-# Maximum time since last check-in for up service (integer
-# value)
-#service_down_time=60
-
-
-#
-# Options defined in nova.utils
-#
-
-# Whether to log monkey patching (boolean value)
-#monkey_patch=false
+#network_manager = nova.network.manager.VlanManager
+
+# DEPRECATED: Full class name for the Manager for scheduler (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#scheduler_manager = nova.scheduler.manager.SchedulerManager
+
+# Maximum time since last check-in for up service (integer value)
+#service_down_time = 60
+
+# Whether to apply monkey patching (boolean value)
+#monkey_patch = false
 
 # List of modules/decorators to monkey patch (list value)
-#monkey_patch_modules=nova.api.ec2.cloud:nova.notifications.notify_decorator,nova.compute.api:nova.notifications.notify_decorator
+#monkey_patch_modules = nova.compute.api:nova.notifications.notify_decorator
 
 # Length of generated instance admin passwords (integer value)
-#password_length=12
-
-# Time period to generate instance usages for.  Time period
-# must be hour, day, month or year (string value)
-#instance_usage_audit_period=month
-
-# Path to the rootwrap configuration file to use for running
-# commands as root (string value)
-#rootwrap_config=/etc/nova/rootwrap.conf
-
-# Explicitly specify the temporary working directory (string
-# value)
-#tempdir=<None>
-
-
-#
-# Options defined in nova.wsgi
-#
-
-# File name for the paste.deploy config for nova-api (string
-# value)
-#api_paste_config=api-paste.ini
-
-# A python format string that is used as the template to
-# generate log lines. The following values can be formatted
-# into it: client_ip, date_time, request_line, status_code,
-# body_length, wall_seconds. (string value)
-#wsgi_log_format=%(client_ip)s "%(request_line)s" status: %(status_code)s len: %(body_length)s time: %(wall_seconds).7f
-
-# CA certificate file to use to verify connecting clients
+#password_length = 12
+
+# Time period to generate instance usages for.  Time period must be hour, day,
+# month or year (string value)
+#instance_usage_audit_period = month
+
+# Start and use a daemon that can run the commands that need to be run with
+# root privileges. This option is usually enabled on nodes that run nova
+# compute processes (boolean value)
+#use_rootwrap_daemon = false
+
+# Path to the rootwrap configuration file to use for running commands as root
 # (string value)
-#ssl_ca_file=<None>
-
-# SSL certificate of API server (string value)
-#ssl_cert_file=<None>
-
-# SSL private key of API server (string value)
-#ssl_key_file=<None>
-
-# Sets the value of TCP_KEEPIDLE in seconds for each server
-# socket. Not supported on OS X. (integer value)
-#tcp_keepidle=600
-
-# Size of the pool of greenthreads used by wsgi (integer
-# value)
-#wsgi_default_pool_size=1000
-
-# Maximum line size of message headers to be accepted.
-# max_header_line may need to be increased when using large
-# tokens (typically those generated by the Keystone v3 API
-# with big service catalogs). (integer value)
-#max_header_line=16384
-
-# If False, closes the client socket connection explicitly.
-# (boolean value)
-#wsgi_keep_alive=true
-
-# Timeout for client connections' socket operations. If an
-# incoming connection is idle for this number of seconds it
-# will be closed. A value of '0' means wait forever. (integer
-# value)
-#client_socket_timeout=900
-
-
-#
-# Options defined in nova.api.auth
-#
-
-# Whether to use per-user rate limiting for the api. This
-# option is only used by v2 api. Rate limiting is removed from
-# v3 api. (boolean value)
-#api_rate_limit=false
-
-#  The strategy to use for auth: keystone, noauth
-# (deprecated), or noauth2. Both noauth and noauth2 are
-# designed for testing only, as they do no actual credential
-# checking. noauth provides administrative credentials
-# regardless of the passed in user, noauth2 only does if
-# 'admin' is specified as the username.  (string value)
-#auth_strategy=keystone
-
-# Treat X-Forwarded-For as the canonical remote address. Only
-# enable this if you have a sanitizing proxy. (boolean value)
-#use_forwarded_for=false
-
-
-#
-# Options defined in nova.api.ec2
-#
-
-# Number of failed auths before lockout. (integer value)
-#lockout_attempts=5
-
-# Number of minutes to lockout if triggered. (integer value)
-#lockout_minutes=15
-
-# Number of minutes for lockout window. (integer value)
-#lockout_window=15
-
-# URL to get token from ec2 request. (string value)
-#keystone_ec2_url=http://localhost:5000/v2.0/ec2tokens
-
-# Return the IP address as private dns hostname in describe
-# instances (boolean value)
-#ec2_private_dns_show_ip=false
-
-# Validate security group names according to EC2 specification
-# (boolean value)
-#ec2_strict_validation=true
-
-# Time in seconds before ec2 timestamp expires (integer value)
-#ec2_timestamp_expiry=300
-
-# Disable SSL certificate verification. (boolean value)
-#keystone_ec2_insecure=false
-
-
-#
-# Options defined in nova.api.ec2.cloud
-#
-
-# The IP address of the EC2 API server (string value)
-#ec2_host=$my_ip
-
-# The internal IP address of the EC2 API server (string value)
-#ec2_dmz_host=$my_ip
-
-# The port of the EC2 API server (integer value)
-#ec2_port=8773
-
-# The protocol to use when connecting to the EC2 API server
-# (http, https) (string value)
-#ec2_scheme=http
-
-# The path prefix used to call the ec2 API server (string
-# value)
-#ec2_path=/
-
-# List of region=fqdn pairs separated by commas (list value)
-#region_list=
-
-
-#
-# Options defined in nova.api.metadata.base
-#
-
-# List of metadata versions to skip placing into the config
-# drive (string value)
-#config_drive_skip_versions=1.0 2007-01-19 2007-03-01 2007-08-29 2007-10-10 2007-12-15 2008-02-01 2008-09-01
-
-# Driver to use for vendor data (string value)
-#vendordata_driver=nova.api.metadata.vendordata_json.JsonFileVendorData
-
-
-#
-# Options defined in nova.api.metadata.handler
-#
-
-# Time in seconds to cache metadata; 0 to disable metadata
-# caching entirely (not recommended). Increasingthis should
-# improve response times of the metadata API when under heavy
-# load. Higher values may increase memoryusage and result in
-# longer times for host metadata changes to take effect.
-# (integer value)
-#metadata_cache_expiration=15
-
-
-#
-# Options defined in nova.api.metadata.vendordata_json
+#rootwrap_config = /etc/nova/rootwrap.conf
+
+# Explicitly specify the temporary working directory (string value)
+#tempdir = <None>
+
+# DEPRECATED: The full class name of the volume API class to use (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#volume_api_class = nova.volume.cinder.API
+
+#
+# From nova.api
 #
 
 # File to load JSON formatted vendor data from (string value)
-#vendordata_jsonfile_path=<None>
-
-
-#
-# Options defined in nova.api.openstack.common
-#
-
-# The maximum number of items returned in a single response
-# from a collection resource (integer value)
-#osapi_max_limit=1000
-
-# Base URL that will be presented to users in links to the
-# OpenStack Compute API (string value)
-#osapi_compute_link_prefix=<None>
-
-# Base URL that will be presented to users in links to glance
-# resources (string value)
-#osapi_glance_link_prefix=<None>
-
-
-#
-# Options defined in nova.api.openstack.compute
-#
+#vendordata_jsonfile_path = <None>
 
 # Permit instance snapshot operations. (boolean value)
-#allow_instance_snapshots=true
-
-
-#
-# Options defined in nova.api.openstack.compute.contrib
-#
-
-# Specify list of extensions to load when using
+#allow_instance_snapshots = true
+
+# Whether to use per-user rate limiting for the api. This option is only used
+# by v2 api. Rate limiting is removed from v2.1 api. (boolean value)
+#api_rate_limit = false
+
+#
+# The strategy to use for auth: keystone or noauth2. noauth2 is designed for
+# testing only, as it does no actual credential checking. noauth2 provides
+# administrative credentials only if 'admin' is specified as the username.
+#  (string value)
+# Allowed values: keystone, noauth2
+#auth_strategy = keystone
+
+# Treat X-Forwarded-For as the canonical remote address. Only enable this if
+# you have a sanitizing proxy. (boolean value)
+#use_forwarded_for = false
+
+# List of metadata versions to skip placing into the config drive (string
+# value)
+#config_drive_skip_versions = 1.0 2007-01-19 2007-03-01 2007-08-29 2007-10-10 2007-12-15 2008-02-01 2008-09-01
+
+# DEPRECATED: Driver to use for vendor data (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#vendordata_driver = nova.api.metadata.vendordata_json.JsonFileVendorData
+
+# Time in seconds to cache metadata; 0 to disable metadata caching entirely
+# (not recommended). Increasingthis should improve response times of the
+# metadata API when under heavy load. Higher values may increase memoryusage
+# and result in longer times for host metadata changes to take effect. (integer
+# value)
+#metadata_cache_expiration = 15
+
+# The maximum number of items returned in a single response from a collection
+# resource (integer value)
+#osapi_max_limit = 1000
+
+# Base URL that will be presented to users in links to the OpenStack Compute
+# API (string value)
+#osapi_compute_link_prefix = <None>
+
+# Base URL that will be presented to users in links to glance resources (string
+# value)
+#osapi_glance_link_prefix = <None>
+
+# DEPRECATED: Specify list of extensions to load when using
 # osapi_compute_extension option with
-# nova.api.openstack.compute.contrib.select_extensions (list
-# value)
-#osapi_compute_ext_list=
-
-
-#
-# Options defined in nova.api.openstack.compute.contrib.fping
-#
+# nova.api.openstack.compute.legacy_v2.contrib.select_extensions This option
+# will be removed in the near future. After that point you have to run all of
+# the API. (list value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#osapi_compute_ext_list =
 
 # Full path to fping. (string value)
-fping_path=/usr/bin/fping
-
-
-#
-# Options defined in nova.api.openstack.compute.contrib.os_tenant_networks
-#
-
-# Enables or disables quota checking for tenant networks
-# (boolean value)
-#enable_network_quota=false
+fping_path = /usr/bin/fping
+
+# Enables or disables quota checking for tenant networks (boolean value)
+#enable_network_quota = false
 
 # Control for checking for default networks (string value)
-#use_neutron_default_nets=False
-
-# Default tenant id when creating neutron networks (string
-# value)
-#neutron_default_tenant_id=default
-
-# Number of private networks allowed per project (integer
-# value)
-#quota_networks=3
-
-
-#
-# Options defined in nova.api.openstack.compute.extensions
-#
-
-# osapi compute extension to load (multi valued)
-#osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions
-
-
-#
-# Options defined in nova.api.openstack.compute.plugins.v3.hide_server_addresses
-#
-
-# List of instance states that should hide network info (list
+#use_neutron_default_nets = False
+
+# Default tenant id when creating neutron networks (string value)
+#neutron_default_tenant_id = default
+
+# Number of private networks allowed per project (integer value)
+#quota_networks = 3
+
+# osapi compute extension to load. This option will be removed in the near
+# future. After that point you have to run all of the API. (multi valued)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#osapi_compute_extension = nova.api.openstack.compute.legacy_v2.contrib.standard_extensions
+
+# List of instance states that should hide network info (list value)
+#osapi_hide_server_address_states = building
+
+# Enables returning of the instance password by the relevant server API calls
+# such as create, rebuild or rescue, If the hypervisor does not support
+# password injection then the password returned will not be correct (boolean
 # value)
-#osapi_hide_server_address_states=building
-
-
-#
-# Options defined in nova.api.openstack.compute.servers
-#
-
-# Enables returning of the instance password by the relevant
-# server API calls such as create, rebuild or rescue, If the
-# hypervisor does not support password injection then the
-# password returned will not be correct (boolean value)
-#enable_instance_password=true
-
-
-#
-# Options defined in nova.cert.rpcapi
-#
-
-# The topic cert nodes listen on (string value)
-#cert_topic=cert
-
-
-#
-# Options defined in nova.cloudpipe.pipelib
-#
-
-# Image ID used when starting up a cloudpipe vpn server
-# (string value)
-#vpn_image_id=0
-
-# Flavor for vpn instances (string value)
-#vpn_flavor=m1.tiny
-
-# Template for cloudpipe instance boot script (string value)
-#boot_script_template=$pybasedir/nova/cloudpipe/bootscript.template
-
-# Network to push into openvpn config (string value)
-#dmz_net=10.0.0.0
-
-# Netmask to push into openvpn config (string value)
-#dmz_mask=255.255.255.0
-
-# Suffix to add to project name for vpn key and secgroups
-# (string value)
-#vpn_key_suffix=-vpn
-
-
-#
-# Options defined in nova.cmd.novnc
-#
-
-# Record sessions to FILE.[session_number] (boolean value)
-#record=false
-
-# Become a daemon (background process) (boolean value)
-#daemon=false
-
-# Disallow non-encrypted connections (boolean value)
-#ssl_only=false
-
-# Source is ipv6 (boolean value)
-#source_is_ipv6=false
-
-# SSL certificate file (string value)
-#cert=self.pem
-
-# SSL key file (if separate from cert) (string value)
-#key=<None>
-
-# Run webserver on same port. Serve files from DIR. (string
+#enable_instance_password = true
+
+#
+# From nova.cache_utils
+#
+
+# DEPRECATED: Memcached servers or None for in process cache.
+# "memcached_servers" opt is deprecated in Mitaka. In Newton release oslo.cache
+# config options should be used as this option will be removed. Please add a
+# [cache] group in your nova.conf file and add "enable" and "memcache_servers"
+# option in this section. (list value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#memcached_servers = <None>
+
+#
+# From nova.compute
+#
+
+# Default flavor to use for the EC2 API only. The Nova API does not support a
+# default flavor. (string value)
+#default_flavor = m1.small
+
+# Console proxy host to use to connect to instances on this host. (string
 # value)
-#web=/usr/share/spice-html5
-
-
-#
-# Options defined in nova.cmd.novncproxy
-#
-
-# Host on which to listen for incoming requests (string value)
-#novncproxy_host=0.0.0.0
-
-# Port on which to listen for incoming requests (integer
-# value)
-#novncproxy_port=6080
-
-
-#
-# Options defined in nova.compute.api
-#
-
-# Allow destination machine to match source for resize. Useful
-# when testing in single-host environments. (boolean value)
-#allow_resize_to_same_host=false
-
-# Allow migrate machine to the same host. Useful when testing
-# in single-host environments. (boolean value)
-#allow_migrate_to_same_host=false
-
-# Availability zone to use when user doesn't specify one
-# (string value)
-#default_schedule_zone=<None>
-
-# These are image properties which a snapshot should not
-# inherit from an instance (list value)
-#non_inheritable_image_properties=cache_in_nova,bittorrent
-
-# Kernel image that indicates not to use a kernel, but to use
-# a raw disk image instead (string value)
-#null_kernel=nokernel
-
-# When creating multiple instances with a single request using
-# the os-multiple-create API extension, this template will be
-# used to build the display name for each instance. The
-# benefit is that the instances end up with different
-# hostnames. To restore legacy behavior of every instance
-# having the same name, set this option to "%(name)s".  Valid
-# keys for the template are: name, uuid, count. (string value)
-#multi_instance_display_name_template=%(name)s-%(count)d
-
-# Maximum number of devices that will result in a local image
-# being created on the hypervisor node. Setting this to 0
-# means nova will allow only boot from volume. A negative
-# number means unlimited. (integer value)
-#max_local_block_devices=3
-
-
-#
-# Options defined in nova.compute.flavors
-#
-
-# Default flavor to use for the EC2 API only. The Nova API
-# does not support a default flavor. (string value)
-#default_flavor=m1.small
-
-
-#
-# Options defined in nova.compute.manager
-#
-
-# Console proxy host to use to connect to instances on this
-# host. (string value)
-#console_host=nova
-
-# Name of network to use to set access IPs for instances
-# (string value)
-#default_access_ip_network_name=<None>
-
-# Whether to batch up the application of IPTables rules during
-# a host restart and apply all at the end of the init phase
-# (boolean value)
-#defer_iptables_apply=false
+#console_host =
+
+# Name of network to use to set access IPs for instances (string value)
+#default_access_ip_network_name = <None>
+
+# Whether to batch up the application of IPTables rules during a host restart
+# and apply all at the end of the init phase (boolean value)
+#defer_iptables_apply = false
 
 # Where instances are stored on disk (string value)
-#instances_path=$state_path/instances
-
-# Generate periodic compute.instance.exists notifications
-# (boolean value)
-#instance_usage_audit=false
-
-# Number of 1 second retries needed in live_migration (integer
+#instances_path = $state_path/instances
+
+# Generate periodic compute.instance.exists notifications (boolean value)
+#instance_usage_audit = false
+
+# Number of 1 second retries needed in live_migration (integer value)
+#live_migration_retry_count = 30
+
+# Whether to start guests that were running before the host rebooted (boolean
 # value)
-#live_migration_retry_count=30
-
-# Whether to start guests that were running before the host
-# rebooted (boolean value)
-#resume_guests_state_on_host_boot=false
-
-# Number of times to retry network allocation on failures
-# (integer value)
-#network_allocate_retries=0
-
-# Maximum number of instance builds to run concurrently
-# (integer value)
-#max_concurrent_builds=10
-
-# Number of times to retry block device allocation on failures
-# (integer value)
-#block_device_allocate_retries=60
-
-# The number of times to attempt to reap an instance's files.
-# (integer value)
-#maximum_instance_delete_attempts=5
-
-# Interval to pull network bandwidth usage info. Not supported
-# on all hypervisors. Set to -1 to disable. Setting this to 0
-# will run at the default rate. (integer value)
-#bandwidth_poll_interval=600
-
-# Interval to sync power states between the database and the
-# hypervisor. Set to -1 to disable. Setting this to 0 will run
-# at the default rate. (integer value)
-#sync_power_state_interval=600
-
-# Number of seconds between instance network information cache
-# updates (integer value)
-#heal_instance_info_cache_interval=60
-
-# Interval in seconds for reclaiming deleted instances
-# (integer value)
-#reclaim_instance_interval=0
-
-# Interval in seconds for gathering volume usages (integer
+#resume_guests_state_on_host_boot = false
+
+# Number of times to retry network allocation on failures (integer value)
+#network_allocate_retries = 0
+
+# Maximum number of instance builds to run concurrently (integer value)
+#max_concurrent_builds = 10
+
+# Maximum number of live migrations to run concurrently. This limit is enforced
+# to avoid outbound live migrations overwhelming the host/network and causing
+# failures. It is not recommended that you change this unless you are very sure
+# that doing so is safe and stable in your environment. (integer value)
+#max_concurrent_live_migrations = 1
+
+# Number of times to retry block device allocation on failures.
+# Starting with Liberty, Cinder can use image volume cache. This may help with
+# block device allocation performance. Look at the cinder
+# image_volume_cache_enabled configuration option. (integer value)
+#block_device_allocate_retries = 60
+
+# The number of times to attempt to reap an instance's files. (integer value)
+#maximum_instance_delete_attempts = 5
+
+# Interval to pull network bandwidth usage info. Not supported on all
+# hypervisors. Set to -1 to disable. Setting this to 0 will run at the default
+# rate. (integer value)
+#bandwidth_poll_interval = 600
+
+# Interval to sync power states between the database and the hypervisor. Set to
+# -1 to disable. Setting this to 0 will run at the default rate. (integer
+# value)
+#sync_power_state_interval = 600
+
+# Number of seconds between instance network information cache updates (integer
 # value)
-#volume_usage_poll_interval=0
-
-# Interval in seconds for polling shelved instances to
-# offload. Set to -1 to disable.Setting this to 0 will run at
-# the default rate. (integer value)
-#shelved_poll_interval=3600
-
-# Time in seconds before a shelved instance is eligible for
-# removing from a host. -1 never offload, 0 offload
-# immediately when shelved (integer value)
-#shelved_offload_time=0
-
-# Interval in seconds for retrying failed instance file
-# deletes. Set to -1 to disable. Setting this to 0 will run at
-# the default rate. (integer value)
-#instance_delete_interval=300
-
-# Waiting time interval (seconds) between block device
-# allocation retries on failures (integer value)
-#block_device_allocate_retries_interval=3
-
-# Waiting time interval (seconds) between sending the
-# scheduler a list of current instance UUIDs to verify that
-# its view of instances is in sync with nova. If the CONF
-# option `scheduler_tracks_instance_changes` is False,
+#heal_instance_info_cache_interval = 60
+
+# Interval in seconds for reclaiming deleted instances. It takes effect only
+# when value is greater than 0. (integer value)
+# Minimum value: 0
+#reclaim_instance_interval = 0
+
+# Interval in seconds for gathering volume usages (integer value)
+#volume_usage_poll_interval = 0
+
+# Interval in seconds for polling shelved instances to offload. Set to -1 to
+# disable.Setting this to 0 will run at the default rate. (integer value)
+#shelved_poll_interval = 3600
+
+# Time in seconds before a shelved instance is eligible for removing from a
+# host. -1 never offload, 0 offload immediately when shelved (integer value)
+#shelved_offload_time = 0
+
+# Interval in seconds for retrying failed instance file deletes. Set to -1 to
+# disable. Setting this to 0 will run at the default rate. (integer value)
+#instance_delete_interval = 300
+
+# Waiting time interval (seconds) between block device allocation retries on
+# failures (integer value)
+#block_device_allocate_retries_interval = 3
+
+# Waiting time interval (seconds) between sending the scheduler a list of
+# current instance UUIDs to verify that its view of instances is in sync with
+# nova. If the CONF option `scheduler_tracks_instance_changes` is False,
 # changing this option will have no effect. (integer value)
-#scheduler_instance_sync_interval=120
-
-# Action to take if a running deleted instance is detected.
-# Valid options are 'noop', 'log', 'shutdown', or 'reap'. Set
-# to 'noop' to take no action. (string value)
-#running_deleted_instance_action=reap
-
-# Number of seconds to wait between runs of the cleanup task.
+#scheduler_instance_sync_interval = 120
+
+# Interval in seconds for updating compute resources. A number less than 0
+# means to disable the task completely. Leaving this at the default of 0 will
+# cause this to run at the default periodic interval. Setting it to any
+# positive value will cause it to run at approximately that number of seconds.
 # (integer value)
-#running_deleted_instance_poll_interval=1800
-
-# Number of seconds after being deleted when a running
-# instance should be considered eligible for cleanup. (integer
-# value)
-#running_deleted_instance_timeout=0
-
-# Automatically hard reboot an instance if it has been stuck
-# in a rebooting state longer than N seconds. Set to 0 to
-# disable. (integer value)
-#reboot_timeout=0
-
-# Amount of time in seconds an instance can be in BUILD before
-# going into ERROR status. Set to 0 to disable. (integer
-# value)
-#instance_build_timeout=0
-
-# Automatically unrescue an instance after N seconds. Set to 0
+#update_resources_interval = 0
+
+# Action to take if a running deleted instance is detected.Set to 'noop' to
+# take no action. (string value)
+# Allowed values: noop, log, shutdown, reap
+#running_deleted_instance_action = reap
+
+# Number of seconds to wait between runs of the cleanup task. (integer value)
+#running_deleted_instance_poll_interval = 1800
+
+# Number of seconds after being deleted when a running instance should be
+# considered eligible for cleanup. (integer value)
+#running_deleted_instance_timeout = 0
+
+# Automatically hard reboot an instance if it has been stuck in a rebooting
+# state longer than N seconds. Set to 0 to disable. (integer value)
+#reboot_timeout = 0
+
+# Amount of time in seconds an instance can be in BUILD before going into ERROR
+# status. Set to 0 to disable. (integer value)
+#instance_build_timeout = 0
+
+# Automatically unrescue an instance after N seconds. Set to 0 to disable.
+# (integer value)
+#rescue_timeout = 0
+
+# Automatically confirm resizes and cold migrations after N seconds. Set to 0
 # to disable. (integer value)
-#rescue_timeout=0
-
-# Automatically confirm resizes after N seconds. Set to 0 to
-# disable. (integer value)
-#resize_confirm_window=0
-
-# Total amount of time to wait in seconds for an instance to
-# perform a clean shutdown. (integer value)
-#shutdown_timeout=60
-
-
-#
-# Options defined in nova.compute.monitors
-#
-
-# Monitor classes available to the compute which may be
-# specified more than once. (multi valued)
-#compute_available_monitors=nova.compute.monitors.all_monitors
-
-# A list of monitors that can be used for getting compute
-# metrics. (list value)
-#compute_monitors=
-
-
-#
-# Options defined in nova.compute.resource_tracker
-#
+#resize_confirm_window = 0
+
+# Total amount of time to wait in seconds for an instance to perform a clean
+# shutdown. (integer value)
+#shutdown_timeout = 60
+
+# Monitor classes available to the compute which may be specified more than
+# once. This option is DEPRECATED and no longer used. Use setuptools entry
+# points to list available monitor plugins. (multi valued)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#compute_available_monitors =
+
+# A list of monitors that can be used for getting compute metrics. You can use
+# the alias/name from the setuptools entry points for nova.compute.monitors.*
+# namespaces. If no namespace is supplied, the "cpu." namespace is assumed for
+# backwards-compatibility. An example value that would enable both the CPU and
+# NUMA memory bandwidth monitors that used the virt driver variant:
+# ["cpu.virt_driver", "numa_mem_bw.virt_driver"] (list value)
+#compute_monitors =
 
 # Amount of disk in MB to reserve for the host (integer value)
-#reserved_host_disk_mb=0
-
-# Amount of memory in MB to reserve for the host (integer
+#reserved_host_disk_mb = 0
+
+# Amount of memory in MB to reserve for the host (integer value)
+#reserved_host_memory_mb = 512
+
+# DEPRECATED: Class that will manage stats for the local compute host (string
 # value)
-#reserved_host_memory_mb=512
-
-# Class that will manage stats for the local compute host
-# (string value)
-#compute_stats_class=nova.compute.stats.Stats
-
-# The names of the extra resources to track. (list value)
-#compute_resources=vcpu
-
-
-#
-# Options defined in nova.compute.rpcapi
-#
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#compute_stats_class = nova.compute.stats.Stats
+
+# DEPRECATED: The names of the extra resources to track. The Extensible
+# Resource Tracker is deprecated and will be removed in the 14.0.0 release. If
+# you use this functionality and have custom resources that are managed by the
+# Extensible Resource Tracker, please contact the Nova development team by
+# posting to the openstack-dev mailing list. There is no future planned support
+# for the tracking of custom resources. (list value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#compute_resources =
+
+# Virtual CPU to physical CPU allocation ratio which affects all CPU filters.
+# This configuration specifies a global ratio for CoreFilter. For
+# AggregateCoreFilter, it will fall back to this configuration value if no per-
+# aggregate setting found. NOTE: This can be set per-compute, or if set to 0.0,
+# the value set on the scheduler node(s) will be used and defaulted to 16.0
+# (floating point value)
+#cpu_allocation_ratio = 0.0
+
+# Virtual ram to physical ram allocation ratio which affects all ram filters.
+# This configuration specifies a global ratio for RamFilter. For
+# AggregateRamFilter, it will fall back to this configuration value if no per-
+# aggregate setting found. NOTE: This can be set per-compute, or if set to 0.0,
+# the value set on the scheduler node(s) will be used and defaulted to 1.5
+# (floating point value)
+#ram_allocation_ratio = 0.0
+
+# This is the virtual disk to physical disk allocation ratio used by the
+# disk_filter.py script to determine if a host has sufficient disk space to fit
+# a requested instance. A ratio greater than 1.0 will result in over-
+# subscription of the available physical disk, which can be useful for more
+# efficiently packing instances created with images that do not use the entire
+# virtual disk,such as sparse or compressed images. It can be set to a value
+# between 0.0 and 1.0 in order to preserve a percentage of the disk for uses
+# other than instances.NOTE: This can be set per-compute, or if set to 0.0, the
+# value set on the scheduler node(s) will be used and defaulted to 1.0
+# (floating point value)
+#disk_allocation_ratio = 0.0
 
 # The topic compute nodes listen on (string value)
-#compute_topic=compute
-
-
-#
-# Options defined in nova.conductor.tasks.live_migrate
-#
-
-# Number of times to retry live-migration before failing. If
-# == -1, try until out of hosts. If == 0, only try once, no
-# retries. (integer value)
-#migrate_max_retries=-1
-
-
-#
-# Options defined in nova.console.manager
-#
-
-# Driver to use for the console proxy (string value)
-console_driver=nova.console.fake.FakeConsoleProxy
-
-# Stub calls to compute worker for tests (boolean value)
-#stub_compute=false
-
-# Publicly visible name for this console host (string value)
-#console_public_hostname=nova
-
-
-#
-# Options defined in nova.console.rpcapi
-#
-
-# The topic console proxy nodes listen on (string value)
-#console_topic=console
-
-
-#
-# Options defined in nova.console.xvp
-#
-
-# XVP conf template (string value)
-#console_xvp_conf_template=$pybasedir/nova/console/xvp.conf.template
-
-# Generated XVP conf file (string value)
-#console_xvp_conf=/etc/xvp.conf
-
-# XVP master process pid file (string value)
-#console_xvp_pid=/var/run/xvp.pid
-
-# XVP log file (string value)
-#console_xvp_log=/var/log/xvp.log
-
-# Port for XVP to multiplex VNC connections on (integer value)
-#console_xvp_multiplex_port=5900
-
-
-#
-# Options defined in nova.consoleauth
-#
-
-# The topic console auth proxy nodes listen on (string value)
-#consoleauth_topic=consoleauth
-
-
-#
-# Options defined in nova.consoleauth.manager
-#
-
-# How many seconds before deleting tokens (integer value)
-#console_token_ttl=600
-
-
-#
-# Options defined in nova.db.api
-#
-
-# Services to be added to the available pool on create
-# (boolean value)
-#enable_new_services=true
-
-# Template string to be used to generate instance names
-# (string value)
-#instance_name_template=instance-%08x
-
-# Template string to be used to generate snapshot names
-# (string value)
-#snapshot_name_template=snapshot-%s
-
-
-#
-# Options defined in nova.db.base
-#
-
-# The driver to use for database access (string value)
-#db_driver=nova.db
-
-
-#
-# Options defined in nova.db.sqlalchemy.api
-#
-
-# When set, compute API will consider duplicate hostnames
-# invalid within the specified scope, regardless of case.
-# Should be empty, "project" or "global". (string value)
-#osapi_compute_unique_server_name_scope=
-
-
-#
-# Options defined in nova.image.s3
-#
-
-# Parent directory for tempdir used for image decryption
-# (string value)
-#image_decryption_dir=/tmp
-
-# Hostname or IP for OpenStack to use when accessing the S3
-# api (string value)
-#s3_host=$my_ip
-
-# Port used when accessing the S3 api (integer value)
-#s3_port=3333
-
-# Access key to use for S3 server for images (string value)
-#s3_access_key=notchecked
-
-# Secret key to use for S3 server for images (string value)
-#s3_secret_key=notchecked
-
-# Whether to use SSL when talking to S3 (boolean value)
-#s3_use_ssl=false
-
-# Whether to affix the tenant id to the access key when
-# downloading from S3 (boolean value)
-#s3_affix_tenant=false
-
-
-#
-# Options defined in nova.ipv6.api
-#
-
-# Backend to use for IPv6 generation (string value)
-#ipv6_backend=rfc2462
-
-
-#
-# Options defined in nova.network
-#
-
-# The full class name of the network API class to use (string
-# value)
-network_api_class=nova.network.neutronv2.api.API
-
-
-#
-# Options defined in nova.network.driver
-#
+#compute_topic = compute
+
+#
+# From nova.conf
+#
+
+# The availability_zone to show internal services under (string value)
+#internal_service_availability_zone = internal
+
+# Default compute node availability_zone (string value)
+#default_availability_zone = nova
+
+#
+# Determines the RPC topic that the cert nodes listen on. The default is
+# 'cert',
+# and for most deployments there is no need to ever change it.
+#
+# Possible values:
+#
+# Any string.
+#
+# * Services which consume this:
+#
+#     ``nova-cert``
+#
+# * Related options:
+#
+#     None
+#  (string value)
+#cert_topic = cert
+
+# Allow destination machine to match source for resize. Useful when testing in
+# single-host environments. (boolean value)
+#allow_resize_to_same_host = false
+
+# Availability zone to use when user doesn't specify one (string value)
+#default_schedule_zone = <None>
+
+# These are image properties which a snapshot should not inherit from an
+# instance (list value)
+#non_inheritable_image_properties = cache_in_nova,bittorrent
+
+# Kernel image that indicates not to use a kernel, but to use a raw disk image
+# instead (string value)
+#null_kernel = nokernel
+
+# When creating multiple instances with a single request using the os-multiple-
+# create API extension, this template will be used to build the display name
+# for each instance. The benefit is that the instances end up with different
+# hostnames. To restore legacy behavior of every instance having the same name,
+# set this option to "%(name)s".  Valid keys for the template are: name, uuid,
+# count. (string value)
+#multi_instance_display_name_template = %(name)s-%(count)d
+
+# Maximum number of devices that will result in a local image being created on
+# the hypervisor node. A negative number means unlimited. Setting
+# max_local_block_devices to 0 means that any request that attempts to create a
+# local disk will fail. This option is meant to limit the number of local discs
+# (so root local disc that is the result of --image being used, and any other
+# ephemeral and swap disks). 0 does not mean that images will be automatically
+# converted to volumes and boot instances from volumes - it just means that all
+# requests that attempt to create a local disk will fail. (integer value)
+#max_local_block_devices = 3
+
+#
+# An alias for a PCI passthrough device requirement.
+#
+# This allows users to specify the alias in the extra_spec for a flavor,
+# without
+# needing to repeat all the PCI property requirements.
+#
+# Possible Values:
+#
+# * A list of JSON values which describe the aliases. For example:
+#
+#     pci_alias = {
+#       "name": "QuickAssist",
+#       "product_id": "0443",
+#       "vendor_id": "8086",
+#       "device_type": "type-PCI"
+#     }
+#
+#   defines an alias for the Intel QuickAssist card. (multi valued). Valid key
+#   values are :
+#
+#   * "name"
+#   * "product_id"
+#   * "vendor_id"
+#   * "device_type"
+#
+# Services which consume this:
+#
+# * nova-compute
+#
+# Related options:
+#
+# * None (multi valued)
+#pci_alias =
+
+#
+# White list of PCI devices available to VMs.
+#
+# Possible values:
+#
+# * A JSON dictionary which describe a whitelisted PCI device. It should take
+#   the following format:
+#
+#     ["device_id": "<id>",] ["product_id": "<id>",]
+#     ["address": "[[[[<domain>]:]<bus>]:][<slot>][.[<function>]]" |
+#      "devname": "PCI Device Name",]
+#     {"tag": "<tag_value>",}
+#
+#   where '[' indicates zero or one occurrences, '{' indicates zero or multiple
+#   occurrences, and '|' mutually exclusive options. Note that any missing
+#   fields are automatically wildcarded. Valid examples are:
+#
+#     pci_passthrough_whitelist = {"devname":"eth0",
+#                                  "physical_network":"physnet"}
+#     pci_passthrough_whitelist = {"address":"*:0a:00.*"}
+#     pci_passthrough_whitelist = {"address":":0a:00.",
+#                                  "physical_network":"physnet1"}
+#     pci_passthrough_whitelist = {"vendor_id":"1137",
+#                                  "product_id":"0071"}
+#     pci_passthrough_whitelist = {"vendor_id":"1137",
+#                                  "product_id":"0071",
+#                                  "address": "0000:0a:00.1",
+#                                  "physical_network":"physnet1"}
+#
+#   The following are invalid, as they specify mutually exclusive options:
+#
+#     pci_passthrough_whitelist = {"devname":"eth0",
+#                                  "physical_network":"physnet",
+#                                  "address":"*:0a:00.*"}
+#
+# * A JSON list of JSON dictionaries corresponding to the above format. For
+#   example:
+#
+#     pci_passthrough_whitelist = [{"product_id":"0001", "vendor_id":"8086"},
+#                                  {"product_id":"0002", "vendor_id":"8086"}]
+#
+# Services which consume this:
+#
+# * nova-compute
+#
+# Related options:
+#
+# * None (multi valued)
+#pci_passthrough_whitelist =
+
+#
+# New instances will be scheduled on a host chosen randomly from a subset of
+# the
+# N best hosts, where N is the value set by this option.  Valid values are 1 or
+# greater. Any value less than one will be treated as 1.
+#
+# Setting this to a value greater than 1 will reduce the chance that multiple
+# scheduler processes handling similar requests will select the same host,
+# creating a potential race condition. By selecting a host randomly from the N
+# hosts that best fit the request, the chance of a conflict is reduced.
+# However,
+# the higher you set this value, the less optimal the chosen host may be for a
+# given request.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (integer value)
+#scheduler_host_subset_size = 1
+
+#
+# This option specifies the filters used for filtering baremetal hosts. The
+# value
+# should be a list of strings, with each string being the name of a filter
+# class
+# to be used. When used, they will be applied in order, so place your most
+# restrictive filters first to make the filtering process more efficient.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     If the 'scheduler_use_baremetal_filters' option is False, this option has
+#     no effect.
+#  (list value)
+#baremetal_scheduler_default_filters = RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ExactRamFilter,ExactDiskFilter,ExactCoreFilter
+
+#
+# Set this to True to tell the nova scheduler that it should use the filters
+# specified in the 'baremetal_scheduler_default_filters' option. If you are not
+# scheduling baremetal nodes, leave this at the default setting of False.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     If this option is set to True, then the filters specified in the
+#     'baremetal_scheduler_default_filters' are used instead of the filters
+#     specified in 'scheduler_default_filters'.
+#  (boolean value)
+#scheduler_use_baremetal_filters = false
+
+#
+# This is an unordered list of the filter classes the Nova scheduler may apply.
+# Only the filters specified in the 'scheduler_default_filters' option will be
+# used, but any filter appearing in that option must also be included in this
+# list.
+#
+# By default, this is set to all filters that are included with Nova. If you
+# wish
+# to change this, replace this with a list of strings, where each element is
+# the
+# path to a filter.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     scheduler_default_filters
+#  (multi valued)
+#scheduler_available_filters = nova.scheduler.filters.all_filters
+
+#
+# This option is the list of filter class names that will be used for filtering
+# hosts. The use of 'default' in the name of this option implies that other
+# filters may sometimes be used, but that is not the case. These filters will
+# be
+# applied in the order they are listed, so place your most restrictive filters
+# first to make the filtering process more efficient.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     All of the filters in this option *must* be present in the
+#     'scheduler_available_filters' option, or a SchedulerHostFilterNotFound
+#     exception will be raised.
+#  (list value)
+#scheduler_default_filters = RetryFilter,AvailabilityZoneFilter,RamFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter
+
+#
+# This is a list of weigher class names. Only hosts which pass the filters are
+# weighed. The weight for any host starts at 0, and the weighers order these
+# hosts by adding to or subtracting from the weight assigned by the previous
+# weigher. Weights may become negative.
+#
+# An instance will be scheduled to one of the N most-weighted hosts, where N is
+# 'scheduler_host_subset_size'.
+#
+# By default, this is set to all weighers that are included with Nova. If you
+# wish to change this, replace this with a list of strings, where each element
+# is
+# the path to a weigher.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (list value)
+#scheduler_weight_classes = nova.scheduler.weights.all_weighers
+
+#
+# The scheduler may need information about the instances on a host in order to
+# evaluate its filters and weighers. The most common need for this information
+# is
+# for the (anti-)affinity filters, which need to choose a host based on the
+# instances already running on a host.
+#
+# If the configured filters and weighers do not need this information,
+# disabling
+# this option will improve performance. It may also be disabled when the
+# tracking
+# overhead proves too heavy, although this will cause classes requiring host
+# usage data to query the database on each request instead.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (boolean value)
+#scheduler_tracks_instance_changes = true
+
+#
+# This is the message queue topic that the scheduler 'listens' on. It is used
+# when the scheduler service is started up to configure the queue, and whenever
+# an RPC call to the scheduler is made. There is almost never any reason to
+# ever
+# change this value.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (string value)
+#scheduler_topic = scheduler
+
+#
+# The scheduler host manager to use, which manages the in-memory picture of the
+# hosts that the scheduler uses.
+#
+# The option value should be chosen from one of the entrypoints under the
+# namespace 'nova.scheduler.host_manager' of file 'setup.cfg'. For example,
+# 'host_manager' is the default setting. Aside from the default, the only other
+# option as of the Mitaka release is 'ironic_host_manager', which should be
+# used
+# if you're using Ironic to provision bare-metal instances.
+#
+# This option also supports a full class path style, for example
+# "nova.scheduler.host_manager.HostManager", but note this support is
+# deprecated
+# and will be dropped in the N release.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (string value)
+#scheduler_host_manager = host_manager
+
+#
+# The class of the driver used by the scheduler. This should be chosen from one
+# of the entrypoints under the namespace 'nova.scheduler.driver' of file
+# 'setup.cfg'. If nothing is specified in this option, the 'filter_scheduler'
+# is
+# used.
+#
+# This option also supports deprecated full Python path to the class to be
+# used.
+# For example, "nova.scheduler.filter_scheduler.FilterScheduler". But note:
+# this
+# support will be dropped in the N Release.
+#
+# Other options are:
+#
+#     * 'caching_scheduler' which aggressively caches the system state for
+# better
+#     individual scheduler performance at the risk of more retries when running
+#     multiple schedulers.
+#
+#     * 'chance_scheduler' which simply picks a host at random.
+#
+#     * 'fake_scheduler' which is used for testing.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (string value)
+#scheduler_driver = filter_scheduler
+
+#
+# This value controls how often (in seconds) to run periodic tasks in the
+# scheduler. The specific tasks that are run for each period are determined by
+# the particular scheduler being used.
+#
+# If this is larger than the nova-service 'service_down_time' setting, Nova may
+# report the scheduler service as down. This is because the scheduler driver is
+# responsible for sending a heartbeat and it will only do that as often as this
+# option allows. As each scheduler can work a little differently than the
+# others,
+# be sure to test this with your selected scheduler.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     ``nova-service service_down_time``
+#  (integer value)
+#scheduler_driver_task_period = 60
+
+#
+# The absolute path to the scheduler configuration JSON file, if any. This file
+# location is monitored by the scheduler for changes and reloads it if needed.
+# It
+# is converted from JSON to a Python data structure, and passed into the
+# filtering and weighing functions of the scheduler, which can use it for
+# dynamic
+# configuration.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (string value)
+#scheduler_json_config_location =
+
+#
+# If there is a need to restrict some images to only run on certain designated
+# hosts, list those image UUIDs here.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'IsolatedHostsFilter' filter is enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     scheduler/isolated_hosts
+#     scheduler/restrict_isolated_hosts_to_isolated_images
+#  (list value)
+#isolated_images =
+
+#
+# If there is a need to restrict some images to only run on certain designated
+# hosts, list those host names here.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'IsolatedHostsFilter' filter is enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     scheduler/isolated_images
+#     scheduler/restrict_isolated_hosts_to_isolated_images
+#  (list value)
+#isolated_hosts =
+
+#
+# This setting determines if the scheduler's isolated_hosts filter will allow
+# non-isolated images on a host designated as an isolated host. When set to
+# True
+# (the default), non-isolated images will not be allowed to be built on
+# isolated
+# hosts. When False, non-isolated images can be built on both isolated and
+# non-isolated hosts alike.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'IsolatedHostsFilter' filter is enabled. Even
+# then, this option doesn't affect the behavior of requests for isolated
+# images,
+# which will *always* be restricted to isolated hosts.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     scheduler/isolated_images
+#     scheduler/isolated_hosts
+#  (boolean value)
+#restrict_isolated_hosts_to_isolated_images = true
+
+#
+# This setting caps the number of instances on a host that can be actively
+# performing IO (in a build, resize, snapshot, migrate, rescue, or unshelve
+# task
+# state) before that host becomes ineligible to build new instances.
+#
+# Valid values are positive integers: 1 or greater.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'io_ops_filter' filter is enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (integer value)
+#max_io_ops_per_host = 8
+
+#
+# Images and hosts can be configured so that certain images can only be
+# scheduled
+# to hosts in a particular aggregate. This is done with metadata values set on
+# the host aggregate that are identified by beginning with the value of this
+# option. If the host is part of an aggregate with such a metadata key, the
+# image
+# in the request spec must have the value of that metadata in its properties in
+# order for the scheduler to consider the host as acceptable.
+#
+# Valid values are strings.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'aggregate_image_properties_isolation' filter
+# is
+# enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     aggregate_image_properties_isolation_separator
+#  (string value)
+#aggregate_image_properties_isolation_namespace = <None>
+
+#
+# When using the aggregate_image_properties_isolation filter, the relevant
+# metadata keys are prefixed with the namespace defined in the
+# aggregate_image_properties_isolation_namespace configuration option plus a
+# separator. This option defines the separator to be used. It defaults to a
+# period ('.').
+#
+# Valid values are strings.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'aggregate_image_properties_isolation' filter
+# is
+# enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     aggregate_image_properties_isolation_namespace
+#  (string value)
+#aggregate_image_properties_isolation_separator = .
+
+#
+# If you need to limit the number of instances on any given host, set this
+# option
+# to the maximum number of instances you want to allow. The
+# num_instances_filter
+# will reject any host that has at least as many instances as this option's
+# value.
+#
+# Valid values are positive integers; setting it to zero will cause all hosts
+# to
+# be rejected if the num_instances_filter is active.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'num_instances_filter' filter is enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (integer value)
+#max_instances_per_host = 50
+
+#
+# This option determines how hosts with more or less available RAM are weighed.
+# A
+# positive value will result in the scheduler preferring hosts with more
+# available RAM, and a negative number will result in the scheduler preferring
+# hosts with less available RAM. Another way to look at it is that positive
+# values for this option will tend to spread instances across many hosts, while
+# negative values will tend to fill up (stack) hosts as much as possible before
+# scheduling to a less-used host. The absolute value, whether positive or
+# negative, controls how strong the RAM weigher is relative to other weighers.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'ram' weigher is enabled.
+#
+# Valid values are numeric, either integer or float.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (floating point value)
+#ram_weight_multiplier = 1.0
+
+# Multiplier used for weighing free disk space. Negative numbers mean to stack
+# vs spread. (floating point value)
+#disk_weight_multiplier = 1.0
+
+#
+# This option determines how hosts with differing workloads are weighed.
+# Negative
+# values, such as the default, will result in the scheduler preferring hosts
+# with
+# lighter workloads whereas positive values will prefer hosts with heavier
+# workloads. Another way to look at it is that positive values for this option
+# will tend to schedule instances onto hosts that are already busy, while
+# negative values will tend to distribute the workload across more hosts. The
+# absolute value, whether positive or negative, controls how strong the io_ops
+# weigher is relative to other weighers.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'io_ops' weigher is enabled.
+#
+# Valid values are numeric, either integer or float.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (floating point value)
+#io_ops_weight_multiplier = -1.0
+
+#
+# This is the maximum number of attempts that will be made to schedule an
+# instance before it is assumed that the failures aren't due to normal
+# occasional
+# race conflicts, but rather some other problem. When this is reached a
+# MaxRetriesExceeded exception is raised, and the instance is set to an error
+# state.
+#
+# Valid values are positive integers (1 or greater).
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     None
+#  (integer value)
+#scheduler_max_attempts = 3
+
+# Multiplier used for weighing hosts for group soft-affinity. Only a positive
+# value is meaningful. Negative means that the behavior will change to the
+# opposite, which is soft-anti-affinity. (floating point value)
+#soft_affinity_weight_multiplier = 1.0
+
+# Multiplier used for weighing hosts for group soft-anti-affinity. Only a
+# positive value is meaningful. Negative means that the behavior will change to
+# the opposite, which is soft-affinity. (floating point value)
+#soft_anti_affinity_weight_multiplier = 1.0
+
+# Defines which physical CPUs (pCPUs) can be used by instance
+# virtual CPUs (vCPUs).
+#
+# Possible values:
+#
+# * A comma-separated list of physical CPU numbers that virtual CPUs can be
+#   allocated to by default. Each element should be either a single CPU number,
+#   a range of CPU numbers, or a caret followed by a CPU number to be
+#   excluded from a previous range. For example:
+#
+#     vcpu_pin_set = "4-12,^8,15"
+#
+# Services which consume this:
+#
+# * ``nova-scheduler``
+# * ``nova-compute``
+#
+# Interdependencies to other options:
+#
+# * None
+#  (string value)
+#vcpu_pin_set = <None>
+
+# Defines which driver to use for controlling virtualization.
+#
+# Possible values:
+#
+# * ``libvirt.LibvirtDriver``
+# * ``xenapi.XenAPIDriver``
+# * ``fake.FakeDriver``
+# * ``ironic.IronicDriver``
+# * ``vmwareapi.VMwareVCDriver``
+# * ``hyperv.HyperVDriver``
+# * ``solariszones.SolarisZonesDriver``
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Interdependencies to other options:
+#
+# * None
+#  (string value)
+compute_driver = solariszones.SolarisZonesDriver
+
+# The default format an ephemeral_volume will be formatted
+# with on creation.
+#
+# Possible values:
+#
+# * ``ext2``
+# * ``ext3``
+# * ``ext4``
+# * ``xfs``
+# * ``ntfs`` (only for Windows guests)
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Interdependencies to other options:
+#
+# * None
+#  (string value)
+#default_ephemeral_format = <None>
+
+# The image preallocation mode to use. Image preallocation allows
+# storage for instance images to be allocated up front when the instance is
+# initially provisioned. This ensures immediate feedback is given if enough
+# space isn't available. In addition, it should significantly improve
+# performance on writes to new blocks and may even improve I/O performance to
+# prewritten blocks due to reduced fragmentation.
+#
+# Possible values:
+#
+# * "none"  => no storage provisioning is done up front
+# * "space" => storage is fully allocated at instance start
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Interdependencies to other options:
+#
+# * None
+#  (string value)
+# Allowed values: none, space
+#preallocate_images = none
+
+# Enable use of copy-on-write (cow) images.
+#
+# QEMU/KVM allow the use of qcow2 as backing files. By disabling this,
+# backing files will not be used.
+#
+# Possible values:
+#
+# * True: Enable use of cow images
+# * False: Disable use of cow images
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Interdependencies to other options:
+#
+# * None
+#  (boolean value)
+#use_cow_images = true
+
+# Determine if instance should boot or fail on VIF plugging timeout.
+#
+# Nova sends a port update to Neutron after an instance has been scheduled,
+# providing Neutron with the necessary information to finish setup of the port.
+# Once completed, Neutron notifies Nova that it has finished setting up the
+# port, at which point Nova resumes the boot of the instance since network
+# connectivity is now supposed to be present. A timeout will occur if the reply
+# is not received after a given interval.
+#
+# This option determines what Nova does when the VIF plugging timeout event
+# happens. When enabled, the instance will error out. When disabled, the
+# instance will continue to boot on the assumption that the port is ready.
+#
+# Possible values:
+#
+# * True: Instances should fail after VIF plugging timeout
+# * False: Instances should continue booting after VIF plugging timeout
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Interdependencies to other options:
+#
+# * None
+#  (boolean value)
+#vif_plugging_is_fatal = true
+
+# Timeout for Neutron VIF plugging event message arrival.
+#
+# Number of seconds to wait for Neutron vif plugging events to
+# arrive before continuing or failing (see 'vif_plugging_is_fatal'). If this is
+# set to zero and 'vif_plugging_is_fatal' is False, events should not be
+# expected to arrive at all.
+#
+# Possible values:
+#
+# * A time interval in seconds
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Interdependencies to other options:
+#
+# * None
+#  (integer value)
+#vif_plugging_timeout = 300
+
+# Firewall driver to use with ``nova-network`` service.
+#
+# This option only applies when using the ``nova-network`` service. When using
+# another networking services, such as Neutron, this should be to set to the
+# ``NoopFirewallDriver``.
+#
+# If unset (the default), this will default to the hypervisor-specified
+# default driver.
+#
+# Possible values:
+#
+# * nova.virt.firewall.IptablesFirewallDriver
+# * nova.virt.firewall.NoopFirewallDriver
+# * nova.virt.libvirt.firewall.IptablesFirewallDriver
+# * [...]
+#
+# Services which consume this:
+#
+# * nova-network
+#
+# Interdependencies to other options:
+#
+# * ``use_neutron``: This must be set to ``False`` to enable ``nova-network``
+#   networking
+#  (string value)
+#firewall_driver = <None>
+
+# Determine whether to allow network traffic from same network.
+#
+# When set to true, hosts on the same subnet are not filtered and are allowed
+# to pass all types of traffic between them. On a flat network, this allows
+# all instances from all projects unfiltered communication. With VLAN
+# networking, this allows access between instances within the same project.
+#
+# This option only applies when using the ``nova-network`` service. When using
+# another networking services, such as Neutron, security groups or other
+# approaches should be used.
+#
+# Possible values:
+#
+# * True: Network traffic should be allowed pass between all instances on the
+#   same network, regardless of their tenant and security policies
+# * False: Network traffic should not be allowed pass between instances unless
+#   it is unblocked in a security group
+#
+# Services which consume this:
+#
+# * nova-network
+#
+# Interdependencies to other options:
+#
+# * ``use_neutron``: This must be set to ``False`` to enable ``nova-network``
+#   networking
+# * ``firewall_driver``: This must be set to
+#   ``nova.virt.libvirt.firewall.IptablesFirewallDriver`` to ensure the
+#   libvirt firewall driver is enabled.
+#  (boolean value)
+#allow_same_net_traffic = true
+
+# Force conversion of backing images to raw format.
+#
+# Possible values:
+#
+# * True: Backing image files will be converted to raw image format
+# * False: Backing image files will not be converted
+#
+# Services which consume this:
+#
+# * nova-compute
+#
+# Interdependencies to other options:
+#
+# * ``compute_driver``: Only the libvirt driver uses this option.
+#  (boolean value)
+#force_raw_images = true
+
+# Template file for injected network (string value)
+#injected_network_template = $pybasedir/nova/virt/interfaces.template
+
+# Name of the mkfs commands for ephemeral device. The format is <os_type>=<mkfs
+# command> (multi valued)
+#virt_mkfs =
+
+# Attempt to resize the filesystem by accessing the image over a block device.
+# This is done by the host and may not be necessary if the image contains a
+# recent version of cloud-init. Possible mechanisms require the nbd driver (for
+# qcow and raw), or loop (for raw). (boolean value)
+#resize_fs_using_block_device = false
+
+# Amount of time, in seconds, to wait for NBD device start up. (integer value)
+#timeout_nbd = 10
+
+# File name for the paste.deploy config for nova-api (string value)
+#api_paste_config = api-paste.ini
+
+# A python format string that is used as the template to generate log lines.
+# The following values can be formatted into it: client_ip, date_time,
+# request_line, status_code, body_length, wall_seconds. (string value)
+#wsgi_log_format = %(client_ip)s "%(request_line)s" status: %(status_code)s len: %(body_length)s time: %(wall_seconds).7f
+
+# The HTTP header used to determine the scheme for the original request, even
+# if it was removed by an SSL terminating proxy. Typical value is
+# "HTTP_X_FORWARDED_PROTO". (string value)
+#secure_proxy_ssl_header = <None>
+
+# CA certificate file to use to verify connecting clients (string value)
+#ssl_ca_file = <None>
+
+# SSL certificate of API server (string value)
+#ssl_cert_file = <None>
+
+# SSL private key of API server (string value)
+#ssl_key_file = <None>
+
+# Sets the value of TCP_KEEPIDLE in seconds for each server socket. Not
+# supported on OS X. (integer value)
+#tcp_keepidle = 600
+
+# Size of the pool of greenthreads used by wsgi (integer value)
+#wsgi_default_pool_size = 1000
+
+# Maximum line size of message headers to be accepted. max_header_line may need
+# to be increased when using large tokens (typically those generated by the
+# Keystone v3 API with big service catalogs). (integer value)
+#max_header_line = 16384
+
+# If False, closes the client socket connection explicitly. (boolean value)
+#wsgi_keep_alive = true
+
+# Timeout for client connections' socket operations. If an incoming connection
+# is idle for this number of seconds it will be closed. A value of '0' means
+# wait forever. (integer value)
+#client_socket_timeout = 900
+
+#
+# From nova.network
+#
+
+# DEPRECATED: The full class name of the network API class to use.
+# ``use_neutron`` should be used instead. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#network_api_class = nova.network.api.API
+
+#
+# Whether to use Neutron or Nova Network as the back end for networking.
+# Defaults to False (indicating Nova network). Set to True to use neutron.
+#  (boolean value)
+use_neutron = true
 
 # Driver to use for network creation (string value)
-network_driver=nova.network.solaris_net
-
-
-#
-# Options defined in nova.network.floating_ips
-#
+network_driver = nova.network.solaris_net
 
 # Default pool for floating IPs (string value)
-#default_floating_pool=nova
+#default_floating_pool = nova
 
 # Autoassigning floating IP to VM (boolean value)
-#auto_assign_floating_ip=false
-
-# Full class name for the DNS Manager for floating IPs (string
-# value)
-#floating_ip_dns_manager=nova.network.noop_dns_driver.NoopDNSDriver
-
-# Full class name for the DNS Manager for instance IPs (string
-# value)
-#instance_dns_manager=nova.network.noop_dns_driver.NoopDNSDriver
-
-# Full class name for the DNS Zone for instance IPs (string
-# value)
-#instance_dns_domain=
-
-
-#
-# Options defined in nova.network.ldapdns
-#
-
-# URL for LDAP server which will store DNS entries (string
-# value)
-#ldap_dns_url=ldap://ldap.example.com:389
+#auto_assign_floating_ip = false
+
+# Full class name for the DNS Manager for floating IPs (string value)
+#floating_ip_dns_manager = nova.network.noop_dns_driver.NoopDNSDriver
+
+# Full class name for the DNS Manager for instance IPs (string value)
+#instance_dns_manager = nova.network.noop_dns_driver.NoopDNSDriver
+
+# Full class name for the DNS Zone for instance IPs (string value)
+#instance_dns_domain =
+
+# URL for LDAP server which will store DNS entries (string value)
+#ldap_dns_url = ldap://ldap.example.com:389
 
 # User for LDAP DNS (string value)
-#ldap_dns_user=uid=admin,ou=people,dc=example,dc=org
+#ldap_dns_user = uid=admin,ou=people,dc=example,dc=org
 
 # Password for LDAP DNS (string value)
-#ldap_dns_password=password
-
-# Hostmaster for LDAP DNS driver Statement of Authority
-# (string value)
-#[email protected]
+#ldap_dns_password = password
+
+# Hostmaster for LDAP DNS driver Statement of Authority (string value)
+#ldap_dns_soa_hostmaster = [email protected]
 
 # DNS Servers for LDAP DNS driver (multi valued)
-#ldap_dns_servers=dns.example.org
+#ldap_dns_servers = dns.example.org
 
 # Base DN for DNS entries in LDAP (string value)
-#ldap_dns_base_dn=ou=hosts,dc=example,dc=org
-
-# Refresh interval (in seconds) for LDAP DNS driver Statement
-# of Authority (string value)
-#ldap_dns_soa_refresh=1800
-
-# Retry interval (in seconds) for LDAP DNS driver Statement of
-# Authority (string value)
-#ldap_dns_soa_retry=3600
-
-# Expiry interval (in seconds) for LDAP DNS driver Statement
-# of Authority (string value)
-#ldap_dns_soa_expiry=86400
-
-# Minimum interval (in seconds) for LDAP DNS driver Statement
-# of Authority (string value)
-#ldap_dns_soa_minimum=7200
-
-
-#
-# Options defined in nova.network.linux_net
-#
+#ldap_dns_base_dn = ou=hosts,dc=example,dc=org
+
+# Refresh interval (in seconds) for LDAP DNS driver Statement of Authority
+# (string value)
+#ldap_dns_soa_refresh = 1800
+
+# Retry interval (in seconds) for LDAP DNS driver Statement of Authority
+# (string value)
+#ldap_dns_soa_retry = 3600
+
+# Expiry interval (in seconds) for LDAP DNS driver Statement of Authority
+# (string value)
+#ldap_dns_soa_expiry = 86400
+
+# Minimum interval (in seconds) for LDAP DNS driver Statement of Authority
+# (string value)
+#ldap_dns_soa_minimum = 7200
 
 # Location of flagfiles for dhcpbridge (multi valued)
-#dhcpbridge_flagfile=/etc/nova/nova-dhcpbridge.conf
+#dhcpbridge_flagfile = /etc/nova/nova-dhcpbridge.conf
 
 # Location to keep network config files (string value)
-#networks_path=$state_path/networks
+#networks_path = $state_path/networks
 
 # Interface for public IP addresses (string value)
-#public_interface=eth0
+#public_interface = eth0
 
 # Location of nova-dhcpbridge (string value)
-#dhcpbridge=$bindir/nova-dhcpbridge
+#dhcpbridge = $bindir/nova-dhcpbridge
 
 # Public IP of network host (string value)
-#routing_source_ip=$my_ip
+#routing_source_ip = $my_ip
 
 # Lifetime of a DHCP lease in seconds (integer value)
-#dhcp_lease_time=86400
-
-# If set, uses specific DNS server for dnsmasq. Can be
-# specified multiple times. (multi valued)
-#dns_server=
-
-# If set, uses the dns1 and dns2 from the network ref. as dns
-# servers. (boolean value)
-#use_network_dns_servers=false
+#dhcp_lease_time = 86400
+
+# If set, uses specific DNS server for dnsmasq. Can be specified multiple
+# times. (multi valued)
+#dns_server =
+
+# If set, uses the dns1 and dns2 from the network ref. as dns servers. (boolean
+# value)
+#use_network_dns_servers = false
 
 # A list of dmz ranges that should be accepted (list value)
-#dmz_cidr=
-
-# Traffic to this range will always be snatted to the fallback
-# ip, even if it would normally be bridged out of the node.
-# Can be specified multiple times. (multi valued)
-#force_snat_range=
-
-# Override the default dnsmasq settings with this file (string
-# value)
-#dnsmasq_config_file=
+#dmz_cidr =
+
+# Traffic to this range will always be snatted to the fallback IP, even if it
+# would normally be bridged out of the node. Can be specified multiple times.
+# (multi valued)
+#force_snat_range =
+
+# Override the default dnsmasq settings with this file (string value)
+#dnsmasq_config_file =
 
 # Driver used to create ethernet devices. (string value)
-#linuxnet_interface_driver=nova.network.linux_net.LinuxBridgeInterfaceDriver
-
-# Name of Open vSwitch bridge used with linuxnet (string
-# value)
-#linuxnet_ovs_integration_bridge=br-int
+#linuxnet_interface_driver = nova.network.linux_net.LinuxBridgeInterfaceDriver
+
+# Name of Open vSwitch bridge used with linuxnet (string value)
+#linuxnet_ovs_integration_bridge = br-int
 
 # Send gratuitous ARPs for HA setup (boolean value)
-#send_arp_for_ha=false
+#send_arp_for_ha = false
 
 # Send this many gratuitous ARPs for HA setup (integer value)
-#send_arp_for_ha_count=3
-
-# Use single default gateway. Only first nic of vm will get
-# default gateway from dhcp server (boolean value)
-#use_single_default_gateway=false
-
-# An interface that bridges can forward to. If this is set to
-# all then all traffic will be forwarded. Can be specified
-# multiple times. (multi valued)
-#forward_bridge_interface=all
+#send_arp_for_ha_count = 3
+
+# Use single default gateway. Only first nic of vm will get default gateway
+# from dhcp server (boolean value)
+#use_single_default_gateway = false
+
+# An interface that bridges can forward to. If this is set to all then all
+# traffic will be forwarded. Can be specified multiple times. (multi valued)
+#forward_bridge_interface = all
 
 # The IP address for the metadata API server (string value)
-#metadata_host=$my_ip
+#metadata_host = $my_ip
 
 # The port for the metadata API port (integer value)
-#metadata_port=8775
-
-# Regular expression to match the iptables rule that should
-# always be on the top. (string value)
-#iptables_top_regex=
-
-# Regular expression to match the iptables rule that should
-# always be on the bottom. (string value)
-#iptables_bottom_regex=
-
-# The table that iptables to jump to when a packet is to be
-# dropped. (string value)
-#iptables_drop_action=DROP
-
-# Amount of time, in seconds, that ovs_vsctl should wait for a
-# response from the database. 0 is to wait forever. (integer
+# Minimum value: 1
+# Maximum value: 65535
+#metadata_port = 8775
+
+# Regular expression to match the iptables rule that should always be on the
+# top. (string value)
+#iptables_top_regex =
+
+# Regular expression to match the iptables rule that should always be on the
+# bottom. (string value)
+#iptables_bottom_regex =
+
+# The table that iptables to jump to when a packet is to be dropped. (string
 # value)
-#ovs_vsctl_timeout=120
-
-# If passed, use fake network devices and addresses (boolean
-# value)
-#fake_network=false
-
-# Number of times to retry ebtables commands on failure.
-# (integer value)
-#ebtables_exec_attempts=3
-
-# Number of seconds to wait between ebtables retries.
-# (floating point value)
-#ebtables_retry_interval=1.0
-
-
-#
-# Options defined in nova.network.manager
-#
+#iptables_drop_action = DROP
+
+# Amount of time, in seconds, that ovs_vsctl should wait for a response from
+# the database. 0 is to wait forever. (integer value)
+#ovs_vsctl_timeout = 120
+
+# If passed, use fake network devices and addresses (boolean value)
+#fake_network = false
+
+# Number of times to retry ebtables commands on failure. (integer value)
+#ebtables_exec_attempts = 3
+
+# Number of seconds to wait between ebtables retries. (floating point value)
+#ebtables_retry_interval = 1.0
 
 # Bridge for simple network instances (string value)
-#flat_network_bridge=<None>
+#flat_network_bridge = <None>
 
 # DNS server for simple network (string value)
-#flat_network_dns=8.8.4.4
-
-# Whether to attempt to inject network setup into guest
-# (boolean value)
-#flat_injected=false
-
-# FlatDhcp will bridge into this interface if set (string
-# value)
-#flat_interface=<None>
+#flat_network_dns = 8.8.4.4
+
+# Whether to attempt to inject network setup into guest (boolean value)
+#flat_injected = false
+
+# FlatDhcp will bridge into this interface if set (string value)
+#flat_interface = <None>
 
 # First VLAN for private networks (integer value)
-#vlan_start=100
+# Minimum value: 1
+# Maximum value: 4094
+#vlan_start = 100
 
 # VLANs will bridge into this interface if set (string value)
-#vlan_interface=<None>
+#vlan_interface = <None>
 
 # Number of networks to support (integer value)
-#num_networks=1
+#num_networks = 1
 
 # Public IP for the cloudpipe VPN servers (string value)
-#vpn_ip=$my_ip
+#vpn_ip = $my_ip
 
 # First Vpn port for private networks (integer value)
-#vpn_start=1000
+#vpn_start = 1000
 
 # Number of addresses in each private subnet (integer value)
-#network_size=256
+#network_size = 256
 
 # Fixed IPv6 address block (string value)
-#fixed_range_v6=fd00::/48
+#fixed_range_v6 = fd00::/48
 
 # Default IPv4 gateway (string value)
-#gateway=<None>
+#gateway = <None>
 
 # Default IPv6 gateway (string value)
-#gateway_v6=<None>
+#gateway_v6 = <None>
 
 # Number of addresses reserved for vpn clients (integer value)
-#cnt_vpn_clients=0
-
-# Seconds after which a deallocated IP is disassociated
-# (integer value)
-#fixed_ip_disassociate_timeout=600
-
-# Number of attempts to create unique mac address (integer
-# value)
-#create_unique_mac_address_attempts=5
-
-# If True, skip using the queue and make local calls (boolean
+#cnt_vpn_clients = 0
+
+# Seconds after which a deallocated IP is disassociated (integer value)
+#fixed_ip_disassociate_timeout = 600
+
+# Number of attempts to create unique mac address (integer value)
+#create_unique_mac_address_attempts = 5
+
+# If True, skip using the queue and make local calls (boolean value)
+#fake_call = false
+
+# If True, unused gateway devices (VLAN and bridge) are deleted in VLAN network
+# mode with multi hosted networks (boolean value)
+#teardown_unused_network_gateway = false
+
+# If True, send a dhcp release on instance termination (boolean value)
+#force_dhcp_release = true
+
+# If True, when a DNS entry must be updated, it sends a fanout cast to all
+# network hosts to update their DNS entries in multi host mode (boolean value)
+#update_dns_entries = false
+
+# Number of seconds to wait between runs of updates to DNS entries. (integer
 # value)
-#fake_call=false
-
-# If True, unused gateway devices (VLAN and bridge) are
-# deleted in VLAN network mode with multi hosted networks
-# (boolean value)
-#teardown_unused_network_gateway=false
-
-# If True, send a dhcp release on instance termination
-# (boolean value)
-#force_dhcp_release=true
-
-# If True, when a DNS entry must be updated, it sends a fanout
-# cast to all network hosts to update their DNS entries in
-# multi host mode (boolean value)
-#update_dns_entries=false
-
-# Number of seconds to wait between runs of updates to DNS
-# entries. (integer value)
-#dns_update_periodic_interval=-1
+#dns_update_periodic_interval = -1
 
 # Domain to use for building the hostnames (string value)
-#dhcp_domain=novalocal
+#dhcp_domain = novalocal
 
 # Indicates underlying L3 management library (string value)
-#l3_lib=nova.network.l3.LinuxNetL3
-
-
-#
-# Options defined in nova.network.rpcapi
-#
+#l3_lib = nova.network.l3.LinuxNetL3
 
 # The topic network nodes listen on (string value)
-#network_topic=network
-
-# Default value for multi_host in networks. Also, if set, some
-# rpc network calls will be sent directly to host. (boolean
-# value)
-#multi_host=false
-
-
-#
-# Options defined in nova.network.security_group.openstack_driver
-#
-
-# The full class name of the security API class (string value)
-#security_group_api=nova
-
-
-#
-# Options defined in nova.objects.network
-#
-
-# DEPRECATED: THIS VALUE SHOULD BE SET WHEN CREATING THE
-# NETWORK. If True in multi_host mode, all compute hosts share
-# the same dhcp address. The same IP address used for DHCP
-# will be added on each nova-network node which is only
-# visible to the vms on the same host. (boolean value)
-#share_dhcp_address=false
-
-# DEPRECATED: THIS VALUE SHOULD BE SET WHEN CREATING THE
-# NETWORK. MTU setting for network interface. (integer value)
-#network_device_mtu=<None>
-
-
-#
-# Options defined in nova.objectstore.s3server
-#
-
-# Path to S3 buckets (string value)
-#buckets_path=$state_path/buckets
-
-# IP address for S3 API to listen (string value)
-#s3_listen=0.0.0.0
-
-# Port for S3 API to listen (integer value)
-#s3_listen_port=3333
-
-
-#
-# Options defined in nova.pci.request
-#
-
-# An alias for a PCI passthrough device requirement. This
-# allows users to specify the alias in the extra_spec for a
-# flavor, without needing to repeat all the PCI property
-# requirements. For example: pci_alias = { "name":
-# "QuicAssist",   "product_id": "0443",   "vendor_id": "8086",
-# "device_type": "ACCEL" } defines an alias for the Intel
-# QuickAssist card. (multi valued) (multi valued)
-#pci_alias=
-
-
-#
-# Options defined in nova.pci.whitelist
-#
-
-# White list of PCI devices available to VMs. For example:
-# pci_passthrough_whitelist =  [{"vendor_id": "8086",
-# "product_id": "0443"}] (multi valued)
-#pci_passthrough_whitelist=
-
-
-#
-# Options defined in nova.scheduler.driver
-#
-
-# The scheduler host manager class to use (string value)
-#scheduler_host_manager=nova.scheduler.host_manager.HostManager
-
-
-#
-# Options defined in nova.scheduler.filter_scheduler
-#
-
-# New instances will be scheduled on a host chosen randomly
-# from a subset of the N best hosts. This property defines the
-# subset size that a host is chosen from. A value of 1 chooses
-# the first host returned by the weighing functions. This
-# value must be at least 1. Any value less than 1 will be
-# ignored, and 1 will be used instead (integer value)
-#scheduler_host_subset_size=1
-
-
-#
-# Options defined in nova.scheduler.filters.aggregate_image_properties_isolation
-#
-
-# Force the filter to consider only keys matching the given
-# namespace. (string value)
-#aggregate_image_properties_isolation_namespace=<None>
-
-# The separator used between the namespace and keys (string
-# value)
-#aggregate_image_properties_isolation_separator=.
-
-
-#
-# Options defined in nova.scheduler.filters.core_filter
-#
-
-# Virtual CPU to physical CPU allocation ratio which affects
-# all CPU filters. This configuration specifies a global ratio
-# for CoreFilter. For AggregateCoreFilter, it will fall back
-# to this configuration value if no per-aggregate setting
-# found. (floating point value)
-#cpu_allocation_ratio=16.0
-
-
-#
-# Options defined in nova.scheduler.filters.disk_filter
-#
-
-# Virtual disk to physical disk allocation ratio (floating
-# point value)
-#disk_allocation_ratio=1.0
-
-
-#
-# Options defined in nova.scheduler.filters.io_ops_filter
-#
-
-# Tells filters to ignore hosts that have this many or more
-# instances currently in build, resize, snapshot, migrate,
-# rescue or unshelve task states (integer value)
-#max_io_ops_per_host=8
-
-
-#
-# Options defined in nova.scheduler.filters.isolated_hosts_filter
-#
-
-# Images to run on isolated host (list value)
-#isolated_images=
-
-# Host reserved for specific images (list value)
-#isolated_hosts=
-
-# Whether to force isolated hosts to run only isolated images
-# (boolean value)
-#restrict_isolated_hosts_to_isolated_images=true
-
-
-#
-# Options defined in nova.scheduler.filters.num_instances_filter
-#
-
-# Ignore hosts that have too many instances (integer value)
-#max_instances_per_host=50
-
-
-#
-# Options defined in nova.scheduler.filters.ram_filter
-#
-
-# Virtual ram to physical ram allocation ratio which affects
-# all ram filters. This configuration specifies a global ratio
-# for RamFilter. For AggregateRamFilter, it will fall back to
-# this configuration value if no per-aggregate setting found.
-# (floating point value)
-#ram_allocation_ratio=1.5
-
-
-#
-# Options defined in nova.scheduler.host_manager
-#
-
-# Filter classes available to the scheduler which may be
-# specified more than once.  An entry of
-# "nova.scheduler.filters.all_filters" maps to all filters
-# included with nova. (multi valued)
-#scheduler_available_filters=nova.scheduler.filters.all_filters
-
-# Which filter class names to use for filtering hosts when not
-# specified in the request. (list value)
-#scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter
-
-# Which weight class names to use for weighing hosts (list
+#network_topic = network
+
+# Default value for multi_host in networks. Also, if set, some rpc network
+# calls will be sent directly to host. (boolean value)
+#multi_host = false
+
+# DEPRECATED: The full class name of the security API class (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#security_group_api = nova
+
+#
+# From nova.virt
+#
+
+# Config drive format. (string value)
+# Allowed values: iso9660, vfat
+#config_drive_format = iso9660
+
+# Force injection to take place on a config drive (boolean value)
+#force_config_drive = false
+
+# Name and optionally path of the tool used for ISO image creation (string
 # value)
-#scheduler_weight_classes=nova.scheduler.weights.all_weighers
-
-# Determines if the Scheduler tracks changes to instances to
-# help with its filtering decisions. (boolean value)
-#scheduler_tracks_instance_changes=true
-
-
-#
-# Options defined in nova.scheduler.ironic_host_manager
-#
-
-# Which filter class names to use for filtering baremetal
-# hosts when not specified in the request. (list value)
-#baremetal_scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ExactRamFilter,ExactDiskFilter,ExactCoreFilter
-
-# Flag to decide whether to use
-# baremetal_scheduler_default_filters or not. (boolean value)
-#scheduler_use_baremetal_filters=false
-
-
-#
-# Options defined in nova.scheduler.manager
-#
-
-# Default driver to use for the scheduler (string value)
-#scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
-
-# How often (in seconds) to run periodic tasks in the
-# scheduler driver of your choice. Please note this is likely
-# to interact with the value of service_down_time, but exactly
-# how they interact will depend on your choice of scheduler
-# driver. (integer value)
-#scheduler_driver_task_period=60
-
-
-#
-# Options defined in nova.scheduler.rpcapi
-#
-
-# The topic scheduler nodes listen on (string value)
-#scheduler_topic=scheduler
-
-
-#
-# Options defined in nova.scheduler.scheduler_options
-#
-
-# Absolute path to scheduler configuration JSON file. (string
-# value)
-#scheduler_json_config_location=
-
-
-#
-# Options defined in nova.scheduler.utils
-#
-
-# Maximum number of attempts to schedule an instance (integer
-# value)
-#scheduler_max_attempts=3
-
-
-#
-# Options defined in nova.scheduler.weights.io_ops
-#
-
-# Multiplier used for weighing host io ops. Negative numbers
-# mean a preference to choose light workload compute hosts.
-# (floating point value)
-#io_ops_weight_multiplier=-1.0
-
-
-#
-# Options defined in nova.scheduler.weights.ram
-#
-
-# Multiplier used for weighing ram.  Negative numbers mean to
-# stack vs spread. (floating point value)
-#ram_weight_multiplier=1.0
-
-
-#
-# Options defined in nova.servicegroup.api
-#
-
-# The driver for servicegroup service (valid options are: db,
-# zk, mc) (string value)
-#servicegroup_driver=db
-
-
-#
-# Options defined in nova.virt.configdrive
-#
-
-# Config drive format. One of iso9660 (default) or vfat
-# (string value)
-#config_drive_format=iso9660
-
-# Set to "always" to force injection to take place on a config
-# drive. NOTE: The "always" will be deprecated in the Liberty
-# release cycle. (string value)
-#force_config_drive=<None>
-
-# Name and optionally path of the tool used for ISO image
-# creation (string value)
-#mkisofs_cmd=genisoimage
-
-
-#
-# Options defined in nova.virt.disk.api
-#
-
-# Name of the mkfs commands for ephemeral device. The format
-# is <os_type>=<mkfs command> (multi valued)
-#virt_mkfs=
-
-# Attempt to resize the filesystem by accessing the image over
-# a block device. This is done by the host and may not be
-# necessary if the image contains a recent version of cloud-
-# init. Possible mechanisms require the nbd driver (for qcow
-# and raw), or loop (for raw). (boolean value)
-#resize_fs_using_block_device=false
-
-
-#
-# Options defined in nova.virt.disk.mount.nbd
-#
-
-# Amount of time, in seconds, to wait for NBD device start up.
-# (integer value)
-#timeout_nbd=10
-
-
-#
-# Options defined in nova.virt.driver
-#
-
-# Driver to use for controlling virtualization. Options
-# include: libvirt.LibvirtDriver, xenapi.XenAPIDriver,
-# fake.FakeDriver, baremetal.BareMetalDriver,
-# vmwareapi.VMwareVCDriver, hyperv.HyperVDriver (string value)
-compute_driver=solariszones.SolarisZonesDriver
-
-# The default format an ephemeral_volume will be formatted
-# with on creation. (string value)
-#default_ephemeral_format=<None>
-
-# VM image preallocation mode: "none" => no storage
-# provisioning is done up front, "space" => storage is fully
-# allocated at instance start (string value)
-#preallocate_images=none
-
-# Whether to use cow images (boolean value)
-#use_cow_images=true
-
-# Fail instance boot if vif plugging fails (boolean value)
-#vif_plugging_is_fatal=true
-
-# Number of seconds to wait for neutron vif plugging events to
-# arrive before continuing or failing (see
-# vif_plugging_is_fatal). If this is set to zero and
-# vif_plugging_is_fatal is False, events should not be
-# expected to arrive at all. (integer value)
-#vif_plugging_timeout=300
-
-
-#
-# Options defined in nova.virt.firewall
-#
-
-# Firewall driver (defaults to hypervisor specific iptables
-# driver) (string value)
-#firewall_driver=<None>
-
-# Whether to allow network traffic from same network (boolean
-# value)
-#allow_same_net_traffic=true
-
-
-#
-# Options defined in nova.virt.hardware
-#
-
-# Defines which pcpus that instance vcpus can use. For
-# example, "4-12,^8,15" (string value)
-#vcpu_pin_set=<None>
-
-
-#
-# Options defined in nova.virt.imagecache
-#
-
-# Number of seconds to wait between runs of the image cache
-# manager. Set to -1 to disable. Setting this to 0 will run at
-# the default rate. (integer value)
-#image_cache_manager_interval=2400
-
-# Where cached images are stored under $instances_path. This
-# is NOT the full path - just a folder name. For per-compute-
-# host cached images, set to _base_$my_ip (string value)
-#image_cache_subdirectory_name=_base
+#mkisofs_cmd = genisoimage
+
+# Number of seconds to wait between runs of the image cache manager. Set to -1
+# to disable. Setting this to 0 will run at the default rate. (integer value)
+#image_cache_manager_interval = 2400
+
+# Where cached images are stored under $instances_path. This is NOT the full
+# path - just a folder name. For per-compute-host cached images, set to
+# _base_$my_ip (string value)
+#image_cache_subdirectory_name = _base
 
 # Should unused base images be removed? (boolean value)
-#remove_unused_base_images=true
-
-# Unused unresized base images younger than this will not be
-# removed (integer value)
-#remove_unused_original_minimum_age_seconds=86400
-
-
-#
-# Options defined in nova.virt.images
-#
-
-# Force backing images to raw format (boolean value)
-#force_raw_images=true
-
-
-#
-# Options defined in nova.virt.netutils
-#
-
-# Template file for injected network (string value)
-#injected_network_template=$pybasedir/nova/virt/interfaces.template
-
-
-#
-# Options defined in nova.virt.solariszones.driver
-#
-
-# Cinder volume type to use for boot volumes (string value)
-#boot_volume_type=<None>
-
-# Cinder availability zone to use for boot volumes (string
+#remove_unused_base_images = true
+
+# Unused unresized base images younger than this will not be removed (integer
 # value)
-#boot_volume_az=<None>
-
-# Default path to Glance cache for Solaris Zones. (string
+#remove_unused_original_minimum_age_seconds = 86400
+
+#
+# From oslo.log
+#
+
+# If set to true, the logging level will be set to DEBUG instead of the default
+# INFO level. (boolean value)
+#debug = false
+
+# If set to false, the logging level will be set to WARNING instead of the
+# default INFO level. (boolean value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#verbose = true
+
+# The name of a logging configuration file. This file is appended to any
+# existing logging configuration files. For details about logging configuration
+# files, see the Python logging module documentation. Note that when logging
+# configuration files are used then all logging configuration is set in the
+# configuration file and other logging configuration options are ignored (for
+# example, logging_context_format_string). (string value)
+# Deprecated group/name - [DEFAULT]/log_config
+#log_config_append = <None>
+
+# Defines the format string for %%(asctime)s in log records. Default:
+# %(default)s . This option is ignored if log_config_append is set. (string
 # value)
-#glancecache_dirname=/var/share/nova/images
-
-# Cipher to use for encryption of memory traffic during live
-# migration. If not specified, a common encryption algorithm
-# will be negotiated. Options include: none or the name of a
-# supported OpenSSL cipher algorithm. (string value)
-#live_migration_cipher=<None>
-
-# Location to store snapshots before uploading them to the
-# Glance image service. (string value)
-#solariszones_snapshots_directory=$instances_path/snapshots
-
-# Default path for suspend images for Solaris Zones. (string
-# value)
-#zones_suspend_path=/var/share/zones/SYSsuspend
-
-# Allow kernel boot options to be set in instance metadata.
+#log_date_format = %Y-%m-%d %H:%M:%S
+
+# (Optional) Name of log file to send logging output to. If no default is set,
+# logging will go to stderr as defined by use_stderr. This option is ignored if
+# log_config_append is set. (string value)
+# Deprecated group/name - [DEFAULT]/logfile
+#log_file = <None>
+
+# (Optional) The base directory used for relative log_file  paths. This option
+# is ignored if log_config_append is set. (string value)
+# Deprecated group/name - [DEFAULT]/logdir
+#log_dir = <None>
+
+# Uses logging handler designed to watch file system. When log file is moved or
+# removed this handler will open a new log file with specified path
+# instantaneously. It makes sense only if log_file option is specified and
+# Linux platform is used. This option is ignored if log_config_append is set.
 # (boolean value)
-#solariszones_boot_options=true
-
-
-#
-# Options defined in nova.vnc
-#
-
-# Location of VNC console proxy, in the form
-# "http://127.0.0.1:6080/vnc_auto.html" (string value)
-novncproxy_base_url=http://$my_ip:6080/vnc_auto.html
-
-# Location of nova xvp VNC console proxy, in the form
-# "http://127.0.0.1:6081/console" (string value)
-#xvpvncproxy_base_url=http://127.0.0.1:6081/console
-
-# IP address on which instance vncservers should listen
-# (string value)
-#vncserver_listen=127.0.0.1
-
-# The address to which proxy clients (like nova-xvpvncproxy)
-# should connect (string value)
-#vncserver_proxyclient_address=127.0.0.1
-
-# Enable VNC related features (boolean value)
-#vnc_enabled=true
-
-# Keymap for VNC (string value)
-#vnc_keymap=en-us
-
-
-#
-# Options defined in nova.vnc.xvp_proxy
-#
-
-# Port that the XCP VNC proxy should bind to (integer value)
-#xvpvncproxy_port=6081
-
-# Address that the XCP VNC proxy should bind to (string value)
-#xvpvncproxy_host=0.0.0.0
-
-
-#
-# Options defined in nova.volume
-#
-
-# The full class name of the volume API class to use (string
+#watch_log_file = false
+
+# Use syslog for logging. Existing syslog format is DEPRECATED and will be
+# changed later to honor RFC5424. This option is ignored if log_config_append
+# is set. (boolean value)
+#use_syslog = false
+
+# Syslog facility to receive log lines. This option is ignored if
+# log_config_append is set. (string value)
+#syslog_log_facility = LOG_USER
+
+# Log output to standard error. This option is ignored if log_config_append is
+# set. (boolean value)
+#use_stderr = true
+
+# Format string to use for log messages with context. (string value)
+#logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
+
+# Format string to use for log messages when context is undefined. (string
+# value)
+#logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
+
+# Additional data to append to log message when logging level for the message
+# is DEBUG. (string value)
+#logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d
+
+# Prefix each line of exception output with this format. (string value)
+#logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
+
+# Defines the format string for %(user_identity)s that is used in
+# logging_context_format_string. (string value)
+#logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
+
+# List of package logging levels in logger=LEVEL pairs. This option is ignored
+# if log_config_append is set. (list value)
+#default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
+
+# Enables or disables publication of error events. (boolean value)
+#publish_errors = false
+
+# The format for an instance that is passed with the log message. (string
+# value)
+#instance_format = "[instance: %(uuid)s] "
+
+# The format for an instance UUID that is passed with the log message. (string
 # value)
-#volume_api_class=nova.volume.cinder.API
-
-
-#
-# Options defined in nova.openstack.common.eventlet_backdoor
-#
-
-# Enable eventlet backdoor.  Acceptable values are 0, <port>,
-# and <start>:<end>, where 0 results in listening on a random
-# tcp port number; <port> results in listening on the
-# specified port number (and not enabling backdoor if that
-# port is in use); and <start>:<end> results in listening on
-# the smallest unused port number within the specified range
-# of port numbers.  The chosen port is displayed in the
-# service's log file. (string value)
-#backdoor_port=<None>
-
-
-#
-# Options defined in nova.openstack.common.memorycache
-#
-
-# Memcached servers or None for in process cache. (list value)
-#memcached_servers=<None>
-
-
-#
-# Options defined in nova.openstack.common.periodic_task
-#
-
-# Some periodic tasks can be run in a separate process. Should
-# we run them here? (boolean value)
-#run_external_periodic_tasks=true
-
-
-#
-# Options defined in nova.openstack.common.policy
-#
-
-# The JSON file that defines policies. (string value)
-#policy_file=policy.json
-
-# Default rule. Enforced when a requested rule is not found.
-# (string value)
-#policy_default_rule=default
-
-# Directories where policy configuration files are stored.
-# They can be relative to any directory in the search path
-# defined by the config_dir option, or absolute paths. The
-# file defined by policy_file must exist for these directories
-# to be searched.  Missing or empty directories are ignored.
-# (multi valued)
-#policy_dirs=policy.d
-
-
-#
-# Options defined in nova.openstack.common.versionutils
-#
-
-# Enables or disables fatal status of deprecations. (boolean
+#instance_uuid_format = "[instance: %(uuid)s] "
+
+# Enables or disables fatal status of deprecations. (boolean value)
+#fatal_deprecations = false
+
+#
+# From oslo.messaging
+#
+
+# Size of RPC connection pool. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_conn_pool_size
+#rpc_conn_pool_size = 30
+
+# ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP.
+# The "host" option should point or resolve to this address. (string value)
+#rpc_zmq_bind_address = *
+
+# MatchMaker driver. (string value)
+# Allowed values: redis, dummy
+#rpc_zmq_matchmaker = redis
+
+# Type of concurrency used. Either "native" or "eventlet" (string value)
+#rpc_zmq_concurrency = eventlet
+
+# Number of ZeroMQ contexts, defaults to 1. (integer value)
+#rpc_zmq_contexts = 1
+
+# Maximum number of ingress messages to locally buffer per topic. Default is
+# unlimited. (integer value)
+#rpc_zmq_topic_backlog = <None>
+
+# Directory for holding IPC sockets. (string value)
+#rpc_zmq_ipc_dir = /var/run/openstack
+
+# Name of this node. Must be a valid hostname, FQDN, or IP address. Must match
+# "host" option, if running Nova. (string value)
+#rpc_zmq_host = localhost
+
+# Seconds to wait before a cast expires (TTL). The default value of -1
+# specifies an infinite linger period. The value of 0 specifies no linger
+# period. Pending messages shall be discarded immediately when the socket is
+# closed. Only supported by impl_zmq. (integer value)
+#rpc_cast_timeout = -1
+
+# The default number of seconds that poll should wait. Poll raises timeout
+# exception when timeout expired. (integer value)
+#rpc_poll_timeout = 1
+
+# Expiration timeout in seconds of a name service record about existing target
+# ( < 0 means no timeout). (integer value)
+#zmq_target_expire = 120
+
+# Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. (boolean
 # value)
-#fatal_deprecations=false
+#use_pub_sub = true
+
+# Minimal port number for random ports range. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#rpc_zmq_min_port = 49152
+
+# Maximal port number for random ports range. (integer value)
+# Minimum value: 1
+# Maximum value: 65536
+#rpc_zmq_max_port = 65536
+
+# Number of retries to find free port number before fail with ZMQBindError.
+# (integer value)
+#rpc_zmq_bind_port_retries = 100
+
+# Size of executor thread pool. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_thread_pool_size
+#executor_thread_pool_size = 64
+
+# Seconds to wait for a response from a call. (integer value)
+#rpc_response_timeout = 60
+
+# A URL representing the messaging driver to use and its full configuration. If
+# not set, we fall back to the rpc_backend option and driver specific
+# configuration. (string value)
+#transport_url = <None>
+
+# The messaging driver to use, defaults to rabbit. Other drivers include amqp
+# and zmq. (string value)
+#rpc_backend = rabbit
+
+# The default exchange under which topics are scoped. May be overridden by an
+# exchange name specified in the transport_url option. (string value)
+#control_exchange = openstack
+
+#
+# From oslo.service.periodic_task
+#
+
+# Some periodic tasks can be run in a separate process. Should we run them
+# here? (boolean value)
+#run_external_periodic_tasks = true
+
+#
+# From oslo.service.service
+#
+
+# Enable eventlet backdoor.  Acceptable values are 0, <port>, and
+# <start>:<end>, where 0 results in listening on a random tcp port number;
+# <port> results in listening on the specified port number (and not enabling
+# backdoor if that port is in use); and <start>:<end> results in listening on
+# the smallest unused port number within the specified range of port numbers.
+# The chosen port is displayed in the service's log file. (string value)
+#backdoor_port = <None>
+
+# Enable eventlet backdoor, using the provided path as a unix socket that can
+# receive connections. This option is mutually exclusive with 'backdoor_port'
+# in that only one should be provided. If both are provided then the existence
+# of this option overrides the usage of that option. (string value)
+#backdoor_socket = <None>
+
+# Enables or disables logging values of all registered options when starting a
+# service (at DEBUG level). (boolean value)
+#log_options = true
+
+# Specify a timeout after which a gracefully shutdown server will exit. Zero
+# value means endless wait. (integer value)
+#graceful_shutdown_timeout = 60
 
 
 [api_database]
 
 #
-# Options defined in nova.db.sqlalchemy.api
-#
-
-# The SQLAlchemy connection string to use to connect to the
-# Nova API database. (string value)
-#connection=<None>
+# From nova
+#
+
+# The SQLAlchemy connection string to use to connect to the Nova API database.
+# (string value)
+connection = mysql://%SERVICE_USER%:%SERVICE_PASSWORD%@localhost/nova_api
 
 # If True, SQLite uses synchronous mode. (boolean value)
-#sqlite_synchronous=true
-
-# Timeout before idle SQL connections are reaped. (integer
+#sqlite_synchronous = true
+
+# The SQLAlchemy connection string to use to connect to the slave database.
+# (string value)
+#slave_connection = <None>
+
+# The SQL mode to be used for MySQL sessions. This option, including the
+# default, overrides any server-set SQL mode. To use whatever SQL mode is set
+# by the server configuration, set this to no value. Example: mysql_sql_mode=
+# (string value)
+#mysql_sql_mode = TRADITIONAL
+
+# Timeout before idle SQL connections are reaped. (integer value)
+#idle_timeout = 3600
+
+# Maximum number of SQL connections to keep open in a pool. (integer value)
+#max_pool_size = <None>
+
+# Maximum number of database connection retries during startup. Set to -1 to
+# specify an infinite retry count. (integer value)
+#max_retries = 10
+
+# Interval between retries of opening a SQL connection. (integer value)
+#retry_interval = 10
+
+# If set, use this value for max_overflow with SQLAlchemy. (integer value)
+#max_overflow = <None>
+
+# Verbosity of SQL debugging information: 0=None, 100=Everything. (integer
 # value)
-#idle_timeout=3600
-
-# Maximum number of SQL connections to keep open in a pool.
-# (integer value)
-#max_pool_size=<None>
-
-# Maximum number of database connection retries during
-# startup. Set to -1 to specify an infinite retry count.
-# (integer value)
-#max_retries=10
-
-# Interval between retries of opening a SQL connection.
-# (integer value)
-#retry_interval=10
-
-# If set, use this value for max_overflow with SQLAlchemy.
-# (integer value)
-#max_overflow=<None>
-
-# Verbosity of SQL debugging information: 0=None,
-# 100=Everything. (integer value)
-#connection_debug=0
-
-# Add Python stack traces to SQL as comment strings. (boolean
-# value)
-#connection_trace=false
-
-# If set, use this value for pool_timeout with SQLAlchemy.
-# (integer value)
-#pool_timeout=<None>
+#connection_debug = 0
+
+# Add Python stack traces to SQL as comment strings. (boolean value)
+#connection_trace = false
+
+# If set, use this value for pool_timeout with SQLAlchemy. (integer value)
+#pool_timeout = <None>
 
 
 [barbican]
 
 #
-# Options defined in nova.keymgr.barbican
-#
-
-# Info to match when looking for barbican in the service
-# catalog. Format is: separated values of the form:
-# <service_type>:<service_name>:<endpoint_type> (string value)
-#catalog_info=key-manager:barbican:public
-
-# Override service catalog lookup with template for barbican
-# endpoint e.g. http://localhost:9311/v1/%(project_id)s
+# From castellan.config
+#
+
+# Use this endpoint to connect to Barbican, for example:
+# "http://localhost:9311/" (string value)
+#barbican_endpoint = <None>
+
+# Version of the Barbican API, for example: "v1" (string value)
+#barbican_api_version = <None>
+
+# Use this endpoint to connect to Keystone (string value)
+#auth_endpoint = http://localhost:5000/v3
+
+# Number of seconds to wait before retrying poll for key creation completion
+# (integer value)
+#retry_delay = 1
+
+# Number of times to retry poll for key creation completion (integer value)
+#number_of_retries = 60
+
+#
+# From nova
+#
+
+# Info to match when looking for barbican in the service catalog. Format is:
+# separated values of the form: <service_type>:<service_name>:<endpoint_type>
 # (string value)
-#endpoint_template=<None>
+#catalog_info = key-manager:barbican:public
+
+# Override service catalog lookup with template for barbican endpoint e.g.
+# http://localhost:9311/v1/%(project_id)s (string value)
+#endpoint_template = <None>
 
 # Region name of this node (string value)
-#os_region_name=<None>
-
-
-#
-# Options defined in nova.volume.cinder
-#
-
-# Region name of this node (string value)
-#os_region_name=<None>
+#os_region_name = <None>
+
+
+[cache]
+
+#
+# From oslo.cache
+#
+
+# Prefix for building the configuration dictionary for the cache region. This
+# should not need to be changed unless there is another dogpile.cache region
+# with the same configuration name. (string value)
+#config_prefix = cache.oslo
+
+# Default TTL, in seconds, for any cached item in the dogpile.cache region.
+# This applies to any cached method that doesn't have an explicit cache
+# expiration time defined for it. (integer value)
+#expiration_time = 600
+
+# Dogpile.cache backend module. It is recommended that Memcache with pooling
+# (oslo_cache.memcache_pool) or Redis (dogpile.cache.redis) be used in
+# production deployments.  Small workloads (single process) like devstack can
+# use the dogpile.cache.memory backend. (string value)
+#backend = dogpile.cache.null
+
+# Arguments supplied to the backend module. Specify this option once per
+# argument to be passed to the dogpile.cache backend. Example format:
+# "<argname>:<value>". (multi valued)
+#backend_argument =
+
+# Proxy classes to import that will affect the way the dogpile.cache backend
+# functions. See the dogpile.cache documentation on changing-backend-behavior.
+# (list value)
+#proxies =
+
+# Global toggle for caching. (boolean value)
+#enabled = false
+
+# Extra debugging from the cache backend (cache keys, get/set/delete/etc
+# calls). This is only really useful if you need to see the specific cache-
+# backend get/set/delete calls with the keys/values.  Typically this should be
+# left set to false. (boolean value)
+#debug_cache_backend = false
+
+# Memcache servers in the format of "host:port". (dogpile.cache.memcache and
+# oslo_cache.memcache_pool backends only). (list value)
+#memcache_servers = localhost:11211
+
+# Number of seconds memcached server is considered dead before it is tried
+# again. (dogpile.cache.memcache and oslo_cache.memcache_pool backends only).
+# (integer value)
+#memcache_dead_retry = 300
+
+# Timeout in seconds for every call to a server. (dogpile.cache.memcache and
+# oslo_cache.memcache_pool backends only). (integer value)
+#memcache_socket_timeout = 3
+
+# Max total number of open connections to every memcached server.
+# (oslo_cache.memcache_pool backend only). (integer value)
+#memcache_pool_maxsize = 10
+
+# Number of seconds a connection to memcached is held unused in the pool before
+# it is closed. (oslo_cache.memcache_pool backend only). (integer value)
+#memcache_pool_unused_timeout = 60
+
+# Number of seconds that an operation will wait to get a memcache client
+# connection. (integer value)
+#memcache_pool_connection_get_timeout = 10
 
 
 [cells]
 
 #
-# Options defined in nova.cells.manager
-#
-
-# Cells communication driver to use (string value)
-#driver=nova.cells.rpc_driver.CellsRPCDriver
-
-# Number of seconds after an instance was updated or deleted
-# to continue to update cells (integer value)
-#instance_updated_at_threshold=3600
-
-# Number of instances to update per periodic task run (integer
-# value)
-#instance_update_num_instances=1
-
-
-#
-# Options defined in nova.cells.messaging
-#
-
-# Maximum number of hops for cells routing. (integer value)
-#max_hop_count=10
-
-# Cells scheduler to use (string value)
-#scheduler=nova.cells.scheduler.CellsScheduler
-
-
-#
-# Options defined in nova.cells.opts
-#
-
-# Enable cell functionality (boolean value)
-#enable=false
-
-# The topic cells nodes listen on (string value)
-#topic=cells
-
-# Manager for cells (string value)
-#manager=nova.cells.manager.CellsManager
-
-# Name of this cell (string value)
-#name=nova
-
-# Key/Multi-value list with the capabilities of the cell (list
-# value)
-#capabilities=hypervisor=xenserver;kvm,os=linux;windows
-
-# Seconds to wait for response from a call to a cell. (integer
-# value)
-#call_timeout=60
-
-# Percentage of cell capacity to hold in reserve. Affects both
-# memory and disk utilization (floating point value)
-#reserve_percent=10.0
-
-# Type of cell: api or compute (string value)
-#cell_type=compute
-
-# Number of seconds after which a lack of capability and
-# capacity updates signals the child cell is to be treated as
-# a mute. (integer value)
-#mute_child_interval=300
-
-# Seconds between bandwidth updates for cells. (integer value)
-#bandwidth_update_interval=600
-
-
-#
-# Options defined in nova.cells.rpc_driver
-#
-
-# Base queue name to use when communicating between cells.
-# Various topics by message type will be appended to this.
-# (string value)
-#rpc_driver_queue_base=cells.intercell
-
-
-#
-# Options defined in nova.cells.scheduler
-#
-
-# Filter classes the cells scheduler should use.  An entry of
+# From nova.conf
+#
+
+#
+# Enable cell functionality
+#
+# When this functionality is enabled, it lets you to scale an OpenStack
+# Compute cloud in a more distributed fashion without having to use
+# complicated technologies like database and message queue clustering.
+# Cells are configured as a tree. The top-level cell should have a host
+# that runs a nova-api service, but no nova-compute services. Each
+# child cell should run all of the typical nova-* services in a regular
+# Compute cloud except for nova-api. You can think of cells as a normal
+# Compute deployment in that each cell has its own database server and
+# message queue broker.
+#
+# Possible values:
+#
+# * True: Enables the feature
+# * False: Disables the feature
+#
+# Services which consume this:
+#
+# * nova-api
+# * nova-cells
+# * nova-compute
+#
+# Related options:
+#
+# * name: A unique cell name must be given when this functionality
+#   is enabled.
+# * cell_type: Cell type should be defined for all cells.
+#  (boolean value)
+#enable = false
+
+#
+# Topic
+#
+# This is the message queue topic that cells nodes listen on. It is
+# used when the cells service is started up to configure the queue,
+# and whenever an RPC call to the scheduler is made.
+#
+# Possible values:
+#
+# * cells: This is the recommended and the default value.
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (string value)
+#topic = cells
+
+#
+# DEPRECATED: Manager for cells
+#
+# The nova-cells manager class. This class defines RPC methods that
+# the local cell may call. This class is NOT used for messages coming
+# from other cells. That communication is driver-specific.
+#
+# Communication to other cells happens via the nova.cells.messaging module.
+# The MessageRunner from that module will handle routing the message to
+# the correct cell via the communication driver. Most methods below
+# create 'targeted' (where we want to route a message to a specific cell)
+# or 'broadcast' (where we want a message to go to multiple cells)
+# messages.
+#
+# Scheduling requests get passed to the scheduler class.
+#
+# Possible values:
+#
+# * 'nova.cells.manager.CellsManager' is the only possible value for
+#   this option as of the Mitaka release
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#manager = nova.cells.manager.CellsManager
+
+#
+# Name of the current cell
+#
+# This value must be unique for each cell. Name of a cell is used as
+# its id, leaving this option unset or setting the same name for
+# two or more cells may cause unexpected behaviour.
+#
+# Possible values:
+#
+# * Unique name string
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * enabled: This option is meaningful only when cells service
+#   is enabled
+#  (string value)
+#name = nova
+
+#
+# Cell capabilities
+#
+# List of arbitrary key=value pairs defining capabilities of the
+# current cell to be sent to the parent cells. These capabilities
+# are intended to be used in cells scheduler filters/weighers.
+#
+# Possible values:
+#
+# * key=value pairs list for example;
+#   ``hypervisor=xenserver;kvm,os=linux;windows``
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (list value)
+#capabilities = hypervisor=xenserver;kvm,os=linux;windows
+
+#
+# Call timeout
+#
+# Cell messaging module waits for response(s) to be put into the
+# eventlet queue. This option defines the seconds waited for
+# response from a call to a cell.
+#
+# Possible values:
+#
+# * Time in seconds.
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (integer value)
+#call_timeout = 60
+
+#
+# Reserve percentage
+#
+# Percentage of cell capacity to hold in reserve, so the minimum
+# amount of free resource is considered to be;
+#   min_free = total * (reserve_percent / 100.0)
+# This option affects both memory and disk utilization.
+# The primary purpose of this reserve is to ensure some space is
+# available for users who want to resize their instance to be larger.
+# Note that currently once the capacity expands into this reserve
+# space this option is ignored.
+#
+# Possible values:
+#
+# * Float percentage value
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (floating point value)
+#reserve_percent = 10.0
+
+#
+# Type of cell
+#
+# When cells feature is enabled the hosts in the OpenStack Compute
+# cloud are partitioned into groups. Cells are configured as a tree.
+# The top-level cell's cell_type must be set to ``api``. All other
+# cells are defined as a ``compute cell`` by default.
+#
+# Possible values:
+#
+# * api: Cell type of top-level cell.
+# * compute: Cell type of all child cells. (Default)
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * compute_api_class: This option must be set to cells api driver
+#   for the top-level cell (nova.compute.cells_api.ComputeCellsAPI)
+# * quota_driver: Disable quota checking for the child cells.
+#   (nova.quota.NoopQuotaDriver)
+#  (string value)
+# Allowed values: api, compute
+#cell_type = compute
+
+#
+# Mute child interval
+#
+# Number of seconds after which a lack of capability and capacity
+# update the child cell is to be treated as a mute cell. Then the
+# child cell will be weighed as recommend highly that it be skipped.
+#
+# Possible values:
+#
+# * Time in seconds.
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (integer value)
+#mute_child_interval = 300
+
+#
+# Bandwidth update interval
+#
+# Seconds between bandwidth usage cache updates for cells.
+#
+# Possible values:
+#
+# * Time in seconds.
+#
+# Services which consume this:
+#
+# * nova-compute
+#
+# Related options:
+#
+# * None
+#  (integer value)
+#bandwidth_update_interval = 600
+
+#
+# Instance update sync database limit
+#
+# Number of instances to pull from the database at one time for
+# a sync. If there are more instances to update the results will
+# be paged through.
+#
+# Possible values:
+#
+# * Number of instances.
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (integer value)
+#instance_update_sync_database_limit = 100
+
+#
+# Mute weight multiplier
+#
+# Multiplier used to weigh mute children. Mute children cells are
+# recommended to be skipped so their weight is multiplied by this
+# negative value.
+#
+# Possible values:
+#
+# * Negative numeric number
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (floating point value)
+#mute_weight_multiplier = -10000.0
+
+#
+# Ram weight multiplier
+#
+# Multiplier used for weighing ram. Negative numbers indicate that
+# Compute should stack VMs on one host instead of spreading out new
+# VMs to more hosts in the cell.
+#
+# Possible values:
+#
+# * Numeric multiplier
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (floating point value)
+#ram_weight_multiplier = 10.0
+
+#
+# Offset weight multiplier
+#
+# Multiplier used to weigh offset weigher. Cells with higher
+# weight_offsets in the DB will be preferred. The weight_offset
+# is a property of a cell stored in the database. It can be used
+# by a deployer to have scheduling decisions favor or disfavor
+# cells based on the setting.
+#
+# Possible values:
+#
+# * Numeric multiplier
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (floating point value)
+#offset_weight_multiplier = 1.0
+
+#
+# Cells communication driver
+#
+# Driver for cell<->cell communication via RPC. This is used to
+# setup the RPC consumers as well as to send a message to another cell.
+# 'nova.cells.rpc_driver.CellsRPCDriver' starts up 2 separate servers
+# for handling inter-cell communication via RPC.
+#
+# Possible values:
+#
+# * 'nova.cells.rpc_driver.CellsRPCDriver' is the default driver
+# * Otherwise it should be the full Python path to the class to be used
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (string value)
+#driver = nova.cells.rpc_driver.CellsRPCDriver
+
+#
+# Instance updated at threshold
+#
+# Number of seconds after an instance was updated or deleted to
+# continue to update cells. This option lets cells manager to only
+# attempt to sync instances that have been updated recently.
+# i.e., a threshold of 3600 means to only update instances that
+# have modified in the last hour.
+#
+# Possible values:
+#
+# * Threshold in seconds
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * This value is used with the ``instance_update_num_instances``
+#   value in a periodic task run.
+#  (integer value)
+#instance_updated_at_threshold = 3600
+
+#
+# Instance update num instances
+#
+# On every run of the periodic task, nova cells manager will attempt to
+# sync instance_updated_at_threshold number of instances. When the
+# manager gets the list of instances, it shuffles them so that multiple
+# nova-cells services do not attempt to sync the same instances in
+# lockstep.
+#
+# Possible values:
+#
+# * Positive integer number
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * This value is used with the ``instance_updated_at_threshold``
+#   value in a periodic task run.
+#  (integer value)
+#instance_update_num_instances = 1
+
+#
+# Maximum hop count
+#
+# When processing a targeted message, if the local cell is not the
+# target, a route is defined between neighbouring cells. And the
+# message is processed across the whole routing path. This option
+# defines the maximum hop counts until reaching the target.
+#
+# Possible values:
+#
+# * Positive integer value
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (integer value)
+#max_hop_count = 10
+
+#
+# Cells scheduler
+#
+# The class of the driver used by the cells scheduler. This should be
+# the full Python path to the class to be used. If nothing is specified
+# in this option, the CellsScheduler is used.
+#
+#
+# Possible values:
+#
+# * 'nova.cells.scheduler.CellsScheduler' is the default option
+# * Otherwise it should be the full Python path to the class to be used
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (string value)
+#scheduler = nova.cells.scheduler.CellsScheduler
+
+#
+# RPC driver queue base
+#
+# When sending a message to another cell by JSON-ifying the message
+# and making an RPC cast to 'process_message', a base queue is used.
+# This option defines the base queue name to be used when communicating
+# between cells. Various topics by message type will be appended to this.
+#
+# Possible values:
+#
+# * The base queue name to be used when communicating between cells.
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (string value)
+#rpc_driver_queue_base = cells.intercell
+
+#
+# Scheduler filter classes
+#
+# Filter classes the cells scheduler should use. An entry of
 # "nova.cells.filters.all_filters" maps to all cells filters
-# included with nova. (list value)
-#scheduler_filter_classes=nova.cells.filters.all_filters
-
-# Weigher classes the cells scheduler should use.  An entry of
+# included with nova. As of the Mitaka release the following
+# filter classes are available:
+#
+# Different cell filter: A scheduler hint of 'different_cell'
+# with a value of a full cell name may be specified to route
+# a build away from a particular cell.
+#
+# Image properties filter: Image metadata named
+# 'hypervisor_version_requires' with a version specification
+# may be specified to ensure the build goes to a cell which
+# has hypervisors of the required version. If either the version
+# requirement on the image or the hypervisor capability of the
+# cell is not present, this filter returns without filtering out
+# the cells.
+#
+# Target cell filter: A scheduler hint of 'target_cell' with a
+# value of a full cell name may be specified to route a build to
+# a particular cell. No error handling is done as there's no way
+# to know whether the full path is a valid.
+#
+# As an admin user, you can also add a filter that directs builds
+# to a particular cell.
+#
+#
+# Possible values:
+#
+# * 'nova.cells.filters.all_filters' is the default option
+# * Otherwise it should be the full Python path to the class to be used
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (list value)
+#scheduler_filter_classes = nova.cells.filters.all_filters
+
+#
+# Scheduler weight classes
+#
+# Weigher classes the cells scheduler should use. An entry of
 # "nova.cells.weights.all_weighers" maps to all cell weighers
-# included with nova. (list value)
-#scheduler_weight_classes=nova.cells.weights.all_weighers
-
-# How many retries when no cells are available. (integer
-# value)
-#scheduler_retries=10
-
-# How often to retry in seconds when no cells are available.
-# (integer value)
-#scheduler_retry_delay=2
-
-
-#
-# Options defined in nova.cells.state
-#
-
-# Interval, in seconds, for getting fresh cell information
-# from the database. (integer value)
-#db_check_interval=60
-
-# Configuration file from which to read cells configuration.
-# If given, overrides reading cells from the database. (string
-# value)
-#cells_config=<None>
-
-
-#
-# Options defined in nova.cells.weights.mute_child
-#
-
-# Multiplier used to weigh mute children. (The value should be
-# negative.) (floating point value)
-#mute_weight_multiplier=-10.0
-
-# Weight value assigned to mute children. (The value should be
-# positive.) (floating point value)
-#mute_weight_value=1000.0
-
-
-#
-# Options defined in nova.cells.weights.ram_by_instance_type
-#
-
-# Multiplier used for weighing ram.  Negative numbers mean to
-# stack vs spread. (floating point value)
-#ram_weight_multiplier=10.0
-
-
-#
-# Options defined in nova.cells.weights.weight_offset
-#
-
-# Multiplier used to weigh offset weigher. (floating point
-# value)
-#offset_weight_multiplier=1.0
+# included with nova. As of the Mitaka release the following
+# weight classes are available:
+#
+# mute_child: Downgrades the likelihood of child cells being
+# chosen for scheduling requests, which haven't sent capacity
+# or capability updates in a while. Options include
+# mute_weight_multiplier (multiplier for mute children; value
+# should be negative).
+#
+# ram_by_instance_type: Select cells with the most RAM capacity
+# for the instance type being requested. Because higher weights
+# win, Compute returns the number of available units for the
+# instance type requested. The ram_weight_multiplier option defaults
+# to 10.0 that adds to the weight by a factor of 10. Use a negative
+# number to stack VMs on one host instead of spreading out new VMs
+# to more hosts in the cell.
+#
+# weight_offset: Allows modifying the database to weight a particular
+# cell. The highest weight will be the first cell to be scheduled for
+# launching an instance. When the weight_offset of a cell is set to 0,
+# it is unlikely to be picked but it could be picked if other cells
+# have a lower weight, like if they're full. And when the weight_offset
+# is set to a very high value (for example, '999999999999999'), it is
+# likely to be picked if another cell do not have a higher weight.
+#
+# Possible values:
+#
+# * 'nova.cells.weights.all_weighers' is the default option
+# * Otherwise it should be the full Python path to the class to be used
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (list value)
+#scheduler_weight_classes = nova.cells.weights.all_weighers
+
+#
+# Scheduler retries
+#
+# How many retries when no cells are available. Specifies how many
+# times the scheduler tries to launch a new instance when no cells
+# are available.
+#
+# Possible values:
+#
+# * Positive integer value
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * This value is used with the ``scheduler_retry_delay`` value
+#   while retrying to find a suitable cell.
+#  (integer value)
+#scheduler_retries = 10
+
+#
+# Scheduler retry delay
+#
+# Specifies the delay (in seconds) between scheduling retries when no
+# cell can be found to place the new instance on. When the instance
+# could not be scheduled to a cell after ``scheduler_retries`` in
+# combination with ``scheduler_retry_delay``, then the scheduling
+# of the instance failed.
+#
+# Possible values:
+#
+# * Time in seconds.
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * This value is used with the ``scheduler_retries`` value
+#   while retrying to find a suitable cell.
+#  (integer value)
+#scheduler_retry_delay = 2
+
+#
+# DB check interval
+#
+# Cell state manager updates cell status for all cells from the DB
+# only after this particular interval time is passed. Otherwise cached
+# status are used. If this value is 0 or negative all cell status are
+# updated from the DB whenever a state is needed.
+#
+# Possible values:
+#
+# * Interval time, in seconds.
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (integer value)
+#db_check_interval = 60
+
+#
+# Optional cells configuration
+#
+# Configuration file from which to read cells configuration. If given,
+# overrides reading cells from the database.
+#
+# Cells store all inter-cell communication data, including user names
+# and passwords, in the database. Because the cells data is not updated
+# very frequently, use this option to specify a JSON file to store
+# cells data. With this configuration, the database is no longer
+# consulted when reloading the cells data. The file must have columns
+# present in the Cell model (excluding common database fields and the
+# id column). You must specify the queue connection information through
+# a transport_url field, instead of username, password, and so on.
+#
+# The transport_url has the following form:
+# rabbit://USERNAME:[email protected]:PORT/VIRTUAL_HOST
+#
+# Possible values:
+#
+# The scheme can be either qpid or rabbit, the following sample shows
+# this optional configuration:
+#
+#     {
+#         "parent": {
+#             "name": "parent",
+#             "api_url": "http://api.example.com:8774",
+#             "transport_url": "rabbit://rabbit.example.com",
+#             "weight_offset": 0.0,
+#             "weight_scale": 1.0,
+#             "is_parent": true
+#         },
+#         "cell1": {
+#             "name": "cell1",
+#             "api_url": "http://api.example.com:8774",
+#             "transport_url": "rabbit://rabbit1.example.com",
+#             "weight_offset": 0.0,
+#             "weight_scale": 1.0,
+#             "is_parent": false
+#         },
+#         "cell2": {
+#             "name": "cell2",
+#             "api_url": "http://api.example.com:8774",
+#             "transport_url": "rabbit://rabbit2.example.com",
+#             "weight_offset": 0.0,
+#             "weight_scale": 1.0,
+#             "is_parent": false
+#         }
+#     }
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (string value)
+#cells_config = <None>
 
 
 [cinder]
 
 #
-# Options defined in nova.volume.cinder
-#
-
-# Info to match when looking for cinder in the service
-# catalog. Format is: separated values of the form:
-# <service_type>:<service_name>:<endpoint_type> (string value)
-#catalog_info=volumev2:cinderv2:publicURL
-
-# Override service catalog lookup with template for cinder
-# endpoint e.g. http://localhost:8776/v1/%(project_id)s
+# From nova
+#
+
+# Info to match when looking for cinder in the service catalog. Format is:
+# separated values of the form: <service_type>:<service_name>:<endpoint_type>
 # (string value)
-#endpoint_template=<None>
-
-# Number of cinderclient retries on failed http calls (integer
-# value)
-#http_retries=3
-
-# Allow attach between instance and volume in different
-# availability zones. (boolean value)
-#cross_az_attach=true
+#catalog_info = volumev2:cinderv2:publicURL
+
+# Override service catalog lookup with template for cinder endpoint e.g.
+# http://localhost:8776/v1/%(project_id)s (string value)
+#endpoint_template = <None>
+
+# Region name of this node (string value)
+#os_region_name = <None>
+
+# Number of cinderclient retries on failed http calls (integer value)
+#http_retries = 3
+
+# Allow attach between instance and volume in different availability zones. If
+# False, volumes attached to an instance must be in the same availability zone
+# in Cinder as the instance availability zone in Nova. This also means care
+# should be taken when booting an instance from a volume where source is not
+# "volume" because Nova will attempt to create a volume using the same
+# availability zone as what is assigned to the instance. If that AZ is not in
+# Cinder (or allow_availability_zone_fallback=False in cinder.conf), the volume
+# create request will fail and the instance will fail the build request.
+# (boolean value)
+#cross_az_attach = true
 
 
 [conductor]
 
 #
-# Options defined in nova.conductor.api
-#
-
-# Perform nova-conductor operations locally (boolean value)
-#use_local=false
+# From nova.conf
+#
+
+# DEPRECATED: Perform nova-conductor operations locally. This legacy mode was
+# introduced to bridge a gap during the transition to the conductor service. It
+# no longer represents a reasonable alternative for deployers. Removal may be
+# as early as 14.0 (boolean value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#use_local = false
 
 # The topic on which conductor nodes listen (string value)
-#topic=conductor
-
-# Full class name for the Manager for conductor (string value)
-#manager=nova.conductor.manager.ConductorManager
-
-# Number of workers for OpenStack Conductor service. The
-# default will be the number of CPUs available. (integer
-# value)
-workers=1
+#topic = conductor
+
+# DEPRECATED: Full class name for the Manager for conductor. Removal in 14.0
+# (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#manager = nova.conductor.manager.ConductorManager
+
+# Number of workers for OpenStack Conductor service. The default will be the
+# number of CPUs available. (integer value)
+workers = 1
+
+
+[cors]
+
+#
+# From oslo.middleware
+#
+
+# Indicate whether this resource may be shared with the domain received in the
+# requests "origin" header. (list value)
+#allowed_origin = <None>
+
+# Indicate that the actual request can include user credentials (boolean value)
+#allow_credentials = true
+
+# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple
+# Headers. (list value)
+#expose_headers = X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token,X-Service-Token
+
+# Maximum cache age of CORS preflight requests. (integer value)
+#max_age = 3600
+
+# Indicate which methods can be used during the actual request. (list value)
+#allow_methods = GET,PUT,POST,DELETE,PATCH
+
+# Indicate which header field names may be used during the actual request.
+# (list value)
+#allow_headers = X-Auth-Token,X-Openstack-Request-Id,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id
+
+
+[cors.subdomain]
+
+#
+# From oslo.middleware
+#
+
+# Indicate whether this resource may be shared with the domain received in the
+# requests "origin" header. (list value)
+#allowed_origin = <None>
+
+# Indicate that the actual request can include user credentials (boolean value)
+#allow_credentials = true
+
+# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple
+# Headers. (list value)
+#expose_headers = X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token,X-Service-Token
+
+# Maximum cache age of CORS preflight requests. (integer value)
+#max_age = 3600
+
+# Indicate which methods can be used during the actual request. (list value)
+#allow_methods = GET,PUT,POST,DELETE,PATCH
+
+# Indicate which header field names may be used during the actual request.
+# (list value)
+#allow_headers = X-Auth-Token,X-Openstack-Request-Id,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id
 
 
 [database]
 
 #
-# Options defined in oslo.db
+# From nova
 #
 
 # The file name to use with SQLite. (string value)
-#sqlite_db=oslo.sqlite
+# Deprecated group/name - [DEFAULT]/sqlite_db
+#sqlite_db = oslo.sqlite
 
 # If True, SQLite uses synchronous mode. (boolean value)
-#sqlite_synchronous=true
+# Deprecated group/name - [DEFAULT]/sqlite_synchronous
+#sqlite_synchronous = true
 
 # The back end to use for the database. (string value)
 # Deprecated group/name - [DEFAULT]/db_backend
-#backend=sqlalchemy
-
-# The SQLAlchemy connection string to use to connect to the
-# database. (string value)
+#backend = sqlalchemy
+
+# The SQLAlchemy connection string to use to connect to the database. (string
+# value)
 # Deprecated group/name - [DEFAULT]/sql_connection
 # Deprecated group/name - [DATABASE]/sql_connection
 # Deprecated group/name - [sql]/connection
-connection=mysql://%SERVICE_USER%:%SERVICE_PASSWORD%@localhost/nova
-
-# The SQLAlchemy connection string to use to connect to the
-# slave database. (string value)
-#slave_connection=<None>
-
-# The SQL mode to be used for MySQL sessions. This option,
-# including the default, overrides any server-set SQL mode. To
-# use whatever SQL mode is set by the server configuration,
-# set this to no value. Example: mysql_sql_mode= (string
-# value)
-#mysql_sql_mode=TRADITIONAL
-
-# This configures the MySQL storage engine. This allows for OpenStack to
-# support different storage engines such as InnoDB, NDB, etc. By Default,
-# this value will be set to InnoDB. For MySQL Cluster, set to NDBCLUSTER.
-# Example: mysql_storage_engine=(string value)
-#mysql_storage_engine = InnoDB
-
-# Timeout before idle SQL connections are reaped. (integer
-# value)
+connection = mysql://%SERVICE_USER%:%SERVICE_PASSWORD%@localhost/nova
+
+# The SQLAlchemy connection string to use to connect to the slave database.
+# (string value)
+#slave_connection = <None>
+
+# The SQL mode to be used for MySQL sessions. This option, including the
+# default, overrides any server-set SQL mode. To use whatever SQL mode is set
+# by the server configuration, set this to no value. Example: mysql_sql_mode=
+# (string value)
+#mysql_sql_mode = TRADITIONAL
+
+# Timeout before idle SQL connections are reaped. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_idle_timeout
 # Deprecated group/name - [DATABASE]/sql_idle_timeout
 # Deprecated group/name - [sql]/idle_timeout
-#idle_timeout=3600
-
-# Minimum number of SQL connections to keep open in a pool.
-# (integer value)
+#idle_timeout = 3600
+
+# Minimum number of SQL connections to keep open in a pool. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_min_pool_size
 # Deprecated group/name - [DATABASE]/sql_min_pool_size
-#min_pool_size=1
-
-# Maximum number of SQL connections to keep open in a pool.
-# (integer value)
+#min_pool_size = 1
+
+# Maximum number of SQL connections to keep open in a pool. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_pool_size
 # Deprecated group/name - [DATABASE]/sql_max_pool_size
-#max_pool_size=<None>
-
-# Maximum number of database connection retries during
-# startup. Set to -1 to specify an infinite retry count.
-# (integer value)
+#max_pool_size = <None>
+
+# Maximum number of database connection retries during startup. Set to -1 to
+# specify an infinite retry count. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_retries
 # Deprecated group/name - [DATABASE]/sql_max_retries
-#max_retries=10
-
-# Interval between retries of opening a SQL connection.
-# (integer value)
+#max_retries = 10
+
+# Interval between retries of opening a SQL connection. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_retry_interval
 # Deprecated group/name - [DATABASE]/reconnect_interval
-#retry_interval=10
-
-# If set, use this value for max_overflow with SQLAlchemy.
-# (integer value)
+#retry_interval = 10
+
+# If set, use this value for max_overflow with SQLAlchemy. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_overflow
 # Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
-#max_overflow=<None>
-
-# Verbosity of SQL debugging information: 0=None,
-# 100=Everything. (integer value)
+#max_overflow = 50
+
+# Verbosity of SQL debugging information: 0=None, 100=Everything. (integer
+# value)
 # Deprecated group/name - [DEFAULT]/sql_connection_debug
-#connection_debug=0
-
-# Add Python stack traces to SQL as comment strings. (boolean
-# value)
+#connection_debug = 0
+
+# Add Python stack traces to SQL as comment strings. (boolean value)
 # Deprecated group/name - [DEFAULT]/sql_connection_trace
-#connection_trace=false
-
-# If set, use this value for pool_timeout with SQLAlchemy.
-# (integer value)
+#connection_trace = false
+
+# If set, use this value for pool_timeout with SQLAlchemy. (integer value)
 # Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
-#pool_timeout=<None>
-
-# Enable the experimental use of database reconnect on
-# connection lost. (boolean value)
-#use_db_reconnect=false
-
-# Seconds between retries of a database transaction. (integer
-# value)
-#db_retry_interval=1
-
-# If True, increases the interval between retries of a
-# database operation up to db_max_retry_interval. (boolean
+#pool_timeout = <None>
+
+# Enable the experimental use of database reconnect on connection lost.
+# (boolean value)
+#use_db_reconnect = false
+
+# Seconds between retries of a database transaction. (integer value)
+#db_retry_interval = 1
+
+# If True, increases the interval between retries of a database operation up to
+# db_max_retry_interval. (boolean value)
+#db_inc_retry_interval = true
+
+# If db_inc_retry_interval is set, the maximum seconds between retries of a
+# database operation. (integer value)
+#db_max_retry_interval = 10
+
+# Maximum retries in case of connection error or deadlock error before error is
+# raised. Set to -1 to specify an infinite retry count. (integer value)
+#db_max_retries = 20
+
+#
+# From oslo.db
+#
+
+# The file name to use with SQLite. (string value)
+# Deprecated group/name - [DEFAULT]/sqlite_db
+#sqlite_db = oslo.sqlite
+
+# If True, SQLite uses synchronous mode. (boolean value)
+# Deprecated group/name - [DEFAULT]/sqlite_synchronous
+#sqlite_synchronous = true
+
+# The back end to use for the database. (string value)
+# Deprecated group/name - [DEFAULT]/db_backend
+#backend = sqlalchemy
+
+# The SQLAlchemy connection string to use to connect to the database. (string
 # value)
-#db_inc_retry_interval=true
-
-# If db_inc_retry_interval is set, the maximum seconds between
-# retries of a database operation. (integer value)
-#db_max_retry_interval=10
-
-# Maximum retries in case of connection error or deadlock
-# error before error is raised. Set to -1 to specify an
-# infinite retry count. (integer value)
-#db_max_retries=20
-
-
-#
-# Options defined in oslo.db.concurrency
-#
-
-# Enable the experimental use of thread pooling for all DB API
-# calls (boolean value)
+# Deprecated group/name - [DEFAULT]/sql_connection
+# Deprecated group/name - [DATABASE]/sql_connection
+# Deprecated group/name - [sql]/connection
+#connection = <None>
+
+# The SQLAlchemy connection string to use to connect to the slave database.
+# (string value)
+#slave_connection = <None>
+
+# The SQL mode to be used for MySQL sessions. This option, including the
+# default, overrides any server-set SQL mode. To use whatever SQL mode is set
+# by the server configuration, set this to no value. Example: mysql_sql_mode=
+# (string value)
+#mysql_sql_mode = TRADITIONAL
+
+# Timeout before idle SQL connections are reaped. (integer value)
+# Deprecated group/name - [DEFAULT]/sql_idle_timeout
+# Deprecated group/name - [DATABASE]/sql_idle_timeout
+# Deprecated group/name - [sql]/idle_timeout
+#idle_timeout = 3600
+
+# Minimum number of SQL connections to keep open in a pool. (integer value)
+# Deprecated group/name - [DEFAULT]/sql_min_pool_size
+# Deprecated group/name - [DATABASE]/sql_min_pool_size
+#min_pool_size = 1
+
+# Maximum number of SQL connections to keep open in a pool. (integer value)
+# Deprecated group/name - [DEFAULT]/sql_max_pool_size
+# Deprecated group/name - [DATABASE]/sql_max_pool_size
+#max_pool_size = <None>
+
+# Maximum number of database connection retries during startup. Set to -1 to
+# specify an infinite retry count. (integer value)
+# Deprecated group/name - [DEFAULT]/sql_max_retries
+# Deprecated group/name - [DATABASE]/sql_max_retries
+#max_retries = 10
+
+# Interval between retries of opening a SQL connection. (integer value)
+# Deprecated group/name - [DEFAULT]/sql_retry_interval
+# Deprecated group/name - [DATABASE]/reconnect_interval
+#retry_interval = 10
+
+# If set, use this value for max_overflow with SQLAlchemy. (integer value)
+# Deprecated group/name - [DEFAULT]/sql_max_overflow
+# Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
+#max_overflow = 50
+
+# Verbosity of SQL debugging information: 0=None, 100=Everything. (integer
+# value)
+# Deprecated group/name - [DEFAULT]/sql_connection_debug
+#connection_debug = 0
+
+# Add Python stack traces to SQL as comment strings. (boolean value)
+# Deprecated group/name - [DEFAULT]/sql_connection_trace
+#connection_trace = false
+
+# If set, use this value for pool_timeout with SQLAlchemy. (integer value)
+# Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
+#pool_timeout = <None>
+
+# Enable the experimental use of database reconnect on connection lost.
+# (boolean value)
+#use_db_reconnect = false
+
+# Seconds between retries of a database transaction. (integer value)
+#db_retry_interval = 1
+
+# If True, increases the interval between retries of a database operation up to
+# db_max_retry_interval. (boolean value)
+#db_inc_retry_interval = true
+
+# If db_inc_retry_interval is set, the maximum seconds between retries of a
+# database operation. (integer value)
+#db_max_retry_interval = 10
+
+# Maximum retries in case of connection error or deadlock error before error is
+# raised. Set to -1 to specify an infinite retry count. (integer value)
+#db_max_retries = 20
+
+#
+# From oslo.db.concurrency
+#
+
+# Enable the experimental use of thread pooling for all DB API calls (boolean
+# value)
 # Deprecated group/name - [DEFAULT]/dbapi_use_tpool
-#use_tpool=false
-
-
-#
-# Options defined in nova.db.sqlalchemy.api
-#
-
-# The SQLAlchemy connection string to use to connect to the
-# slave database. (string value)
-#slave_connection=<None>
-
-# The SQL mode to be used for MySQL sessions. This option,
-# including the default, overrides any server-set SQL mode. To
-# use whatever SQL mode is set by the server configuration,
-# set this to no value. Example: mysql_sql_mode= (string
-# value)
-#mysql_sql_mode=TRADITIONAL
+#use_tpool = false
 
 
 [ephemeral_storage_encryption]
 
 #
-# Options defined in nova.compute.api
+# From nova.conf
 #
 
 # Whether to encrypt ephemeral storage (boolean value)
-#enabled=false
-
-# The cipher and mode to be used to encrypt ephemeral storage.
-# Which ciphers are available ciphers depends on kernel
-# support. See /proc/crypto for the list of available options.
-# (string value)
-#cipher=aes-xts-plain64
-
-# The bit length of the encryption key to be used to encrypt
-# ephemeral storage (in XTS mode only half of the bits are
-# used for encryption key) (integer value)
-#key_size=512
+#enabled = false
+
+# The cipher and mode to be used to encrypt ephemeral storage. Which ciphers
+# are available ciphers depends on kernel support. See /proc/crypto for the
+# list of available options. (string value)
+#cipher = aes-xts-plain64
+
+# The bit length of the encryption key to be used to encrypt ephemeral storage
+# (in XTS mode only half of the bits are used for encryption key) (integer
+# value)
+#key_size = 512
 
 
 [glance]
 
 #
-# Options defined in nova.image.glance
-#
-
-# Default glance hostname or IP address (string value)
-#host=$my_ip
-
-# Default glance port (integer value)
-#port=9292
-
-# Default protocol to use when connecting to glance. Set to
-# https for SSL. (string value)
-#protocol=http
-
-# A list of the glance api servers available to nova. Prefix
-# with https:// for ssl-based glance api servers.
-# ([hostname|ip]:port) (list value)
-#api_servers=<None>
-
-# Allow to perform insecure SSL (https) requests to glance
-# (boolean value)
-#api_insecure=false
-
-# Number of retries when uploading / downloading an image to /
-# from glance. (integer value)
-#num_retries=0
-
-# A list of url scheme that can be downloaded directly via the
-# direct_url.  Currently supported schemes: [file]. (list
-# value)
-#allowed_direct_url_schemes=
+# From nova
+#
+
+# DEPRECATED: Glance server hostname or IP address. Use the "api_servers"
+# option instead. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#host = $my_ip
+
+# DEPRECATED: Glance server port. Use the "api_servers" option instead.
+# (integer value)
+# Minimum value: 1
+# Maximum value: 65535
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#port = 9292
+
+# DEPRECATED: Protocol to use when connecting to glance. Set to https for SSL.
+# Use the "api_servers" option instead. (string value)
+# Allowed values: http, https
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#protocol = http
+
+#
+# A list of the glance api servers endpoints available to nova. These
+# should be fully qualified urls of the form
+# "scheme://hostname:port[/path]" (i.e. "http://10.0.1.0:9292" or
+# "https://my.glance.server/image") (list value)
+#api_servers = <None>
+
+# Allow to perform insecure SSL (https) requests to glance (boolean value)
+#api_insecure = false
+
+# Number of retries when uploading / downloading an image to / from glance.
+# (integer value)
+#num_retries = 0
+
+# A list of url scheme that can be downloaded directly via the direct_url.
+# Currently supported schemes: [file]. (list value)
+#allowed_direct_url_schemes =
+
+# Require Nova to perform signature verification on each image downloaded from
+# Glance. (boolean value)
+#verify_glance_signatures = false
 
 
 [guestfs]
 
 #
-# Options defined in nova.virt.disk.vfs.guestfs
+# From nova.virt
 #
 
 # Enable guestfs debug (boolean value)
-#debug=false
-
-
-[hyperv]
-
-#
-# Options defined in nova.virt.hyperv.pathutils
-#
-
-# The name of a Windows share name mapped to the
-# "instances_path" dir and used by the resize feature to copy
-# files to the target host. If left blank, an administrative
-# share will be used, looking for the same "instances_path"
-# used locally (string value)
-#instances_path_share=
-
-
-#
-# Options defined in nova.virt.hyperv.utilsfactory
-#
-
-# Force V1 WMI utility classes (boolean value)
-#force_hyperv_utils_v1=false
-
-# Force V1 volume utility class (boolean value)
-#force_volumeutils_v1=false
-
-
-#
-# Options defined in nova.virt.hyperv.vif
-#
-
-# External virtual switch Name, if not provided, the first
-# external virtual switch is used (string value)
-#vswitch_name=<None>
-
-
-#
-# Options defined in nova.virt.hyperv.vmops
-#
-
-# Required for live migration among hosts with different CPU
-# features (boolean value)
-#limit_cpu_features=false
-
-# Sets the admin password in the config drive image (boolean
-# value)
-#config_drive_inject_password=false
-
-# Path of qemu-img command which is used to convert between
-# different image types (string value)
-#qemu_img_cmd=qemu-img.exe
-
-# Attaches the Config Drive image as a cdrom drive instead of
-# a disk drive (boolean value)
-#config_drive_cdrom=false
-
-# Enables metrics collections for an instance by using
-# Hyper-V's metric APIs. Collected data can by retrieved by
-# other apps and services, e.g.: Ceilometer. Requires Hyper-V
-# / Windows Server 2012 and above (boolean value)
-#enable_instance_metrics_collection=false
-
-# Enables dynamic memory allocation (ballooning) when set to a
-# value greater than 1. The value expresses the ratio between
-# the total RAM assigned to an instance and its startup RAM
-# amount. For example a ratio of 2.0 for an instance with
-# 1024MB of RAM implies 512MB of RAM allocated at startup
-# (floating point value)
-#dynamic_memory_ratio=1.0
-
-# Number of seconds to wait for instance to shut down after
-# soft reboot request is made. We fall back to hard reboot if
-# instance does not shutdown within this window. (integer
-# value)
-#wait_soft_reboot_seconds=60
-
-
-#
-# Options defined in nova.virt.hyperv.volumeops
-#
-
-# The number of times to retry to attach a volume (integer
-# value)
-#volume_attach_retry_count=10
-
-# Interval between volume attachment attempts, in seconds
-# (integer value)
-#volume_attach_retry_interval=5
-
-# The number of times to retry checking for a disk mounted via
-# iSCSI. (integer value)
-#mounted_disk_query_retry_count=10
-
-# Interval between checks for a mounted iSCSI disk, in
-# seconds. (integer value)
-#mounted_disk_query_retry_interval=5
+#debug = false
 
 
 [image_file_url]
 
 #
-# Options defined in nova.image.download.file
+# From nova
 #
 
 # List of file systems that are configured in this file in the
 # image_file_url:<list entry name> sections (list value)
-#filesystems=
+#filesystems =
 
 
 [ironic]
 
 #
-# Options defined in nova.virt.ironic.driver
-#
-
-# Version of Ironic API service endpoint. (integer value)
-#api_version=1
+# From nova.conf
+#
+
+# Version of Ironic API service endpoint. DEPRECATED: Setting the API version
+# is not possible anymore. (integer value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#api_version = 1
 
 # URL for Ironic API endpoint. (string value)
-#api_endpoint=<None>
+#api_endpoint = <None>
 
 # Ironic keystone admin name (string value)
-#admin_username=<None>
+#admin_username = %SERVICE_USER%
 
 # Ironic keystone admin password. (string value)
-#admin_password=<None>
-
-# Ironic keystone auth token. (string value)
-#admin_auth_token=<None>
+#admin_password = %SERVICE_PASSWORD%
+
+# Ironic keystone auth token.DEPRECATED: use admin_username, admin_password,
+# and admin_tenant_name instead (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#admin_auth_token = <None>
 
 # Keystone public API endpoint. (string value)
-#admin_url=<None>
-
-# Log level override for ironicclient. Set this in order to
-# override the global "default_log_levels", "verbose", and
-# "debug" settings. DEPRECATED: use standard logging
-# configuration. (string value)
-#client_log_level=<None>
+#admin_url = http://127.0.0.1:5000/v2.0/
+
+# Log level override for ironicclient. Set this in order to override the global
+# "default_log_levels", "verbose", and "debug" settings. DEPRECATED: use
+# standard logging configuration. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#client_log_level = <None>
 
 # Ironic keystone tenant name. (string value)
-#admin_tenant_name=<None>
-
-# How many retries when a request does conflict. (integer
-# value)
-#api_max_retries=60
-
-# How often to retry in seconds when a request does conflict
-# (integer value)
-#api_retry_interval=2
+#admin_tenant_name = %SERVICE_TENANT_NAME%
+
+# How many retries when a request does conflict. If <= 0, only try once, no
+# retries. (integer value)
+#api_max_retries = 60
+
+# How often to retry in seconds when a request does conflict (integer value)
+#api_retry_interval = 2
+
+
+[key_manager]
+
+#
+# From castellan.config
+#
+
+# The full class name of the key manager API class (string value)
+#api_class = castellan.key_manager.barbican_key_manager.BarbicanKeyManager
+
+# The type of authentication credential to create. Possible values are 'token',
+# 'password', 'keystone_token', and 'keystone_password'. Required if no context
+# is passed to the credential factory. (string value)
+#auth_type = <None>
+
+# Token for authentication. Required for 'token' and 'keystone_token' auth_type
+# if no context is passed to the credential factory. (string value)
+#token = <None>
+
+# Username for authentication. Required for 'password' auth_type. Optional for
+# the 'keystone_password' auth_type. (string value)
+#username = <None>
+
+# Password for authentication. Required for 'password' and 'keystone_password'
+# auth_type. (string value)
+#password = <None>
+
+# User ID for authentication. Optional for 'keystone_token' and
+# 'keystone_password' auth_type. (string value)
+#user_id = <None>
+
+# User's domain ID for authentication. Optional for 'keystone_token' and
+# 'keystone_password' auth_type. (string value)
+#user_domain_id = <None>
+
+# User's domain name for authentication. Optional for 'keystone_token' and
+# 'keystone_password' auth_type. (string value)
+#user_domain_name = <None>
+
+# Trust ID for trust scoping. Optional for 'keystone_token' and
+# 'keystone_password' auth_type. (string value)
+#trust_id = <None>
+
+# Domain ID for domain scoping. Optional for 'keystone_token' and
+# 'keystone_password' auth_type. (string value)
+#domain_id = <None>
+
+# Domain name for domain scoping. Optional for 'keystone_token' and
+# 'keystone_password' auth_type. (string value)
+#domain_name = <None>
+
+# Project ID for project scoping. Optional for 'keystone_token' and
+# 'keystone_password' auth_type. (string value)
+#project_id = <None>
+
+# Project name for project scoping. Optional for 'keystone_token' and
+# 'keystone_password' auth_type. (string value)
+#project_name = <None>
+
+# Project's domain ID for project. Optional for 'keystone_token' and
+# 'keystone_password' auth_type. (string value)
+#project_domain_id = <None>
+
+# Project's domain name for project. Optional for 'keystone_token' and
+# 'keystone_password' auth_type. (string value)
+#project_domain_name = <None>
+
+# Allow fetching a new token if the current one is going to expire. Optional
+# for 'keystone_token' and 'keystone_password' auth_type. (boolean value)
+#reauthenticate = true
 
 
 [keymgr]
 
 #
-# Options defined in nova.keymgr
-#
-
-# The full class name of the key manager API class (string
-# value)
-#api_class=nova.keymgr.conf_key_mgr.ConfKeyManager
-
-
-#
-# Options defined in nova.keymgr.conf_key_mgr
-#
-
-# Fixed key returned by key manager, specified in hex (string
-# value)
-#fixed_key=<None>
+# From nova
+#
+
+# Fixed key returned by key manager, specified in hex (string value)
+#fixed_key = <None>
+
+# The full class name of the key manager API class (string value)
+#api_class = nova.keymgr.conf_key_mgr.ConfKeyManager
 
 
 [keystone_authtoken]
 
 #
-# Options defined in keystonemiddleware.auth_token
+# From keystonemiddleware.auth_token
 #
 
 # Complete public Identity API endpoint. (string value)
-auth_uri=http://127.0.0.1:5000/v2.0/
-
-# API version of the admin Identity API endpoint. (string
+auth_uri = http://127.0.0.1:5000/v2.0/
+
+# API version of the admin Identity API endpoint. (string value)
+#auth_version = <None>
+
+# Do not handle authorization requests within the middleware, but delegate the
+# authorization decision to downstream WSGI components. (boolean value)
+#delay_auth_decision = false
+
+# Request timeout value for communicating with Identity API server. (integer
 # value)
-#auth_version=<None>
-
-# Do not handle authorization requests within the middleware,
-# but delegate the authorization decision to downstream WSGI
-# components. (boolean value)
-#delay_auth_decision=false
-
-# Request timeout value for communicating with Identity API
-# server. (integer value)
-#http_connect_timeout=<None>
-
-# How many times are we trying to reconnect when communicating
-# with Identity API Server. (integer value)
-#http_request_max_retries=3
+#http_connect_timeout = <None>
+
+# How many times are we trying to reconnect when communicating with Identity
+# API Server. (integer value)
+#http_request_max_retries = 3
 
 # Env key for the swift cache. (string value)
-#cache=<None>
-
-# Required if identity server requires client certificate
-# (string value)
-#certfile=<None>
-
-# Required if identity server requires client certificate
-# (string value)
-#keyfile=<None>
-
-# A PEM encoded Certificate Authority to use when verifying
-# HTTPs connections. Defaults to system CAs. (string value)
-#cafile=<None>
+#cache = <None>
+
+# Required if identity server requires client certificate (string value)
+#certfile = <None>
+
+# Required if identity server requires client certificate (string value)
+#keyfile = <None>
+
+# A PEM encoded Certificate Authority to use when verifying HTTPs connections.
+# Defaults to system CAs. (string value)
+#cafile = <None>
 
 # Verify HTTPS connections. (boolean value)
-#insecure=false
-
-# Directory used to cache files related to PKI tokens. (string
-# value)
-signing_dir=$state_path/keystone-signing
-
-# Optionally specify a list of memcached server(s) to use for
-# caching. If left undefined, tokens will instead be cached
-# in-process. (list value)
+#insecure = false
+
+# The region in which the identity server can be found. (string value)
+#region_name = <None>
+
+# Directory used to cache files related to PKI tokens. (string value)
+signing_dir = $state_path/keystone-signing
+
+# Optionally specify a list of memcached server(s) to use for caching. If left
+# undefined, tokens will instead be cached in-process. (list value)
 # Deprecated group/name - [DEFAULT]/memcache_servers
-#memcached_servers=<None>
-
-# In order to prevent excessive effort spent validating
-# tokens, the middleware caches previously-seen tokens for a
-# configurable duration (in seconds). Set to -1 to disable
-# caching completely. (integer value)
-#token_cache_time=300
-
-# Determines the frequency at which the list of revoked tokens
-# is retrieved from the Identity service (in seconds). A high
-# number of revocation events combined with a low cache
-# duration may significantly reduce performance. (integer
-# value)
-#revocation_cache_time=10
-
-# (Optional) If defined, indicate whether token data should be
-# authenticated or authenticated and encrypted. Acceptable
-# values are MAC or ENCRYPT.  If MAC, token data is
-# authenticated (with HMAC) in the cache. If ENCRYPT, token
-# data is encrypted and authenticated in the cache. If the
-# value is not one of these options or empty, auth_token will
+#memcached_servers = <None>
+
+# In order to prevent excessive effort spent validating tokens, the middleware
+# caches previously-seen tokens for a configurable duration (in seconds). Set
+# to -1 to disable caching completely. (integer value)
+#token_cache_time = 300
+
+# Determines the frequency at which the list of revoked tokens is retrieved
+# from the Identity service (in seconds). A high number of revocation events
+# combined with a low cache duration may significantly reduce performance.
+# (integer value)
+#revocation_cache_time = 10
+
+# (Optional) If defined, indicate whether token data should be authenticated or
+# authenticated and encrypted. If MAC, token data is authenticated (with HMAC)
+# in the cache. If ENCRYPT, token data is encrypted and authenticated in the
+# cache. If the value is not one of these options or empty, auth_token will
 # raise an exception on initialization. (string value)
-#memcache_security_strategy=<None>
-
-# (Optional, mandatory if memcache_security_strategy is
-# defined) This string is used for key derivation. (string
-# value)
-#memcache_secret_key=<None>
-
-# (Optional) Number of seconds memcached server is considered
-# dead before it is tried again. (integer value)
-#memcache_pool_dead_retry=300
-
-# (Optional) Maximum total number of open connections to every
-# memcached server. (integer value)
-#memcache_pool_maxsize=10
-
-# (Optional) Socket timeout in seconds for communicating with
-# a memcache server. (integer value)
-#memcache_pool_socket_timeout=3
-
-# (Optional) Number of seconds a connection to memcached is
-# held unused in the pool before it is closed. (integer value)
-#memcache_pool_unused_timeout=60
-
-# (Optional) Number of seconds that an operation will wait to
-# get a memcache client connection from the pool. (integer
-# value)
-#memcache_pool_conn_get_timeout=10
-
-# (Optional) Use the advanced (eventlet safe) memcache client
-# pool. The advanced pool will only work under python 2.x.
-# (boolean value)
-#memcache_use_advanced_pool=false
-
-# (Optional) Indicate whether to set the X-Service-Catalog
-# header. If False, middleware will not ask for service
-# catalog on token validation and will not set the X-Service-
-# Catalog header. (boolean value)
-#include_service_catalog=true
-
-# Used to control the use and type of token binding. Can be
-# set to: "disabled" to not check token binding. "permissive"
-# (default) to validate binding information if the bind type
-# is of a form known to the server and ignore it if not.
-# "strict" like "permissive" but if the bind type is unknown
-# the token will be rejected. "required" any form of token
-# binding is needed to be allowed. Finally the name of a
-# binding method that must be present in tokens. (string
-# value)
-#enforce_token_bind=permissive
-
-# If true, the revocation list will be checked for cached
-# tokens. This requires that PKI tokens are configured on the
-# identity server. (boolean value)
-#check_revocations_for_cached=false
-
-# Hash algorithms to use for hashing PKI tokens. This may be a
-# single algorithm or multiple. The algorithms are those
-# supported by Python standard hashlib.new(). The hashes will
-# be tried in the order given, so put the preferred one first
-# for performance. The result of the first hash will be stored
-# in the cache. This will typically be set to multiple values
-# only while migrating from a less secure algorithm to a more
-# secure one. Once all the old tokens are expired this option
-# should be set to a single value for better performance.
-# (list value)
-#hash_algorithms=md5
-
-# Prefix to prepend at the beginning of the path. Deprecated,
-# use identity_uri. (string value)
-#auth_admin_prefix=
-
-# Host providing the admin Identity API endpoint. Deprecated,
-# use identity_uri. (string value)
-#auth_host=127.0.0.1
-
-# Port of the admin Identity API endpoint. Deprecated, use
-# identity_uri. (integer value)
-#auth_port=35357
-
-# Protocol of the admin Identity API endpoint (http or https).
-# Deprecated, use identity_uri. (string value)
-#auth_protocol=https
-
-# Complete admin Identity API endpoint. This should specify
-# the unversioned root endpoint e.g. https://localhost:35357/
+# Allowed values: None, MAC, ENCRYPT
+#memcache_security_strategy = None
+
+# (Optional, mandatory if memcache_security_strategy is defined) This string is
+# used for key derivation. (string value)
+#memcache_secret_key = <None>
+
+# (Optional) Number of seconds memcached server is considered dead before it is
+# tried again. (integer value)
+#memcache_pool_dead_retry = 300
+
+# (Optional) Maximum total number of open connections to every memcached
+# server. (integer value)
+#memcache_pool_maxsize = 10
+
+# (Optional) Socket timeout in seconds for communicating with a memcached
+# server. (integer value)
+#memcache_pool_socket_timeout = 3
+
+# (Optional) Number of seconds a connection to memcached is held unused in the
+# pool before it is closed. (integer value)
+#memcache_pool_unused_timeout = 60
+
+# (Optional) Number of seconds that an operation will wait to get a memcached
+# client connection from the pool. (integer value)
+#memcache_pool_conn_get_timeout = 10
+
+# (Optional) Use the advanced (eventlet safe) memcached client pool. The
+# advanced pool will only work under python 2.x. (boolean value)
+#memcache_use_advanced_pool = false
+
+# (Optional) Indicate whether to set the X-Service-Catalog header. If False,
+# middleware will not ask for service catalog on token validation and will not
+# set the X-Service-Catalog header. (boolean value)
+#include_service_catalog = true
+
+# Used to control the use and type of token binding. Can be set to: "disabled"
+# to not check token binding. "permissive" (default) to validate binding
+# information if the bind type is of a form known to the server and ignore it
+# if not. "strict" like "permissive" but if the bind type is unknown the token
+# will be rejected. "required" any form of token binding is needed to be
+# allowed. Finally the name of a binding method that must be present in tokens.
 # (string value)
-identity_uri=http://127.0.0.1:35357/
-
-# This option is deprecated and may be removed in a future
-# release. Single shared secret with the Keystone
-# configuration used for bootstrapping a Keystone
-# installation, or otherwise bypassing the normal
-# authentication process. This option should not be used, use
-# `admin_user` and `admin_password` instead. (string value)
-#admin_token=<None>
+#enforce_token_bind = permissive
+
+# If true, the revocation list will be checked for cached tokens. This requires
+# that PKI tokens are configured on the identity server. (boolean value)
+#check_revocations_for_cached = false
+
+# Hash algorithms to use for hashing PKI tokens. This may be a single algorithm
+# or multiple. The algorithms are those supported by Python standard
+# hashlib.new(). The hashes will be tried in the order given, so put the
+# preferred one first for performance. The result of the first hash will be
+# stored in the cache. This will typically be set to multiple values only while
+# migrating from a less secure algorithm to a more secure one. Once all the old
+# tokens are expired this option should be set to a single value for better
+# performance. (list value)
+#hash_algorithms = md5
+
+# Authentication type to load (unknown value)
+# Deprecated group/name - [DEFAULT]/auth_plugin
+#auth_type = <None>
+
+# Config Section from which to load plugin specific options (unknown value)
+#auth_section = <None>
+
+# Complete admin Identity API endpoint. This should specify the unversioned
+# root endpoint e.g. https://localhost:35357/ (string value)
+identity_uri = http://127.0.0.1:35357/
 
 # Service username. (string value)
-admin_user=%SERVICE_USER%
+admin_user = %SERVICE_USER%
 
 # Service user password. (string value)
-admin_password=%SERVICE_PASSWORD%
+admin_password = %SERVICE_PASSWORD%
 
 # Service tenant name. (string value)
-admin_tenant_name=%SERVICE_TENANT_NAME%
-
-# Name of the plugin to load (string value)
-#auth_plugin=<None>
-
-# Config Section from which to load plugin specific options
-# (string value)
-#auth_section=<None>
+admin_tenant_name = %SERVICE_TENANT_NAME%
 
 
 [libvirt]
 
 #
-# Options defined in nova.virt.libvirt.driver
-#
-
-# Rescue ami image. This will not be used if an image id is
-# provided by the user. (string value)
-#rescue_image_id=<None>
+# From nova.virt
+#
+
+# Rescue ami image. This will not be used if an image id is provided by the
+# user. (string value)
+#rescue_image_id = <None>
 
 # Rescue aki image (string value)
-#rescue_kernel_id=<None>
+#rescue_kernel_id = <None>
 
 # Rescue ari image (string value)
-#rescue_ramdisk_id=<None>
-
-# Libvirt domain type (valid options are: kvm, lxc, qemu, uml,
-# xen and parallels) (string value)
-#virt_type=kvm
-
-# Override the default libvirt URI (which is dependent on
-# virt_type) (string value)
-#connection_uri=
-
-# Inject the admin password at boot time, without an agent.
-# (boolean value)
-#inject_password=false
+#rescue_ramdisk_id = <None>
+
+# Libvirt domain type (string value)
+# Allowed values: kvm, lxc, qemu, uml, xen, parallels
+#virt_type = kvm
+
+# Override the default libvirt URI (which is dependent on virt_type) (string
+# value)
+#connection_uri =
+
+# Inject the admin password at boot time, without an agent. (boolean value)
+#inject_password = false
 
 # Inject the ssh public key at boot time (boolean value)
-#inject_key=false
-
-# The partition to inject to : -2 => disable, -1 => inspect
-# (libguestfs only), 0 => not partitioned, >0 => partition
-# number (integer value)
-#inject_partition=-2
-
-# Sync virtual and real mouse cursors in Windows VMs (boolean
-# value)
-#use_usb_tablet=true
-
-# Migration target URI (any included "%s" is replaced with the
-# migration target hostname) (string value)
-#live_migration_uri=qemu+tcp://%s/system
+#inject_key = false
+
+# The partition to inject to : -2 => disable, -1 => inspect (libguestfs only),
+# 0 => not partitioned, >0 => partition number (integer value)
+#inject_partition = -2
+
+# Sync virtual and real mouse cursors in Windows VMs (boolean value)
+#use_usb_tablet = true
+
+# Live migration target ip or hostname (if this option is set to None, which is
+# the default, the hostname of the migration target compute node will be used)
+# (string value)
+#live_migration_inbound_addr = <None>
+
+# Override the default libvirt live migration target URI (which is dependent on
+# virt_type) (any included "%s" is replaced with the migration target hostname)
+# (string value)
+#live_migration_uri = <None>
 
 # Migration flags to be set for live migration (string value)
-#live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_LIVE, VIR_MIGRATE_TUNNELLED
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason: The correct live migration flags can be inferred from the new
+# live_migration_tunnelled config option. live_migration_flag will be removed
+# to avoid potential misconfiguration.
+#live_migration_flag = VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_LIVE, VIR_MIGRATE_TUNNELLED
 
 # Migration flags to be set for block migration (string value)
-#block_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_LIVE, VIR_MIGRATE_TUNNELLED, VIR_MIGRATE_NON_SHARED_INC
-
-# Maximum bandwidth to be used during migration, in Mbps
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason: The correct block migration flags can be inferred from the new
+# live_migration_tunnelled config option. block_migration_flag will be removed
+# to avoid potential misconfiguration.
+#block_migration_flag = VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_LIVE, VIR_MIGRATE_TUNNELLED, VIR_MIGRATE_NON_SHARED_INC
+
+# Whether to use tunnelled migration, where migration data is transported over
+# the libvirtd connection. If True, we use the VIR_MIGRATE_TUNNELLED migration
+# flag, avoiding the need to configure the network to allow direct hypervisor
+# to hypervisor communication. If False, use the native transport. If not set,
+# Nova will choose a sensible default based on, for example the availability of
+# native encryption support in the hypervisor. (boolean value)
+#live_migration_tunnelled = <None>
+
+# Maximum bandwidth(in MiB/s) to be used during migration. If set to 0, will
+# choose a suitable default. Some hypervisors do not support this feature and
+# will return an error if bandwidth is not 0. Please refer to the libvirt
+# documentation for further details (integer value)
+#live_migration_bandwidth = 0
+
+# Maximum permitted downtime, in milliseconds, for live migration switchover.
+# Will be rounded up to a minimum of 100ms. Use a large value if guest liveness
+# is unimportant. (integer value)
+#live_migration_downtime = 500
+
+# Number of incremental steps to reach max downtime value. Will be rounded up
+# to a minimum of 3 steps (integer value)
+#live_migration_downtime_steps = 10
+
+# Time to wait, in seconds, between each step increase of the migration
+# downtime. Minimum delay is 10 seconds. Value is per GiB of guest RAM + disk
+# to be transferred, with lower bound of a minimum of 2 GiB per device (integer
+# value)
+#live_migration_downtime_delay = 75
+
+# Time to wait, in seconds, for migration to successfully complete transferring
+# data before aborting the operation. Value is per GiB of guest RAM + disk to
+# be transferred, with lower bound of a minimum of 2 GiB. Should usually be
+# larger than downtime delay * downtime steps. Set to 0 to disable timeouts.
 # (integer value)
-#live_migration_bandwidth=0
-
-# Snapshot image format (valid options are : raw, qcow2, vmdk,
-# vdi). Defaults to same as source image (string value)
-#snapshot_image_format=<None>
-
-# Override the default disk prefix for the devices attached to
-# a server, which is dependent on virt_type. (valid options
-# are: sd, xvd, uvd, vd) (string value)
-#disk_prefix=<None>
-
-# Number of seconds to wait for instance to shut down after
-# soft reboot request is made. We fall back to hard reboot if
-# instance does not shutdown within this window. (integer
+#live_migration_completion_timeout = 800
+
+# Time to wait, in seconds, for migration to make forward progress in
+# transferring data before aborting the operation. Set to 0 to disable
+# timeouts. (integer value)
+#live_migration_progress_timeout = 150
+
+# Snapshot image format. Defaults to same as source image (string value)
+# Allowed values: raw, qcow2, vmdk, vdi
+#snapshot_image_format = <None>
+
+# Override the default disk prefix for the devices attached to a server, which
+# is dependent on virt_type. (valid options are: sd, xvd, uvd, vd) (string
 # value)
-#wait_soft_reboot_seconds=120
-
-# Set to "host-model" to clone the host CPU feature flags; to
-# "host-passthrough" to use the host CPU model exactly; to
-# "custom" to use a named CPU model; to "none" to not set any
-# CPU model. If virt_type="kvm|qemu", it will default to
-# "host-model", otherwise it will default to "none" (string
+#disk_prefix = <None>
+
+# Number of seconds to wait for instance to shut down after soft reboot request
+# is made. We fall back to hard reboot if instance does not shutdown within
+# this window. (integer value)
+#wait_soft_reboot_seconds = 120
+
+# Set to "host-model" to clone the host CPU feature flags; to "host-
+# passthrough" to use the host CPU model exactly; to "custom" to use a named
+# CPU model; to "none" to not set any CPU model. If virt_type="kvm|qemu", it
+# will default to "host-model", otherwise it will default to "none" (string
 # value)
-#cpu_mode=<None>
+# Allowed values: host-model, host-passthrough, custom, none
+#cpu_mode = <None>
 
 # Set to a named libvirt CPU model (see names listed in
-# /usr/share/libvirt/cpu_map.xml). Only has effect if
-# cpu_mode="custom" and virt_type="kvm|qemu" (string value)
-#cpu_model=<None>
-
-# Location where libvirt driver will store snapshots before
-# uploading them to image service (string value)
-#snapshots_directory=$instances_path/snapshots
+# /usr/share/libvirt/cpu_map.xml). Only has effect if cpu_mode="custom" and
+# virt_type="kvm|qemu" (string value)
+#cpu_model = <None>
+
+# Location where libvirt driver will store snapshots before uploading them to
+# image service (string value)
+#snapshots_directory = $instances_path/snapshots
 
 # Location where the Xen hvmloader is kept (string value)
-#xen_hvmloader_path=/usr/lib/xen/boot/hvmloader
+#xen_hvmloader_path = /usr/lib/xen/boot/hvmloader
 
 # Specific cachemodes to use for different disk types e.g:
 # file=directsync,block=none (list value)
-#disk_cachemodes=
-
-# A path to a device that will be used as source of entropy on
-# the host. Permitted options are: /dev/random or /dev/hwrng
-# (string value)
-#rng_dev_path=<None>
-
-# For qemu or KVM guests, set this option to specify a default
-# machine type per host architecture. You can find a list of
-# supported machine types in your environment by checking the
-# output of the "virsh capabilities"command. The format of the
-# value for this config option is host-arch=machine-type. For
-# example: x86_64=machinetype1,armv7l=machinetype2 (list
-# value)
-#hw_machine_type=<None>
-
-# The data source used to the populate the host "serial" UUID
-# exposed to guest in the virtual BIOS. Permitted options are
-# "hardware", "os", "none" or "auto" (default). (string value)
-#sysinfo_serial=auto
-
-# A number of seconds to memory usage statistics period. Zero
-# or negative value mean to disable memory usage statistics.
-# (integer value)
-#mem_stats_period_seconds=10
-
-# List of uid targets and ranges.Syntax is guest-uid:host-
-# uid:countMaximum of 5 allowed. (list value)
-#uid_maps=
-
-# List of guid targets and ranges.Syntax is guest-gid:host-
-# gid:countMaximum of 5 allowed. (list value)
-#gid_maps=
-
-
-#
-# Options defined in nova.virt.libvirt.imagebackend
-#
-
-# VM Images format. Acceptable values are: raw, qcow2, lvm,
-# rbd, default. If default is specified, then use_cow_images
-# flag is used instead of this one. (string value)
-#images_type=default
-
-# LVM Volume Group that is used for VM images, when you
-# specify images_type=lvm. (string value)
-#images_volume_group=<None>
-
-# Create sparse logical volumes (with virtualsize) if this
-# flag is set to True. (boolean value)
-#sparse_logical_volumes=false
-
-# The RADOS pool in which rbd volumes are stored (string
-# value)
-#images_rbd_pool=rbd
+#disk_cachemodes =
+
+# A path to a device that will be used as source of entropy on the host.
+# Permitted options are: /dev/random or /dev/hwrng (string value)
+#rng_dev_path = <None>
+
+# For qemu or KVM guests, set this option to specify a default machine type per
+# host architecture. You can find a list of supported machine types in your
+# environment by checking the output of the "virsh capabilities"command. The
+# format of the value for this config option is host-arch=machine-type. For
+# example: x86_64=machinetype1,armv7l=machinetype2 (list value)
+#hw_machine_type = <None>
+
+# The data source used to the populate the host "serial" UUID exposed to guest
+# in the virtual BIOS. (string value)
+# Allowed values: none, os, hardware, auto
+#sysinfo_serial = auto
+
+# A number of seconds to memory usage statistics period. Zero or negative value
+# mean to disable memory usage statistics. (integer value)
+#mem_stats_period_seconds = 10
+
+# List of uid targets and ranges.Syntax is guest-uid:host-uid:countMaximum of 5
+# allowed. (list value)
+#uid_maps =
+
+# List of guid targets and ranges.Syntax is guest-gid:host-gid:countMaximum of
+# 5 allowed. (list value)
+#gid_maps =
+
+# In a realtime host context vCPUs for guest will run in that scheduling
+# priority. Priority depends on the host kernel (usually 1-99) (integer value)
+#realtime_scheduler_priority = 1
+
+# VM Images format. If default is specified, then use_cow_images flag is used
+# instead of this one. (string value)
+# Allowed values: raw, qcow2, lvm, rbd, ploop, default
+#images_type = default
+
+# LVM Volume Group that is used for VM images, when you specify
+# images_type=lvm. (string value)
+#images_volume_group = <None>
+
+# Create sparse logical volumes (with virtualsize) if this flag is set to True.
+# (boolean value)
+#sparse_logical_volumes = false
+
+# The RADOS pool in which rbd volumes are stored (string value)
+#images_rbd_pool = rbd
 
 # Path to the ceph configuration file to use (string value)
-#images_rbd_ceph_conf=
-
-# Discard option for nova managed disks (valid options are:
-# ignore, unmap). Need Libvirt(1.0.6) Qemu1.5 (raw format)
-# Qemu1.6(qcow2 format) (string value)
-#hw_disk_discard=<None>
-
-
-#
-# Options defined in nova.virt.libvirt.imagecache
-#
-
-# Allows image information files to be stored in non-standard
-# locations (string value)
-#image_info_filename_pattern=$instances_path/$image_cache_subdirectory_name/%(image)s.info
-
-# Should unused kernel images be removed? This is only safe to
-# enable if all compute nodes have been updated to support
-# this option. This will be enabled by default in future.
-# (boolean value)
-#remove_unused_kernels=false
-
-# Unused resized base images younger than this will not be
-# removed (integer value)
-#remove_unused_resized_minimum_age_seconds=3600
+#images_rbd_ceph_conf =
+
+# Discard option for nova managed disks. Need Libvirt(1.0.6) Qemu1.5 (raw
+# format) Qemu1.6(qcow2 format) (string value)
+# Allowed values: ignore, unmap
+#hw_disk_discard = <None>
+
+# Allows image information files to be stored in non-standard locations (string
+# value)
+#image_info_filename_pattern = $instances_path/$image_cache_subdirectory_name/%(image)s.info
+
+# DEPRECATED: Should unused kernel images be removed? This is only safe to
+# enable if all compute nodes have been updated to support this option (running
+# Grizzly or newer level compute). This will be the default behavior in the
+# 13.0.0 release. (boolean value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#remove_unused_kernels = true
+
+# Unused resized base images younger than this will not be removed (integer
+# value)
+#remove_unused_resized_minimum_age_seconds = 3600
 
 # Write a checksum for files in _base to disk (boolean value)
-#checksum_base_images=false
+#checksum_base_images = false
 
 # How frequently to checksum base images (integer value)
-#checksum_interval_seconds=3600
-
-
-#
-# Options defined in nova.virt.libvirt.lvm
-#
-
-# Method used to wipe old volumes (valid options are: none,
-# zero, shred) (string value)
-#volume_clear=zero
-
-# Size in MiB to wipe at start of old volumes. 0 => all
-# (integer value)
-#volume_clear_size=0
-
-
-#
-# Options defined in nova.virt.libvirt.utils
-#
-
-# Compress snapshot images when possible. This currently
-# applies exclusively to qcow2 images (boolean value)
-#snapshot_compression=false
-
-
-#
-# Options defined in nova.virt.libvirt.vif
-#
-
-# Use virtio for bridge interfaces with KVM/QEMU (boolean
+#checksum_interval_seconds = 3600
+
+# Method used to wipe old volumes. (string value)
+# Allowed values: none, zero, shred
+#volume_clear = zero
+
+# Size in MiB to wipe at start of old volumes. 0 => all (integer value)
+#volume_clear_size = 0
+
+# Compress snapshot images when possible. This currently applies exclusively to
+# qcow2 images (boolean value)
+#snapshot_compression = false
+
+# Use virtio for bridge interfaces with KVM/QEMU (boolean value)
+#use_virtio_for_bridges = true
+
+# Protocols listed here will be accessed directly from QEMU. Currently
+# supported protocols: [gluster] (list value)
+#qemu_allowed_storage_drivers =
+
+# Number of times to rediscover AoE target to find volume (integer value)
+#num_aoe_discover_tries = 3
+
+# Directory where the glusterfs volume is mounted on the compute node (string
 # value)
-#use_virtio_for_bridges=true
-
-
-#
-# Options defined in nova.virt.libvirt.volume
-#
-
-# Number of times to rescan iSCSI target to find volume
-# (integer value)
-#num_iscsi_scan_tries=5
-
-# Number of times to rescan iSER target to find volume
-# (integer value)
-#num_iser_scan_tries=5
-
-# The RADOS client name for accessing rbd volumes (string
-# value)
-#rbd_user=<None>
-
-# The libvirt UUID of the secret for the rbd_uservolumes
-# (string value)
-#rbd_secret_uuid=<None>
-
-# Directory where the NFS volume is mounted on the compute
-# node (string value)
-#nfs_mount_point_base=$state_path/mnt
-
-# Mount options passed to the NFS client. See section of the
-# nfs man page for details (string value)
-#nfs_mount_options=<None>
-
-# Directory where the SMBFS shares are mounted on the compute
-# node (string value)
-#smbfs_mount_point_base=$state_path/mnt
-
-# Mount options passed to the SMBFS client. See mount.cifs man
-# page for details. Note that the libvirt-qemu uid and gid
-# must be specified. (string value)
-#smbfs_mount_options=
-
-# Number of times to rediscover AoE target to find volume
-# (integer value)
-#num_aoe_discover_tries=3
-
-# Directory where the glusterfs volume is mounted on the
-# compute node (string value)
-#glusterfs_mount_point_base=$state_path/mnt
-
-# Use multipath connection of the iSCSI volume (boolean value)
-#iscsi_use_multipath=false
+#glusterfs_mount_point_base = $state_path/mnt
+
+# Number of times to rescan iSCSI target to find volume (integer value)
+#num_iscsi_scan_tries = 5
+
+# Use multipath connection of the iSCSI or FC volume (boolean value)
+#iscsi_use_multipath = false
+
+# The iSCSI transport iface to use to connect to target in case offload support
+# is desired. Default format is of the form <transport_name>.<hwaddress> where
+# <transport_name> is one of (be2iscsi, bnx2i, cxgb3i, cxgb4i, qla4xxx, ocs)
+# and <hwaddress> is the MAC address of the interface and can be generated via
+# the iscsiadm -m iface command. Do not confuse the iscsi_iface parameter to be
+# provided here with the actual transport name. (string value)
+# Deprecated group/name - [DEFAULT]/iscsi_transport
+#iscsi_iface = <None>
+
+# Number of times to rescan iSER target to find volume (integer value)
+#num_iser_scan_tries = 5
 
 # Use multipath connection of the iSER volume (boolean value)
-#iser_use_multipath=false
-
-# Path or URL to Scality SOFS configuration file (string
+#iser_use_multipath = false
+
+# The RADOS client name for accessing rbd volumes (string value)
+#rbd_user = <None>
+
+# The libvirt UUID of the secret for the rbd_uservolumes (string value)
+#rbd_secret_uuid = <None>
+
+# Directory where the NFS volume is mounted on the compute node (string value)
+#nfs_mount_point_base = $state_path/mnt
+
+# Mount options passed to the NFS client. See section of the nfs man page for
+# details (string value)
+#nfs_mount_options = <None>
+
+# Directory where the Quobyte volume is mounted on the compute node (string
 # value)
-#scality_sofs_config=<None>
+#quobyte_mount_point_base = $state_path/mnt
+
+# Path to a Quobyte Client configuration file. (string value)
+#quobyte_client_cfg = <None>
+
+# Use ssh or rsync transport for creating, copying, removing files on the
+# remote host. (string value)
+# Allowed values: ssh, rsync
+#remote_filesystem_transport = ssh
+
+# Path or URL to Scality SOFS configuration file (string value)
+#scality_sofs_config = <None>
 
 # Base dir where Scality SOFS shall be mounted (string value)
-#scality_sofs_mount_point=$state_path/scality
-
-# Protocols listed here will be accessed directly from QEMU.
-# Currently supported protocols: [gluster] (list value)
-#qemu_allowed_storage_drivers=
-
-# Directory where the Quobyte volume is mounted on the compute
-# node (string value)
-#quobyte_mount_point_base=$state_path/mnt
-
-# Path to a Quobyte Client configuration file. (string value)
-#quobyte_client_cfg=<None>
-
-# The iSCSI transport iface to use to connect to target in
-# case offload support is desired. Supported transports are
-# be2iscsi, bnx2i, cxgb3i, cxgb4i, qla4xxx and ocs. Default
-# format is transport_name.hwaddress and can be generated
-# manually or via iscsiadm -m iface (string value)
-# Deprecated group/name - [DEFAULT]/iscsi_transport
-#iscsi_iface=<None>
+#scality_sofs_mount_point = $state_path/scality
+
+# Directory where the SMBFS shares are mounted on the compute node (string
+# value)
+#smbfs_mount_point_base = $state_path/mnt
+
+# Mount options passed to the SMBFS client. See mount.cifs man page for
+# details. Note that the libvirt-qemu uid and gid must be specified. (string
+# value)
+#smbfs_mount_options =
 
 
 [matchmaker_redis]
 
 #
-# Options defined in oslo.messaging
+# From oslo.messaging
 #
 
 # Host to locate redis. (string value)
-#host=127.0.0.1
-
-# Use this port to connect to redis host. (integer value)
-#port=6379
+#host = 127.0.0.1
+
+# Use this port to connect to redis host. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#port = 6379
 
 # Password for Redis server (optional). (string value)
-#password=<None>
-
-
-[matchmaker_ring]
-
-#
-# Options defined in oslo.messaging
-#
-
-# Matchmaker ring file (JSON). (string value)
-# Deprecated group/name - [DEFAULT]/matchmaker_ringfile
-#ringfile=/etc/oslo/matchmaker_ring.json
+#password =
+
+# List of Redis Sentinel hosts (fault tolerance mode) e.g.
+# [host:port, host1:port ... ] (list value)
+#sentinel_hosts =
+
+# Redis replica set name. (string value)
+#sentinel_group_name = oslo-messaging-zeromq
+
+# Time in ms to wait between connection attempts. (integer value)
+#wait_timeout = 500
+
+# Time in ms to wait before the transaction is killed. (integer value)
+#check_timeout = 20000
+
+# Timeout in ms on blocking socket operations (integer value)
+#socket_timeout = 1000
 
 
 [metrics]
 
 #
-# Options defined in nova.scheduler.weights.metrics
-#
-
-# Multiplier used for weighing metrics. (floating point value)
-#weight_multiplier=1.0
-
-# How the metrics are going to be weighed. This should be in
-# the form of "<name1>=<ratio1>, <name2>=<ratio2>, ...", where
-# <nameX> is one of the metrics to be weighed, and <ratioX> is
-# the corresponding ratio. So for "name1=1.0, name2=-1.0" The
-# final weight would be name1.value * 1.0 + name2.value *
-# -1.0. (list value)
-#weight_setting=
-
-# How to treat the unavailable metrics. When a metric is NOT
-# available for a host, if it is set to be True, it would
-# raise an exception, so it is recommended to use the
-# scheduler filter MetricFilter to filter out those hosts. If
-# it is set to be False, the unavailable metric would be
-# treated as a negative factor in weighing process, the
-# returned value would be set by the option
-# weight_of_unavailable. (boolean value)
-#required=true
-
-# The final weight value to be returned if required is set to
-# False and any one of the metrics set by weight_setting is
-# unavailable. (floating point value)
-#weight_of_unavailable=-10000.0
+# From nova.conf
+#
+
+#
+# When using metrics to weight the suitability of a host, you can use this
+# option
+# to change how the calculated weight influences the weight assigned to a host
+# as
+# follows:
+#
+#     * Greater than 1.0: increases the effect of the metric on overall weight.
+#
+#     * Equal to 1.0: No change to the calculated weight.
+#
+#     * Less than 1.0, greater than 0: reduces the effect of the metric on
+#     overall weight.
+#
+#     * 0: The metric value is ignored, and the value of the
+#     'weight_of_unavailable' option is returned instead.
+#
+#     * Greater than -1.0, less than 0: the effect is reduced and reversed.
+#
+#     * -1.0: the effect is reversed
+#
+#     * Less than -1.0: the effect is increased proportionally and reversed.
+#
+# Valid values are numeric, either integer or float.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     weight_of_unavailable
+#  (floating point value)
+#weight_multiplier = 1.0
+
+#
+# This setting specifies the metrics to be weighed and the relative ratios for
+# each metric. This should be a single string value, consisting of a series of
+# one or more 'name=ratio' pairs, separated by commas, where 'name' is the name
+# of the metric to be weighed, and 'ratio' is the relative weight for that
+# metric.
+#
+# Note that if the ratio is set to 0, the metric value is ignored, and instead
+# the weight will be set to the value of the 'weight_of_unavailable' option.
+#
+# As an example, let's consider the case where this option is set to:
+#
+#     ``name1=1.0, name2=-1.3``
+#
+# The final weight will be:
+#
+#     ``(name1.value * 1.0) + (name2.value * -1.3)``
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     weight_of_unavailable
+#  (list value)
+#weight_setting =
+
+#
+# This setting determines how any unavailable metrics are treated. If this
+# option
+# is set to True, any hosts for which a metric is unavailable will raise an
+# exception, so it is recommended to also use the MetricFilter to filter out
+# those hosts before weighing.
+#
+# When this option is False, any metric being unavailable for a host will set
+# the
+# host weight to 'weight_of_unavailable'.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     weight_of_unavailable
+#  (boolean value)
+#required = true
+
+#
+# When any of the following conditions are met, this value will be used in
+# place
+# of any actual metric value:
+#
+#     * One of the metrics named in 'weight_setting' is not available for a
+# host,
+#     and the value of 'required' is False.
+#
+#     * The ratio specified for a metric in 'weight_setting' is 0.
+#
+#     * The 'weight_multiplier' option is set to 0.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     weight_setting
+#     required
+#     weight_multiplier
+#  (floating point value)
+#weight_of_unavailable = -10000.0
 
 
 [neutron]
 
 #
-# Options defined in nova.api.metadata.handler
-#
-
-# Set flag to indicate Neutron will proxy metadata requests
-# and resolve instance ids. (boolean value)
-service_metadata_proxy=true
-
-# Shared secret to validate proxies Neutron metadata requests
+# From nova.api
+#
+
+# Set flag to indicate Neutron will proxy metadata requests and resolve
+# instance ids. (boolean value)
+service_metadata_proxy = true
+
+# Shared secret to validate proxies Neutron metadata requests (string value)
+#metadata_proxy_shared_secret =
+
+#
+# From nova.network
+#
+
+# URL for connecting to neutron (string value)
+#url = http://127.0.0.1:9696
+
+# Region name for connecting to neutron in admin context (string value)
+#region_name = <None>
+
+# Default OVS bridge name to use if not specified by Neutron (string value)
+ovs_bridge = br_int0
+
+# Number of seconds before querying neutron for extensions (integer value)
+#extension_sync_interval = 600
+
+#
+# From nova.network.neutronv2
+#
+
+# Authentication URL (unknown value)
+auth_url = http://127.0.0.1:5000/v2.0/
+
+# Authentication type to load (unknown value)
+# Deprecated group/name - [DEFAULT]/auth_plugin
+auth_type = v2password
+
+# PEM encoded Certificate Authority to use when verifying HTTPs connections.
 # (string value)
-#metadata_proxy_shared_secret=
-
-
-#
-# Options defined in nova.network.neutronv2.api
-#
-
-# Authorization URL for connecting to neutron in admin
-# context. DEPRECATED: specify an auth_plugin and appropriate
-# credentials instead. (string value)
-#admin_auth_url=http://localhost:5000/v2.0
-
-# Password for connecting to neutron in admin context
-# DEPRECATED: specify an auth_plugin and appropriate
-# credentials instead. (string value)
-#admin_password=<None>
-
-# Tenant id for connecting to neutron in admin context
-# DEPRECATED: specify an auth_plugin and appropriate
-# credentials instead. (string value)
-#admin_tenant_id=<None>
-
-# Tenant name for connecting to neutron in admin context. This
-# option will be ignored if neutron_admin_tenant_id is set.
-# Note that with Keystone V3 tenant names are only unique
-# within a domain. DEPRECATED: specify an auth_plugin and
-# appropriate credentials instead. (string value)
-#admin_tenant_name=<None>
-
-# User id for connecting to neutron in admin context.
-# DEPRECATED: specify an auth_plugin and appropriate
-# credentials instead. (string value)
-#admin_user_id=<None>
-
-# Username for connecting to neutron in admin context
-# DEPRECATED: specify an auth_plugin and appropriate
-# credentials instead. (string value)
-#admin_username=<None>
-
-# DEPRECATED: Allow an instance to have multiple vNICs
-# attached to the same Neutron network. This option is
-# deprecated in the 2015.1 release and will be removed in the
-# 2015.2 release where the default behavior will be to always
-# allow multiple ports from the same network to be attached to
-# an instance. (boolean value)
-#allow_duplicate_networks=false
-
-# Authentication URL (string value)
-#auth_url=<None>
-
-# Name of the plugin to load (string value)
-#auth_plugin=<None>
-
-# Authorization strategy for connecting to neutron in admin
-# context. DEPRECATED: specify an auth_plugin and appropriate
-# credentials instead. If an auth_plugin is specified strategy
-# will be ignored. (string value)
-#auth_strategy=keystone
-
-# PEM encoded Certificate Authority to use when verifying
-# HTTPs connections. (string value)
 # Deprecated group/name - [neutron]/ca_certificates_file
-#cafile=<None>
+#cafile = <None>
 
 # PEM encoded client certificate cert file (string value)
-#certfile=<None>
-
-# Domain ID to scope to (string value)
-#domain_id=<None>
-
-# Domain name to scope to (string value)
-#domain_name=<None>
-
-# Number of seconds before querying neutron for extensions
-# (integer value)
-#extension_sync_interval=600
+#certfile = <None>
+
+# Optional domain ID to use with v3 and v2 parameters. It will be used for both
+# the user and project domain in v3 and ignored in v2 authentication. (unknown
+# value)
+#default_domain_id = <None>
+
+# Optional domain name to use with v3 API and v2 parameters. It will be used
+# for both the user and project domain in v3 and ignored in v2 authentication.
+# (unknown value)
+#default_domain_name = <None>
+
+# Domain ID to scope to (unknown value)
+#domain_id = <None>
+
+# Domain name to scope to (unknown value)
+#domain_name = <None>
 
 # Verify HTTPS connections. (boolean value)
 # Deprecated group/name - [neutron]/api_insecure
-#insecure=false
+#insecure = false
 
 # PEM encoded client certificate key file (string value)
-#keyfile=<None>
-
-# Name of Integration Bridge used by Open vSwitch (string
-# value)
-#ovs_bridge=br_int0
-
-# User's password (string value)
-#password=<None>
-
-# Domain ID containing project (string value)
-#project_domain_id=<None>
-
-# Domain name containing project (string value)
-#project_domain_name=<None>
-
-# Project ID to scope to (string value)
-#project_id=<None>
-
-# Project name to scope to (string value)
-#project_name=<None>
-
-# Region name for connecting to neutron in admin context
-# (string value)
-#region_name=<None>
-
-# Tenant ID to scope to (string value)
-#tenant_id=<None>
-
-# Tenant name to scope to (string value)
-#tenant_name=<None>
+#keyfile = <None>
+
+# User's password (unknown value)
+password = %SERVICE_PASSWORD%
+
+# Domain ID containing project (unknown value)
+#project_domain_id = <None>
+
+# Domain name containing project (unknown value)
+#project_domain_name = <None>
+
+# Project ID to scope to (unknown value)
+# Deprecated group/name - [DEFAULT]/tenant-id
+#project_id = <None>
+
+# Project name to scope to (unknown value)
+# Deprecated group/name - [DEFAULT]/tenant-name
+#project_name = <None>
+
+# Tenant ID (unknown value)
+#tenant_id = <None>
+
+# Tenant Name (unknown value)
+tenant_name = %SERVICE_TENANT_NAME%
 
 # Timeout value for http requests (integer value)
 # Deprecated group/name - [neutron]/url_timeout
-#timeout=<None>
-
-# Trust ID (string value)
-#trust_id=<None>
-
-# URL for connecting to neutron (string value)
-#url=http://127.0.0.1:9696
-
-# User's domain id (string value)
-#user_domain_id=<None>
-
-# User's domain name (string value)
-#user_domain_name=<None>
-
-# User id (string value)
-#user_id=<None>
-
-# Username (string value)
-# Deprecated group/name - [DEFAULT]/user_name
-#username=<None>
-
-
-[osapi_v3]
-
-#
-# Options defined in nova.api.openstack
-#
-
-# Whether the V3 API is enabled or not (boolean value)
-#enabled=false
-
-# A list of v3 API extensions to never load. Specify the
-# extension aliases here. (list value)
-#extensions_blacklist=
-
-# If the list is not empty then a v3 API extension will only
-# be loaded if it exists in this list. Specify the extension
-# aliases here. (list value)
-#extensions_whitelist=
+#timeout = <None>
+
+# Trust ID (unknown value)
+#trust_id = <None>
+
+# User's domain id (unknown value)
+#user_domain_id = <None>
+
+# User's domain name (unknown value)
+#user_domain_name = <None>
+
+# User id (unknown value)
+#user_id = <None>
+
+# Username (unknown value)
+# Deprecated group/name - [DEFAULT]/user-name
+username = %SERVICE_USER%
+
+
+[osapi_v21]
+
+#
+# From nova.api
+#
+
+# DEPRECATED: Whether the V2.1 API is enabled or not. This option will be
+# removed in the near future. (boolean value)
+# Deprecated group/name - [osapi_v21]/enabled
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#enabled = true
+
+# DEPRECATED: A list of v2.1 API extensions to never load. Specify the
+# extension aliases here. This option will be removed in the near future. After
+# that point you have to run all of the API. (list value)
+# Deprecated group/name - [osapi_v21]/extensions_blacklist
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#extensions_blacklist =
+
+# DEPRECATED: If the list is not empty then a v2.1 API extension will only be
+# loaded if it exists in this list. Specify the extension aliases here. This
+# option will be removed in the near future. After that point you have to run
+# all of the API. (list value)
+# Deprecated group/name - [osapi_v21]/extensions_whitelist
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#extensions_whitelist =
+
+# DEPRECATED: The validation regex for project_ids used in urls. This defaults
+# to [0-9a-f\-]+ if not set, which matches normal uuids created by keystone.
+# (string value)
+# Deprecated group/name - [osapi_v21]/project_id_regex
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#project_id_regex = <None>
 
 
 [oslo_concurrency]
 
 #
-# Options defined in oslo.concurrency
+# From oslo.concurrency
 #
 
 # Enables or disables inter-process locks. (boolean value)
-#disable_process_locking=false
-
-# Directory to use for lock files.  For security, the
-# specified directory should only be writable by the user
-# running the processes that need locking. Defaults to
-# environment variable OSLO_LOCK_PATH. If external locks are
-# used, a lock path must be set. (string value)
-lock_path=$state_path/lock
+# Deprecated group/name - [DEFAULT]/disable_process_locking
+#disable_process_locking = false
+
+# Directory to use for lock files.  For security, the specified directory
+# should only be writable by the user running the processes that need locking.
+# Defaults to environment variable OSLO_LOCK_PATH. If external locks are used,
+# a lock path must be set. (string value)
+# Deprecated group/name - [DEFAULT]/lock_path
+lock_path = $state_path/lock
 
 
 [oslo_messaging_amqp]
 
 #
-# Options defined in oslo.messaging
-#
-
-# address prefix used when sending to a specific server
-# (string value)
-#server_request_prefix=exclusive
-
-# address prefix used when broadcasting to all servers (string
-# value)
-#broadcast_prefix=broadcast
-
-# address prefix when sending to any server in group (string
-# value)
-#group_request_prefix=unicast
+# From oslo.messaging
+#
+
+# address prefix used when sending to a specific server (string value)
+# Deprecated group/name - [amqp1]/server_request_prefix
+#server_request_prefix = exclusive
+
+# address prefix used when broadcasting to all servers (string value)
+# Deprecated group/name - [amqp1]/broadcast_prefix
+#broadcast_prefix = broadcast
+
+# address prefix when sending to any server in group (string value)
+# Deprecated group/name - [amqp1]/group_request_prefix
+#group_request_prefix = unicast
 
 # Name for the AMQP container (string value)
-#container_name=<None>
-
-# Timeout for inactive connections (in seconds) (integer
-# value)
-#idle_timeout=0
+# Deprecated group/name - [amqp1]/container_name
+#container_name = <None>
+
+# Timeout for inactive connections (in seconds) (integer value)
+# Deprecated group/name - [amqp1]/idle_timeout
+#idle_timeout = 0
 
 # Debug: dump AMQP frames to stdout (boolean value)
-#trace=false
-
-# CA certificate PEM file for verifing server certificate
-# (string value)
-#ssl_ca_file=
-
-# Identifying certificate PEM file to present to clients
-# (string value)
-#ssl_cert_file=
-
-# Private key PEM file used to sign cert_file certificate
-# (string value)
-#ssl_key_file=
-
-# Password for decrypting ssl_key_file (if encrypted) (string
-# value)
-#ssl_key_password=<None>
+# Deprecated group/name - [amqp1]/trace
+#trace = false
+
+# CA certificate PEM file to verify server certificate (string value)
+# Deprecated group/name - [amqp1]/ssl_ca_file
+#ssl_ca_file =
+
+# Identifying certificate PEM file to present to clients (string value)
+# Deprecated group/name - [amqp1]/ssl_cert_file
+#ssl_cert_file =
+
+# Private key PEM file used to sign cert_file certificate (string value)
+# Deprecated group/name - [amqp1]/ssl_key_file
+#ssl_key_file =
+
+# Password for decrypting ssl_key_file (if encrypted) (string value)
+# Deprecated group/name - [amqp1]/ssl_key_password
+#ssl_key_password = <None>
 
 # Accept clients using either SSL or plain TCP (boolean value)
-#allow_insecure_clients=false
-
-
-[oslo_messaging_qpid]
-
-#
-# Options defined in oslo.messaging
-#
-
-# Use durable queues in AMQP. (boolean value)
-# Deprecated group/name - [DEFAULT]/rabbit_durable_queues
-#amqp_durable_queues=false
-
-# Auto-delete queues in AMQP. (boolean value)
-#amqp_auto_delete=false
-
-# Size of RPC connection pool. (integer value)
-#rpc_conn_pool_size=30
-
-# Qpid broker hostname. (string value)
-#qpid_hostname=localhost
-
-# Qpid broker port. (integer value)
-#qpid_port=5672
-
-# Qpid HA cluster host:port pairs. (list value)
-#qpid_hosts=$qpid_hostname:$qpid_port
-
-# Username for Qpid connection. (string value)
-#qpid_username=
-
-# Password for Qpid connection. (string value)
-#qpid_password=
-
-# Space separated list of SASL mechanisms to use for auth.
-# (string value)
-#qpid_sasl_mechanisms=
-
-# Seconds between connection keepalive heartbeats. (integer
-# value)
-#qpid_heartbeat=60
-
-# Transport to use, either 'tcp' or 'ssl'. (string value)
-#qpid_protocol=tcp
-
-# Whether to disable the Nagle algorithm. (boolean value)
-#qpid_tcp_nodelay=true
-
-# The number of prefetched messages held by receiver. (integer
-# value)
-#qpid_receiver_capacity=1
-
-# The qpid topology version to use.  Version 1 is what was
-# originally used by impl_qpid.  Version 2 includes some
-# backwards-incompatible changes that allow broker federation
-# to work.  Users should update to version 2 when they are
-# able to take everything down, as it requires a clean break.
-# (integer value)
-#qpid_topology_version=1
+# Deprecated group/name - [amqp1]/allow_insecure_clients
+#allow_insecure_clients = false
+
+# Space separated list of acceptable SASL mechanisms (string value)
+# Deprecated group/name - [amqp1]/sasl_mechanisms
+#sasl_mechanisms =
+
+# Path to directory that contains the SASL configuration (string value)
+# Deprecated group/name - [amqp1]/sasl_config_dir
+#sasl_config_dir =
+
+# Name of configuration file (without .conf suffix) (string value)
+# Deprecated group/name - [amqp1]/sasl_config_name
+#sasl_config_name =
+
+# User name for message broker authentication (string value)
+# Deprecated group/name - [amqp1]/username
+#username =
+
+# Password for message broker authentication (string value)
+# Deprecated group/name - [amqp1]/password
+#password =
+
+
+[oslo_messaging_notifications]
+
+#
+# From oslo.messaging
+#
+
+# The Drivers(s) to handle sending notifications. Possible values are
+# messaging, messagingv2, routing, log, test, noop (multi valued)
+# Deprecated group/name - [DEFAULT]/notification_driver
+#driver =
+
+# A URL representing the messaging driver to use for notifications. If not set,
+# we fall back to the same configuration used for RPC. (string value)
+# Deprecated group/name - [DEFAULT]/notification_transport_url
+#transport_url = <None>
+
+# AMQP topic used for OpenStack notifications. (list value)
+# Deprecated group/name - [rpc_notifier2]/topics
+# Deprecated group/name - [DEFAULT]/notification_topics
+#topics = notifications
 
 
 [oslo_messaging_rabbit]
 
 #
-# Options defined in oslo.messaging
+# From oslo.messaging
 #
 
 # Use durable queues in AMQP. (boolean value)
+# Deprecated group/name - [DEFAULT]/amqp_durable_queues
 # Deprecated group/name - [DEFAULT]/rabbit_durable_queues
-#amqp_durable_queues=false
+#amqp_durable_queues = false
 
 # Auto-delete queues in AMQP. (boolean value)
-#amqp_auto_delete=false
-
-# Size of RPC connection pool. (integer value)
-#rpc_conn_pool_size=30
-
-# SSL version to use (valid only if SSL enabled). Valid values
-# are TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may
-# be available on some distributions. (string value)
-#kombu_ssl_version=
+# Deprecated group/name - [DEFAULT]/amqp_auto_delete
+#amqp_auto_delete = false
+
+# SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and
+# SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some
+# distributions. (string value)
+# Deprecated group/name - [DEFAULT]/kombu_ssl_version
+#kombu_ssl_version =
 
 # SSL key file (valid only if SSL enabled). (string value)
-#kombu_ssl_keyfile=
+# Deprecated group/name - [DEFAULT]/kombu_ssl_keyfile
+#kombu_ssl_keyfile =
 
 # SSL cert file (valid only if SSL enabled). (string value)
-#kombu_ssl_certfile=
-
-# SSL certification authority file (valid only if SSL
-# enabled). (string value)
-#kombu_ssl_ca_certs=
-
-# How long to wait before reconnecting in response to an AMQP
-# consumer cancel notification. (floating point value)
-#kombu_reconnect_delay=1.0
-
-# The RabbitMQ broker address where a single node is used.
-# (string value)
-#rabbit_host=localhost
-
-# The RabbitMQ broker port where a single node is used.
-# (integer value)
-#rabbit_port=5672
+# Deprecated group/name - [DEFAULT]/kombu_ssl_certfile
+#kombu_ssl_certfile =
+
+# SSL certification authority file (valid only if SSL enabled). (string value)
+# Deprecated group/name - [DEFAULT]/kombu_ssl_ca_certs
+#kombu_ssl_ca_certs =
+
+# How long to wait before reconnecting in response to an AMQP consumer cancel
+# notification. (floating point value)
+# Deprecated group/name - [DEFAULT]/kombu_reconnect_delay
+#kombu_reconnect_delay = 1.0
+
+# EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression will not
+# be used. This option may notbe available in future versions. (string value)
+#kombu_compression = <None>
+
+# How long to wait a missing client beforce abandoning to send it its replies.
+# This value should not be longer than rpc_response_timeout. (integer value)
+# Deprecated group/name - [DEFAULT]/kombu_reconnect_timeout
+#kombu_missing_consumer_retry_timeout = 60
+
+# Determines how the next RabbitMQ node is chosen in case the one we are
+# currently connected to becomes unavailable. Takes effect only if more than
+# one RabbitMQ node is provided in config. (string value)
+# Allowed values: round-robin, shuffle
+#kombu_failover_strategy = round-robin
+
+# The RabbitMQ broker address where a single node is used. (string value)
+# Deprecated group/name - [DEFAULT]/rabbit_host
+#rabbit_host = localhost
+
+# The RabbitMQ broker port where a single node is used. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+# Deprecated group/name - [DEFAULT]/rabbit_port
+#rabbit_port = 5672
 
 # RabbitMQ HA cluster host:port pairs. (list value)
-#rabbit_hosts=$rabbit_host:$rabbit_port
+# Deprecated group/name - [DEFAULT]/rabbit_hosts
+#rabbit_hosts = $rabbit_host:$rabbit_port
 
 # Connect over SSL for RabbitMQ. (boolean value)
-#rabbit_use_ssl=false
+# Deprecated group/name - [DEFAULT]/rabbit_use_ssl
+#rabbit_use_ssl = false
 
 # The RabbitMQ userid. (string value)
-#rabbit_userid=guest
+# Deprecated group/name - [DEFAULT]/rabbit_userid
+#rabbit_userid = guest
 
 # The RabbitMQ password. (string value)
-#rabbit_password=guest
+# Deprecated group/name - [DEFAULT]/rabbit_password
+#rabbit_password = guest
 
 # The RabbitMQ login method. (string value)
-#rabbit_login_method=AMQPLAIN
+# Deprecated group/name - [DEFAULT]/rabbit_login_method
+#rabbit_login_method = AMQPLAIN
 
 # The RabbitMQ virtual host. (string value)
-#rabbit_virtual_host=/
-
-# How frequently to retry connecting with RabbitMQ. (integer
+# Deprecated group/name - [DEFAULT]/rabbit_virtual_host
+#rabbit_virtual_host = /
+
+# How frequently to retry connecting with RabbitMQ. (integer value)
+#rabbit_retry_interval = 1
+
+# How long to backoff for between retries when connecting to RabbitMQ. (integer
+# value)
+# Deprecated group/name - [DEFAULT]/rabbit_retry_backoff
+#rabbit_retry_backoff = 2
+
+# Maximum interval of RabbitMQ connection retries. Default is 30 seconds.
+# (integer value)
+#rabbit_interval_max = 30
+
+# Maximum number of RabbitMQ connection retries. Default is 0 (infinite retry
+# count). (integer value)
+# Deprecated group/name - [DEFAULT]/rabbit_max_retries
+#rabbit_max_retries = 0
+
+# Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change this
+# option, you must wipe the RabbitMQ database. In RabbitMQ 3.0, queue mirroring
+# is no longer controlled by the x-ha-policy argument when declaring a queue.
+# If you just want to make sure that all queues (except  those with auto-
+# generated names) are mirrored across all nodes, run: "rabbitmqctl set_policy
+# HA '^(?!amq\.).*' '{"ha-mode": "all"}' " (boolean value)
+# Deprecated group/name - [DEFAULT]/rabbit_ha_queues
+#rabbit_ha_queues = false
+
+# Positive integer representing duration in seconds for queue TTL (x-expires).
+# Queues which are unused for the duration of the TTL are automatically
+# deleted. The parameter affects only reply and fanout queues. (integer value)
+# Minimum value: 1
+#rabbit_transient_queues_ttl = 1800
+
+# Specifies the number of messages to prefetch. Setting to zero allows
+# unlimited messages. (integer value)
+#rabbit_qos_prefetch_count = 0
+
+# Number of seconds after which the Rabbit broker is considered down if
+# heartbeat's keep-alive fails (0 disable the heartbeat). EXPERIMENTAL (integer
+# value)
+#heartbeat_timeout_threshold = 60
+
+# How often times during the heartbeat_timeout_threshold we check the
+# heartbeat. (integer value)
+#heartbeat_rate = 2
+
+# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake (boolean value)
+# Deprecated group/name - [DEFAULT]/fake_rabbit
+#fake_rabbit = false
+
+# Maximum number of channels to allow (integer value)
+#channel_max = <None>
+
+# The maximum byte size for an AMQP frame (integer value)
+#frame_max = <None>
+
+# How often to send heartbeats for consumer's connections (integer value)
+#heartbeat_interval = 1
+
+# Enable SSL (boolean value)
+#ssl = <None>
+
+# Arguments passed to ssl.wrap_socket (dict value)
+#ssl_options = <None>
+
+# Set socket timeout in seconds for connection's socket (floating point value)
+#socket_timeout = 0.25
+
+# Set TCP_USER_TIMEOUT in seconds for connection's socket (floating point
 # value)
-#rabbit_retry_interval=1
-
-# How long to backoff for between retries when connecting to
-# RabbitMQ. (integer value)
-#rabbit_retry_backoff=2
-
-# Maximum number of RabbitMQ connection retries. Default is 0
-# (infinite retry count). (integer value)
-#rabbit_max_retries=0
-
-# Use HA queues in RabbitMQ (x-ha-policy: all). If you change
-# this option, you must wipe the RabbitMQ database. (boolean
+#tcp_user_timeout = 0.25
+
+# Set delay for reconnection to some host which has connection error (floating
+# point value)
+#host_connection_reconnect_delay = 0.25
+
+# Maximum number of connections to keep queued. (integer value)
+#pool_max_size = 10
+
+# Maximum number of connections to create above `pool_max_size`. (integer
+# value)
+#pool_max_overflow = 0
+
+# Default number of seconds to wait for a connections to available (integer
 # value)
-#rabbit_ha_queues=false
-
-# Number of seconds after which the Rabbit broker is
-# considered down if heartbeat's keep-alive fails (0 disables
-# the heartbeat, >0 enables it. Enabling heartbeats requires
-# kombu>=3.0.7 and amqp>=1.4.0). EXPERIMENTAL (integer value)
-#heartbeat_timeout_threshold=0
-
-# How often times during the heartbeat_timeout_threshold we
-# check the heartbeat. (integer value)
-#heartbeat_rate=2
-
-# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake
-# (boolean value)
-#fake_rabbit=false
+#pool_timeout = 30
+
+# Lifetime of a connection (since creation) in seconds or None for no
+# recycling. Expired connections are closed on acquire. (integer value)
+#pool_recycle = 600
+
+# Threshold at which inactive (since release) connections are considered stale
+# in seconds or None for no staleness. Stale connections are closed on acquire.
+# (integer value)
+#pool_stale = 60
+
+# Persist notification messages. (boolean value)
+#notification_persistence = false
+
+# Exchange name for for sending notifications (string value)
+#default_notification_exchange = ${control_exchange}_notification
+
+# Max number of not acknowledged message which RabbitMQ can send to
+# notification listener. (integer value)
+#notification_listener_prefetch_count = 100
+
+# Reconnecting retry count in case of connectivity problem during sending
+# notification, -1 means infinite retry. (integer value)
+#default_notification_retry_attempts = -1
+
+# Reconnecting retry delay in case of connectivity problem during sending
+# notification message (floating point value)
+#notification_retry_delay = 0.25
+
+# Time to live for rpc queues without consumers in seconds. (integer value)
+#rpc_queue_expiration = 60
+
+# Exchange name for sending RPC messages (string value)
+#default_rpc_exchange = ${control_exchange}_rpc
+
+# Exchange name for receiving RPC replies (string value)
+#rpc_reply_exchange = ${control_exchange}_rpc_reply
+
+# Max number of not acknowledged message which RabbitMQ can send to rpc
+# listener. (integer value)
+#rpc_listener_prefetch_count = 100
+
+# Max number of not acknowledged message which RabbitMQ can send to rpc reply
+# listener. (integer value)
+#rpc_reply_listener_prefetch_count = 100
+
+# Reconnecting retry count in case of connectivity problem during sending
+# reply. -1 means infinite retry during rpc_timeout (integer value)
+#rpc_reply_retry_attempts = -1
+
+# Reconnecting retry delay in case of connectivity problem during sending
+# reply. (floating point value)
+#rpc_reply_retry_delay = 0.25
+
+# Reconnecting retry count in case of connectivity problem during sending RPC
+# message, -1 means infinite retry. If actual retry attempts in not 0 the rpc
+# request could be processed more then one time (integer value)
+#default_rpc_retry_attempts = -1
+
+# Reconnecting retry delay in case of connectivity problem during sending RPC
+# message (floating point value)
+#rpc_retry_delay = 0.25
 
 
 [oslo_middleware]
 
 #
-# Options defined in oslo.middleware
-#
-
-# The maximum body size for each  request, in bytes. (integer
-# value)
+# From oslo.middleware
+#
+
+# The maximum body size for each  request, in bytes. (integer value)
 # Deprecated group/name - [DEFAULT]/osapi_max_request_body_size
 # Deprecated group/name - [DEFAULT]/max_request_body_size
-#max_request_body_size=114688
+#max_request_body_size = 114688
+
+# The HTTP Header that will be used to determine what the original request
+# protocol scheme was, even if it was hidden by an SSL termination proxy.
+# (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#secure_proxy_ssl_header = X-Forwarded-Proto
+
+
+[oslo_policy]
+
+#
+# From oslo.policy
+#
+
+# The JSON file that defines policies. (string value)
+# Deprecated group/name - [DEFAULT]/policy_file
+#policy_file = policy.json
+
+# Default rule. Enforced when a requested rule is not found. (string value)
+# Deprecated group/name - [DEFAULT]/policy_default_rule
+#policy_default_rule = default
+
+# Directories where policy configuration files are stored. They can be relative
+# to any directory in the search path defined by the config_dir option, or
+# absolute paths. The file defined by policy_file must exist for these
+# directories to be searched.  Missing or empty directories are ignored. (multi
+# valued)
+# Deprecated group/name - [DEFAULT]/policy_dirs
+#policy_dirs = policy.d
+
+
+[oslo_reports]
+
+#
+# From oslo.reports
+#
+
+# Path to a log directory where to create a file (string value)
+#log_dir = <None>
+
+
+[oslo_versionedobjects]
+
+#
+# From oslo.versionedobjects
+#
+
+# Make exception message format errors fatal (boolean value)
+#fatal_exception_format_errors = false
 
 
 [rdp]
 
 #
-# Options defined in nova.rdp
-#
-
-# Location of RDP html5 console proxy, in the form
-# "http://127.0.0.1:6083/" (string value)
-#html5_proxy_base_url=http://127.0.0.1:6083/
+# From nova
+#
+
+# Location of RDP html5 console proxy, in the form "http://127.0.0.1:6083/"
+# (string value)
+#html5_proxy_base_url = http://127.0.0.1:6083/
 
 # Enable RDP related features (boolean value)
-#enabled=false
+#enabled = false
 
 
 [serial_console]
 
 #
-# Options defined in nova.cmd.serialproxy
+# From nova.conf
+#
+
+#
+# Enable the serial console feature.
+#
+# In order to use this feature, the service ``nova-serialproxy`` needs to run.
+# This service is typically executed on the controller node.
+#
+# Possible values:
+#
+# * True: Enables the feature
+# * False: Disables the feature
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Interdependencies to other options:
+#
+# * None
+#  (boolean value)
+#enabled = false
+
+#
+# A range of TCP ports a guest can use for its backend.
+#
+# Each instance which gets created will use one port out of this range. If the
+# range is not big enough to provide another port for an new instance, this
+# instance won't get launched.
+#
+# Possible values:
+#
+# Each string which passes the regex ``\d+:\d+`` For example ``10000:20000``.
+# Be sure that the first port number is lower than the second port number.
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Interdependencies to other options:
+#
+# * None
+#  (string value)
+#port_range = 10000:20000
+
+#
+# The URL an end user would use to connect to the ``nova-serialproxy`` service.
+#
+# The ``nova-serialproxy`` service is called with this token enriched URL
+# and establishes the connection to the proper instance.
+#
+# Possible values:
+#
+# * <scheme><IP-address><port-number>
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Interdependencies to other options:
+#
+# * The IP address must be identical to the address to which the
+#   ``nova-serialproxy`` service is listening (see option ``serialproxy_host``
+#   in this section).
+# * The port must be the same as in the option ``serialproxy_port`` of this
+#   section.
+# * If you choose to use a secured websocket connection, then start this option
+#   with ``wss://`` instead of the unsecured ``ws://``. The options ``cert``
+#   and ``key`` in the ``[DEFAULT]`` section have to be set for that.
+#  (string value)
+#base_url = ws://127.0.0.1:6083/
+
+#
+# DEPRECATED: this option has no effect anymore. Please use
+# "proxyclient_address" instead. This option is deprecated and will be removed
+# in future releases. (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#listen = 127.0.0.1
+
+#
+# The IP address to which proxy clients (like ``nova-serialproxy``) should
+# connect to get the serial console of an instance.
+#
+# This is typically the IP address of the host of a ``nova-compute`` service.
+#
+# Possible values:
+#
+# * An IP address
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Interdependencies to other options:
+#
+# * None
+#  (string value)
+#proxyclient_address = 127.0.0.1
+
+#
+# The IP address which is used by the ``nova-serialproxy`` service to listen
+# for incoming requests.
+#
+# The ``nova-serialproxy`` service listens on this IP address for incoming
+# connection requests to instances which expose serial console.
+#
+# Possible values:
+#
+# * An IP address
+#
+# Services which consume this:
+#
+# * ``nova-serialproxy``
+#
+# Interdependencies to other options:
+#
+# * Ensure that this is the same IP address which is defined in the option
+#   ``base_url`` of this section or use ``0.0.0.0`` to listen on all addresses.
+#  (string value)
+#serialproxy_host = 0.0.0.0
+
+#
+# The port number which is used by the ``nova-serialproxy`` service to listen
+# for incoming requests.
+#
+# The ``nova-serialproxy`` service listens on this port number for incoming
+# connection requests to instances which expose serial console.
+#
+# Possible values:
+#
+# * A port number
+#
+# Services which consume this:
+#
+# * ``nova-serialproxy``
+#
+# Interdependencies to other options:
+#
+# * Ensure that this is the same port number which is defined in the option
+#   ``base_url`` of this section.
+#  (integer value)
+# Minimum value: 1
+# Maximum value: 65535
+#serialproxy_port = 6083
+
+
+[solariszones]
+
+#
+# From nova.virt
+#
+
+# Cinder volume type to use for boot volumes (string value)
+#boot_volume_type = <None>
+
+# Cinder availability zone to use for boot volumes (string value)
+#boot_volume_az = <None>
+
+# Default path to Glance cache for Solaris Zones. (string value)
+#glancecache_dirname = /var/share/nova/images
+
+# Cipher to use for encryption of memory traffic during live migration. If not
+# specified, a common encryption algorithm will be negotiated. Options include:
+# none or the name of a supported OpenSSL cipher algorithm. (string value)
+#live_migration_cipher = <None>
+
+# Location to store snapshots before uploading them to the Glance image
+# service. (string value)
+#solariszones_snapshots_directory = $instances_path/snapshots
+
+# Default path for suspend images for Solaris Zones. (string value)
+#zones_suspend_path = /var/share/zones/SYSsuspend
+
+# Allow kernel boot options to be set in instance metadata. (boolean value)
+#solariszones_boot_options = true
+
+
+[spice]
+
+#
+# From nova
 #
 
 # Host on which to listen for incoming requests (string value)
-#serialproxy_host=0.0.0.0
-
-# Port on which to listen for incoming requests (integer
-# value)
-#serialproxy_port=6083
-
-
-#
-# Options defined in nova.console.serial
-#
-
-# Enable serial console related features (boolean value)
-#enabled=false
-
-# Range of TCP ports to use for serial ports on compute hosts
-# (string value)
-#port_range=10000:20000
-
-# Location of serial console proxy. (string value)
-#base_url=ws://127.0.0.1:6083/
-
-# IP address on which instance serial console should listen
-# (string value)
-#listen=127.0.0.1
-
-# The address to which proxy clients (like nova-serialproxy)
-# should connect (string value)
-#proxyclient_address=127.0.0.1
-
-
-[spice]
-
-#
-# Options defined in nova.cmd.spicehtml5proxy
-#
-
-# Host on which to listen for incoming requests (string value)
-#html5proxy_host=0.0.0.0
-
-# Port on which to listen for incoming requests (integer
-# value)
-#html5proxy_port=6082
-
-
-#
-# Options defined in nova.spice
-#
+#html5proxy_host = 0.0.0.0
+
+# Port on which to listen for incoming requests (integer value)
+# Minimum value: 1
+# Maximum value: 65535
+#html5proxy_port = 6082
 
 # Location of spice HTML5 console proxy, in the form
 # "http://127.0.0.1:6082/spice_auto.html" (string value)
-#html5proxy_base_url=http://127.0.0.1:6082/spice_auto.html
-
-# IP address on which instance spice server should listen
+#html5proxy_base_url = http://127.0.0.1:6082/spice_auto.html
+
+# IP address on which instance spice server should listen (string value)
+#server_listen = 127.0.0.1
+
+# The address to which proxy clients (like nova-spicehtml5proxy) should connect
 # (string value)
-#server_listen=127.0.0.1
-
-# The address to which proxy clients (like nova-
-# spicehtml5proxy) should connect (string value)
-#server_proxyclient_address=127.0.0.1
+#server_proxyclient_address = 127.0.0.1
 
 # Enable spice related features (boolean value)
-#enabled=false
+#enabled = false
 
 # Enable spice guest agent support (boolean value)
-#agent_enabled=true
+#agent_enabled = true
 
 # Keymap for spice (string value)
-#keymap=en-us
+#keymap = en-us
 
 
 [ssl]
 
 #
-# Options defined in nova.openstack.common.sslutils
-#
-
-# CA certificate file to use to verify connecting clients.
-# (string value)
-#ca_file=<None>
-
-# Certificate file to use when starting the server securely.
-# (string value)
-#cert_file=<None>
-
-# Private key file to use when starting the server securely.
-# (string value)
-#key_file=<None>
+# From oslo.service.sslutils
+#
+
+# CA certificate file to use to verify connecting clients. (string value)
+# Deprecated group/name - [DEFAULT]/ssl_ca_file
+#ca_file = <None>
+
+# Certificate file to use when starting the server securely. (string value)
+# Deprecated group/name - [DEFAULT]/ssl_cert_file
+#cert_file = <None>
+
+# Private key file to use when starting the server securely. (string value)
+# Deprecated group/name - [DEFAULT]/ssl_key_file
+#key_file = <None>
+
+# SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and
+# SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some
+# distributions. (string value)
+#version = <None>
+
+# Sets the list of available ciphers. value should be a string in the OpenSSL
+# cipher list format. (string value)
+#ciphers = <None>
 
 
 [trusted_computing]
 
 #
-# Options defined in nova.scheduler.filters.trusted_filter
-#
-
-# Attestation server HTTP (string value)
-#attestation_server=<None>
-
-# Attestation server Cert file for Identity verification
-# (string value)
-#attestation_server_ca_file=<None>
-
-# Attestation server port (string value)
-#attestation_port=8443
-
-# Attestation web API URL (string value)
-#attestation_api_url=/OpenAttestationWebServices/V1.0
-
-# Attestation authorization blob - must change (string value)
-#attestation_auth_blob=<None>
-
-# Attestation status cache valid period length (integer value)
-#attestation_auth_timeout=60
-
-# Disable SSL cert verification for Attestation service
-# (boolean value)
-#attestation_insecure_ssl=false
+# From nova.conf
+#
+
+#
+# The host to use as the attestation server.
+#
+# Cloud computing pools can involve thousands of compute nodes located at
+# different geographical locations, making it difficult for cloud providers to
+# identify a node's trustworthiness. When using the Trusted filter, users can
+# request that their VMs only be placed on nodes that have been verified by the
+# attestation server specified in this option.
+#
+# The value is a string, and can be either an IP address or FQDN.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'TrustedFilter' filter is enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     attestation_server_ca_file
+#     attestation_port
+#     attestation_api_url
+#     attestation_auth_blob
+#     attestation_auth_timeout
+#     attestation_insecure_ssl
+#  (string value)
+#attestation_server = <None>
+
+#
+# The absolute path to the certificate to use for authentication when
+# connecting
+# to the attestation server. See the `attestation_server` help text for more
+# information about host verification.
+#
+# The value is a string, and must point to a file that is readable by the
+# scheduler.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'TrustedFilter' filter is enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     attestation_server
+#     attestation_port
+#     attestation_api_url
+#     attestation_auth_blob
+#     attestation_auth_timeout
+#     attestation_insecure_ssl
+#  (string value)
+#attestation_server_ca_file = <None>
+
+#
+# The port to use when connecting to the attestation server. See the
+# `attestation_server` help text for more information about host verification.
+#
+# Valid values are strings, not integers, but must be digits only.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'TrustedFilter' filter is enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     attestation_server
+#     attestation_server_ca_file
+#     attestation_api_url
+#     attestation_auth_blob
+#     attestation_auth_timeout
+#     attestation_insecure_ssl
+#  (string value)
+#attestation_port = 8443
+
+#
+# The URL on the attestation server to use. See the `attestation_server` help
+# text for more information about host verification.
+#
+# This value must be just that path portion of the full URL, as it will be
+# joined
+# to the host specified in the attestation_server option.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'TrustedFilter' filter is enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     attestation_server
+#     attestation_server_ca_file
+#     attestation_port
+#     attestation_auth_blob
+#     attestation_auth_timeout
+#     attestation_insecure_ssl
+#  (string value)
+#attestation_api_url = /OpenAttestationWebServices/V1.0
+
+#
+# Attestation servers require a specific blob that is used to authenticate. The
+# content and format of the blob are determined by the particular attestation
+# server being used. There is no default value; you must supply the value as
+# specified by your attestation service. See the `attestation_server` help text
+# for more information about host verification.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'TrustedFilter' filter is enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     attestation_server
+#     attestation_server_ca_file
+#     attestation_port
+#     attestation_api_url
+#     attestation_auth_timeout
+#     attestation_insecure_ssl
+#  (string value)
+#attestation_auth_blob = <None>
+
+#
+# This value controls how long a successful attestation is cached. Once this
+# period has elapsed, a new attestation request will be made. See the
+# `attestation_server` help text for more information about host verification.
+#
+# The value is in seconds. Valid values must be positive integers for any
+# caching; setting this to zero or a negative value will result in calls to the
+# attestation_server for every request, which may impact performance.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'TrustedFilter' filter is enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     attestation_server
+#     attestation_server_ca_file
+#     attestation_port
+#     attestation_api_url
+#     attestation_auth_blob
+#     attestation_insecure_ssl
+#  (integer value)
+#attestation_auth_timeout = 60
+
+#
+# When set to True, the SSL certificate verification is skipped for the
+# attestation service. See the `attestation_server` help text for more
+# information about host verification.
+#
+# Valid values are True or False. The default is False.
+#
+# This option is only used by the FilterScheduler and its subclasses; if you
+# use
+# a different scheduler, this option has no effect. Also note that this setting
+# only affects scheduling if the 'TrustedFilter' filter is enabled.
+#
+# * Services that use this:
+#
+#     ``nova-scheduler``
+#
+# * Related options:
+#
+#     attestation_server
+#     attestation_server_ca_file
+#     attestation_port
+#     attestation_api_url
+#     attestation_auth_blob
+#     attestation_auth_timeout
+#  (boolean value)
+#attestation_insecure_ssl = false
 
 
 [upgrade_levels]
 
 #
-# Options defined in nova.baserpc
-#
-
-# Set a version cap for messages sent to the base api in any
-# service (string value)
-#baseapi=<None>
-
-
-#
-# Options defined in nova.cells.rpc_driver
-#
-
-# Set a version cap for messages sent between cells services
-# (string value)
-#intercell=<None>
-
-
-#
-# Options defined in nova.cells.rpcapi
-#
-
-# Set a version cap for messages sent to local cells services
-# (string value)
-#cells=<None>
-
-
-#
-# Options defined in nova.cert.rpcapi
-#
-
-# Set a version cap for messages sent to cert services (string
+# From nova
+#
+
+# Set a version cap for messages sent to the base api in any service (string
+# value)
+#baseapi = <None>
+
+# Set a version cap for messages sent to conductor services (string value)
+#conductor = <None>
+
+# Set a version cap for messages sent to console services (string value)
+#console = <None>
+
+# Set a version cap for messages sent to consoleauth services (string value)
+#consoleauth = <None>
+
+#
+# From nova.compute
+#
+
+# Set a version cap for messages sent to compute services. Set this option to
+# "auto" if you want to let the compute RPC module automatically determine what
+# version to use based on the service versions in the deployment. Otherwise,
+# you can set this to a specific version to pin this service to messages at a
+# particular level. All services of a single type (i.e. compute) should be
+# configured to use the same version, and it should be set to the minimum
+# commonly-supported version of all those services in the deployment. (string
 # value)
-#cert=<None>
-
-
-#
-# Options defined in nova.compute.rpcapi
-#
-
-# Set a version cap for messages sent to compute services. If
-# you plan to do a live upgrade from an old version to a newer
-# version, you should set this option to the old version
-# before beginning the live upgrade procedure. Only upgrading
-# to the next version is supported, so you cannot skip a
-# release for the live upgrade procedure. (string value)
-#compute=<None>
-
-
-#
-# Options defined in nova.conductor.rpcapi
-#
-
-# Set a version cap for messages sent to conductor services
-# (string value)
-#conductor=<None>
-
-
-#
-# Options defined in nova.console.rpcapi
-#
-
-# Set a version cap for messages sent to console services
-# (string value)
-#console=<None>
-
-
-#
-# Options defined in nova.consoleauth.rpcapi
-#
-
-# Set a version cap for messages sent to consoleauth services
-# (string value)
-#consoleauth=<None>
-
-
-#
-# Options defined in nova.network.rpcapi
-#
-
-# Set a version cap for messages sent to network services
-# (string value)
-#network=<None>
-
-
-#
-# Options defined in nova.scheduler.rpcapi
-#
-
-# Set a version cap for messages sent to scheduler services
-# (string value)
-#scheduler=<None>
+#compute = <None>
+
+#
+# From nova.conf
+#
+
+#
+# Intercell version
+#
+# Intercell RPC API is the client side of the Cell<->Cell RPC API.
+# Use this option to set a version cap for messages sent between
+# cells services.
+#
+# Possible values:
+#
+# * None: This is the default value.
+# * grizzly: message version 1.0.
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (string value)
+#intercell = <None>
+
+#
+# Cells version
+#
+# Cells client-side RPC API version. Use this option to set a version
+# cap for messages sent to local cells services.
+#
+# Possible values:
+#
+# * None: This is the default value.
+# * grizzly: message version 1.6.
+# * havana: message version 1.24.
+# * icehouse: message version 1.27.
+# * juno: message version 1.29.
+# * kilo: message version 1.34.
+# * liberty: message version 1.37.
+#
+# Services which consume this:
+#
+# * nova-cells
+#
+# Related options:
+#
+# * None
+#  (string value)
+#cells = <None>
+
+#
+# Specifies the maximum version for messages sent from cert services. This
+# should
+# be the minimum value that is supported by all of the deployed cert services.
+#
+# Possible values:
+#
+# Any valid OpenStack release name, in lower case, such as 'mitaka' or
+# 'liberty'.
+# Alternatively, it can be any string representing a version number in the
+# format
+# 'N.N'; for example, possible values might be '1.12' or '2.0'.
+#
+# * Services which consume this:
+#
+#     ``nova-cert``
+#
+# * Related options:
+#
+#     None
+#  (string value)
+#cert = <None>
+
+#
+# Sets a version cap (limit) for messages sent to scheduler services. In the
+# situation where there were multiple scheduler services running, and they were
+# not being upgraded together, you would set this to the lowest deployed
+# version
+# to guarantee that other services never send messages that any of your running
+# schedulers cannot understand.
+#
+# This is rarely needed in practice as most deployments run a single scheduler.
+# It exists mainly for design compatibility with the other services, such as
+# compute, which are routinely upgraded in a rolling fashion.
+#
+# * Services that use this:
+#
+#     ``nova-compute, nova-conductor``
+#
+# * Related options:
+#
+#     None
+#  (string value)
+#scheduler = <None>
+
+#
+# From nova.network
+#
+
+# Set a version cap for messages sent to network services (string value)
+#network = <None>
 
 
 [vmware]
 
 #
-# Options defined in nova.virt.vmwareapi.driver
-#
+# From nova.virt
+#
+
+# The maximum number of ObjectContent data objects that should be returned in a
+# single result. A positive value will cause the operation to suspend the
+# retrieval when the count of objects reaches the specified maximum. The server
+# may still limit the count to something less than the configured value. Any
+# remaining objects may be retrieved with additional requests. (integer value)
+#maximum_objects = 100
 
 # The PBM status. (boolean value)
-#pbm_enabled=false
+#pbm_enabled = false
 
 # PBM service WSDL file location URL. e.g.
-# file:///opt/SDK/spbm/wsdl/pbmService.wsdl Not setting this
-# will disable storage policy based placement of instances.
-# (string value)
-#pbm_wsdl_location=<None>
-
-# The PBM default policy. If pbm_wsdl_location is set and
-# there is no defined storage policy for the specific request
-# then this policy will be used. (string value)
-#pbm_default_policy=<None>
-
-# Hostname or IP address for connection to VMware VC host.
+# file:///opt/SDK/spbm/wsdl/pbmService.wsdl Not setting this will disable
+# storage policy based placement of instances. (string value)
+#pbm_wsdl_location = <None>
+
+# The PBM default policy. If pbm_wsdl_location is set and there is no defined
+# storage policy for the specific request then this policy will be used.
 # (string value)
-#host_ip=<None>
-
-# Port for connection to VMware VC host. (integer value)
-#host_port=443
-
-# Username for connection to VMware VC host. (string value)
-#host_username=<None>
-
-# Password for connection to VMware VC host. (string value)
-#host_password=<None>
-
-# Name of a VMware Cluster ComputeResource. (multi valued)
-#cluster_name=<None>
+#pbm_default_policy = <None>
+
+# Hostname or IP address for connection to VMware vCenter host. (string value)
+#host_ip = <None>
+
+# Port for connection to VMware vCenter host. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#host_port = 443
+
+# Username for connection to VMware vCenter host. (string value)
+#host_username = <None>
+
+# Password for connection to VMware vCenter host. (string value)
+#host_password = <None>
+
+# Specify a CA bundle file to use in verifying the vCenter server certificate.
+# (string value)
+#ca_file = <None>
+
+# If true, the vCenter server certificate is not verified. If false, then the
+# default CA truststore is used for verification. This option is ignored if
+# "ca_file" is set. (boolean value)
+#insecure = false
+
+# Name of a VMware Cluster ComputeResource. (string value)
+#cluster_name = <None>
 
 # Regex to match the name of a datastore. (string value)
-#datastore_regex=<None>
-
-# The interval used for polling of remote tasks. (floating
-# point value)
-#task_poll_interval=0.5
-
-# The number of times we retry on failures, e.g., socket
-# error, etc. (integer value)
-#api_retry_count=10
-
-# VNC starting port (integer value)
-#vnc_port=5900
+#datastore_regex = <None>
+
+# The interval used for polling of remote tasks. (floating point value)
+#task_poll_interval = 0.5
+
+# The number of times we retry on failures, e.g., socket error, etc. (integer
+# value)
+#api_retry_count = 10
+
+# VNC starting port (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#vnc_port = 5900
 
 # Total number of VNC ports (integer value)
-#vnc_port_total=10000
+#vnc_port_total = 10000
 
 # Whether to use linked clone (boolean value)
-#use_linked_clone=true
-
-# Optional VIM Service WSDL Location e.g
-# http://<server>/vimService.wsdl. Optional over-ride to
-# default location for bug work-arounds (string value)
-#wsdl_location=<None>
-
-
-#
-# Options defined in nova.virt.vmwareapi.vif
-#
-
-# Physical ethernet adapter name for vlan networking (string
+#use_linked_clone = true
+
+# Optional VIM Service WSDL Location e.g http://<server>/vimService.wsdl.
+# Optional over-ride to default location for bug work-arounds (string value)
+#wsdl_location = <None>
+
+# Physical ethernet adapter name for vlan networking (string value)
+#vlan_interface = vmnic0
+
+# This option should be configured only when using the NSX-MH Neutron plugin.
+# This is the name of the integration bridge on the ESXi. This should not be
+# set for any other Neutron plugin. Hence the default value is not set. (string
+# value)
+#integration_bridge = <None>
+
+# Set this value if affected by an increased network latency causing repeated
+# characters when typing in a remote console. (integer value)
+#console_delay_seconds = <None>
+
+# Identifies the remote system that serial port traffic will be sent to. If
+# this is not set, no serial ports will be added to the created VMs. (string
 # value)
-#vlan_interface=vmnic0
-
-# Name of Integration Bridge (string value)
-#integration_bridge=br-int
-
-
-#
-# Options defined in nova.virt.vmwareapi.vim_util
-#
-
-# The maximum number of ObjectContent data objects that should
-# be returned in a single result. A positive value will cause
-# the operation to suspend the retrieval when the count of
-# objects reaches the specified maximum. The server may still
-# limit the count to something less than the configured value.
-# Any remaining objects may be retrieved with additional
-# requests. (integer value)
-#maximum_objects=100
-
-
-#
-# Options defined in nova.virt.vmwareapi.vmops
-#
-
-# The prefix for Where cached images are stored. This is NOT
-# the full path - just a folder prefix. This should only be
-# used when a datastore cache should be shared between compute
-# nodes. Note: this should only be used when the compute nodes
-# have a shared file system. (string value)
-#cache_prefix=<None>
+#serial_port_service_uri = <None>
+
+# Identifies a proxy service that provides network access to the
+# serial_port_service_uri. This option is ignored if serial_port_service_uri is
+# not specified. (string value)
+#serial_port_proxy_uri = <None>
+
+# The prefix for where cached images are stored. This is NOT the full path -
+# just a folder prefix. This should only be used when a datastore cache should
+# be shared between compute nodes. Note: this should only be used when the
+# compute nodes have a shared file system. (string value)
+#cache_prefix = <None>
+
+
+[vnc]
+#
+# Virtual Network Computer (VNC) can be used to provide remote desktop
+# console access to instances for tenants and/or administrators.
+
+#
+# From nova.conf
+#
+
+# Enable VNC related features.
+#
+# Guests will get created with graphical devices to support this. Clients
+# (for example Horizon) can then establish a VNC connection to the guest.
+#
+# Possible values:
+#
+# * True: Enables the feature
+# * False: Disables the feature
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Related options:
+#
+# * None
+#  (boolean value)
+# Deprecated group/name - [DEFAULT]/vnc_enabled
+#enabled = true
+
+# Keymap for VNC.
+#
+# The keyboard mapping (keymap) determines which keyboard layout a VNC
+# session should use by default.
+#
+# Possible values:
+#
+# * A keyboard layout which is supported by the underlying hypervisor on
+#   this node. This is usually an 'IETF language tag' (for example
+#   'en-us').  If you use QEMU as hypervisor, you should find the  list
+#   of supported keyboard layouts at ``/usr/share/qemu/keymaps``.
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Related options:
+#
+# * None
+#  (string value)
+# Deprecated group/name - [DEFAULT]/vnc_keymap
+#keymap = en-us
+
+#
+# The IP address on which an instance should listen to for incoming VNC
+# connection requests on this node.
+#
+# Possible values:
+#
+# * An IP address
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Related options:
+#
+# * None
+#  (string value)
+# Deprecated group/name - [DEFAULT]/vncserver_listen
+#vncserver_listen = 127.0.0.1
+
+#
+# Private, internal address of VNC console proxy.
+#
+# The VNC proxy is an OpenStack component that enables compute service
+# users to access their instances through VNC clients.
+#
+# This option sets the private address to which proxy clients, such as
+# ``nova-xvpvncproxy``, should connect to.
+#
+# Possible values:
+#
+# * An IP address
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Related options:
+#
+# * None
+#  (string value)
+# Deprecated group/name - [DEFAULT]/vncserver_proxyclient_address
+#vncserver_proxyclient_address = 127.0.0.1
+
+#
+# IP address that the noVNC console proxy should bind to.
+#
+# The VNC proxy is an OpenStack component that enables compute service
+# users to access their instances through VNC clients. noVNC provides
+# VNC support through a websocket-based client.
+#
+# This option sets the private address to which the noVNC console proxy
+# service should bind to.
+#
+# Possible values:
+#
+# * An IP address
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Related options:
+#
+# * novncproxy_port
+# * novncproxy_base_url
+#  (string value)
+# Deprecated group/name - [DEFAULT]/novncproxy_host
+#novncproxy_host = 0.0.0.0
+
+#
+# Port that the noVNC console proxy should bind to.
+#
+# The VNC proxy is an OpenStack component that enables compute service
+# users to access their instances through VNC clients. noVNC provides
+# VNC support through a websocket-based client.
+#
+# This option sets the private port to which the noVNC console proxy
+# service should bind to.
+#
+# Possible values:
+#
+# * A port number
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Related options:
+#
+# * novncproxy_host
+# * novncproxy_base_url
+#  (integer value)
+# Minimum value: 1
+# Maximum value: 65535
+# Deprecated group/name - [DEFAULT]/novncproxy_port
+#novncproxy_port = 6080
+
+#
+# Public address of noVNC VNC console proxy.
+#
+# The VNC proxy is an OpenStack component that enables compute service
+# users to access their instances through VNC clients. noVNC provides
+# VNC support through a websocket-based client.
+#
+# This option sets the public base URL to which client systems will
+# connect. noVNC clients can use this address to connect to the noVNC
+# instance and, by extension, the VNC sessions.
+#
+# Possible values:
+#
+# * A URL
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Related options:
+#
+# * novncproxy_host
+# * novncproxy_port
+#  (string value)
+# Deprecated group/name - [DEFAULT]/novncproxy_base_url
+novncproxy_base_url = http://$my_ip:6080/vnc_auto.html
+
+#
+# IP address that the XVP VNC console proxy should bind to.
+#
+# The VNC proxy is an OpenStack component that enables compute service
+# users to access their instances through VNC clients. Xen provides
+# the Xenserver VNC Proxy, or XVP, as an alternative to the
+# websocket-based noVNC proxy used by Libvirt. In contrast to noVNC,
+# XVP clients are Java-based.
+#
+# This option sets the private address to which the XVP VNC console proxy
+# service should bind to.
+#
+# Possible values:
+#
+# * An IP address
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Related options:
+#
+# * xvpvncproxy_port
+# * xvpvncproxy_base_url
+#  (string value)
+# Deprecated group/name - [DEFAULT]/xvpvncproxy_host
+#xvpvncproxy_host = 0.0.0.0
+
+#
+# Port that the XVP VNC console proxy should bind to.
+#
+# The VNC proxy is an OpenStack component that enables compute service
+# users to access their instances through VNC clients. Xen provides
+# the Xenserver VNC Proxy, or XVP, as an alternative to the
+# websocket-based noVNC proxy used by Libvirt. In contrast to noVNC,
+# XVP clients are Java-based.
+#
+# This option sets the private port to which the XVP VNC console proxy
+# service should bind to.
+#
+# Possible values:
+#
+# * A port number
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Related options:
+#
+# * xvpvncproxy_host
+# * xvpvncproxy_base_url
+#  (integer value)
+# Minimum value: 1
+# Maximum value: 65535
+# Deprecated group/name - [DEFAULT]/xvpvncproxy_port
+#xvpvncproxy_port = 6081
+
+#
+# Public address of XVP VNC console proxy.
+#
+# The VNC proxy is an OpenStack component that enables compute service
+# users to access their instances through VNC clients. Xen provides
+# the Xenserver VNC Proxy, or XVP, as an alternative to the
+# websocket-based noVNC proxy used by Libvirt. In contrast to noVNC,
+# XVP clients are Java-based.
+#
+# This option sets the public base URL to which client systems will
+# connect. XVP clients can use this address to connect to the XVP
+# instance and, by extension, the VNC sessions.
+#
+# Possible values:
+#
+# * A URL
+#
+# Services which consume this:
+#
+# * ``nova-compute``
+#
+# Related options:
+#
+# * xvpvncproxy_host
+# * xvpvncproxy_port
+#  (string value)
+# Deprecated group/name - [DEFAULT]/xvpvncproxy_base_url
+#xvpvncproxy_base_url = http://127.0.0.1:6081/console
 
 
 [workarounds]
 
 #
-# Options defined in nova.utils
-#
-
-# This option allows a fallback to sudo for performance
-# reasons. For example see
-# https://bugs.launchpad.net/nova/+bug/1415106 (boolean value)
-#disable_rootwrap=false
-
-# When using libvirt 1.2.2 fails live snapshots intermittently
-# under load.  This config option provides mechanism to
-# disable livesnapshot while this is resolved.  See
-# https://bugs.launchpad.net/nova/+bug/1334398 (boolean value)
-#disable_libvirt_livesnapshot=true
-
-# Whether to destroy instances on startup when we suspect they
-# have previously been evacuated. This can result in data loss
-# if undesired. See https://launchpad.net/bugs/1419785
-# (boolean value)
-#destroy_after_evacuate=true
+# From nova
+#
+
+# This option allows a fallback to sudo for performance reasons. For example
+# see https://bugs.launchpad.net/nova/+bug/1415106 (boolean value)
+#disable_rootwrap = false
+
+# When using libvirt 1.2.2 live snapshots fail intermittently under load.  This
+# config option provides a mechanism to enable live snapshot while this is
+# resolved.  See https://bugs.launchpad.net/nova/+bug/1334398 (boolean value)
+#disable_libvirt_livesnapshot = true
+
+# DEPRECATED: Whether to destroy instances on startup when we suspect they have
+# previously been evacuated. This can result in data loss if undesired. See
+# https://launchpad.net/bugs/1419785 (boolean value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#destroy_after_evacuate = true
+
+# Whether or not to handle events raised from the compute driver's 'emit_event'
+# method. These are lifecycle events raised from compute drivers that implement
+# the method. An example of a lifecycle event is an instance starting or
+# stopping. If the instance is going through task state changes due to an API
+# operation, like resize, the events are ignored. However, this is an advanced
+# feature which allows the hypervisor to signal to the compute service that an
+# unexpected state change has occurred in an instance and the instance can be
+# shutdown automatically - which can inherently race in reboot operations or
+# when the compute service or host is rebooted, either planned or due to an
+# unexpected outage. Care should be taken when using this and
+# sync_power_state_interval is negative since then if any instances are out of
+# sync between the hypervisor and the Nova database they will have to be
+# synchronized manually. See https://bugs.launchpad.net/bugs/1444630 (boolean
+# value)
+#handle_virt_lifecycle_events = true
 
 
 [xenserver]
 
 #
-# Options defined in nova.virt.xenapi.agent
-#
+# From nova.virt
+#
+
+# Name of Integration Bridge used by Open vSwitch (string value)
+#ovs_integration_bridge = xapi1
 
 # Number of seconds to wait for agent reply (integer value)
-#agent_timeout=30
-
-# Number of seconds to wait for agent to be fully operational
-# (integer value)
-#agent_version_timeout=300
-
-# Number of seconds to wait for agent reply to resetnetwork
-# request (integer value)
-#agent_resetnetwork_timeout=60
-
-# Specifies the path in which the XenAPI guest agent should be
-# located. If the agent is present, network configuration is
-# not injected into the image. Used if
-# compute_driver=xenapi.XenAPIDriver and flat_injected=True
-# (string value)
-#agent_path=usr/sbin/xe-update-networking
-
-# Disables the use of the XenAPI agent in any image regardless
-# of what image properties are present. (boolean value)
-#disable_agent=false
-
-# Determines if the XenAPI agent should be used when the image
-# used does not contain a hint to declare if the agent is
-# present or not. The hint is a glance property
-# "xenapi_use_agent" that has the value "True" or "False".
-# Note that waiting for the agent when it is not present will
-# significantly increase server boot times. (boolean value)
-#use_agent_default=false
-
-
-#
-# Options defined in nova.virt.xenapi.client.session
-#
+#agent_timeout = 30
+
+# Number of seconds to wait for agent to be fully operational (integer value)
+#agent_version_timeout = 300
+
+# Number of seconds to wait for agent reply to resetnetwork request (integer
+# value)
+#agent_resetnetwork_timeout = 60
+
+# Specifies the path in which the XenAPI guest agent should be located. If the
+# agent is present, network configuration is not injected into the image. Used
+# if compute_driver=xenapi.XenAPIDriver and flat_injected=True (string value)
+#agent_path = usr/sbin/xe-update-networking
+
+# Disables the use of the XenAPI agent in any image regardless of what image
+# properties are present. (boolean value)
+#disable_agent = false
+
+# Determines if the XenAPI agent should be used when the image used does not
+# contain a hint to declare if the agent is present or not. The hint is a
+# glance property "xenapi_use_agent" that has the value "True" or "False". Note
+# that waiting for the agent when it is not present will significantly increase
+# server boot times. (boolean value)
+#use_agent_default = false
 
 # Timeout in seconds for XenAPI login. (integer value)
-#login_timeout=10
-
-# Maximum number of concurrent XenAPI connections. Used only
-# if compute_driver=xenapi.XenAPIDriver (integer value)
-#connection_c