diff options
-rw-r--r-- | etc/nova/nova.conf.sample | 1144 | ||||
-rw-r--r-- | tools/conf/extract_opts.py | 111 |
2 files changed, 815 insertions, 440 deletions
diff --git a/etc/nova/nova.conf.sample b/etc/nova/nova.conf.sample index bee408412..923c93d71 100644 --- a/etc/nova/nova.conf.sample +++ b/etc/nova/nova.conf.sample @@ -21,11 +21,11 @@ # log_format=%(asctime)s %(levelname)8s [%(name)s] %(message)s #### (StrOpt) A logging.Formatter log message format string which may use #### any of the available logging.LogRecord attributes. Default: -#### %default +#### %(default)s # log_date_format=%Y-%m-%d %H:%M:%S -#### (StrOpt) Format string for %(asctime)s in log records. Default: -#### %default +#### (StrOpt) Format string for %%(asctime)s in log records. Default: +#### %(default)s # log_file=<None> #### (StrOpt) (Optional) Name of log file to output to. If not set, @@ -33,7 +33,7 @@ # log_dir=<None> #### (StrOpt) (Optional) The directory to keep log files in (will be -#### prepended to --logfile) +#### prepended to --log-file) # use_syslog=false #### (BoolOpt) Use syslog for logging. @@ -42,6 +42,15 @@ #### (StrOpt) syslog facility to receive log lines +######## defined in nova.availability_zones ######## + +# internal_service_availability_zone=internal +#### (StrOpt) availability_zone to show internal services under + +# default_availability_zone=nova +#### (StrOpt) default compute node availability_zone + + ######## defined in nova.crypto ######## # ca_file=cacert.pem @@ -71,303 +80,33 @@ #### timestamp -######## defined in nova.flags ######## +######## defined in nova.exception ######## -# sql_connection=sqlite:///$state_path/$sqlite_db -#### (StrOpt) The SQLAlchemy connection string used to connect to the -#### database - -# api_paste_config=api-paste.ini -#### (StrOpt) File name for the paste.deploy config for nova-api - -# pybasedir=/usr/lib/python/site-packages -#### (StrOpt) Directory where the nova python module is installed +# fatal_exception_format_errors=false +#### (BoolOpt) make exception message format errors fatal -# bindir=$pybasedir/bin -#### (StrOpt) Directory where nova binaries are installed -# state_path=$pybasedir -#### (StrOpt) Top-level directory for maintaining nova's state +######## defined in nova.manager ######## -# fake_network=false -#### (BoolOpt) If passed, use fake network devices and addresses +# run_external_periodic_tasks=true +#### (BoolOpt) Some periodic tasks can be run in a separate process. Should +#### we run them here? -# sql_connection_debug=0 -#### (IntOpt) Verbosity of SQL debugging information. 0=None, -#### 100=Everything -# sql_connection_trace=false -#### (BoolOpt) Add python stack traces to SQL as comment strings +######## defined in nova.netconf ######## # my_ip=10.0.0.1 #### (StrOpt) ip address of this host -# region_list= -#### (ListOpt) list of region=fqdn pairs separated by commas - -# aws_access_key_id=admin -#### (StrOpt) AWS Access ID - -# aws_secret_access_key=admin -#### (StrOpt) AWS Access Key - -# glance_host=$my_ip -#### (StrOpt) default glance hostname or ip - -# glance_port=9292 -#### (IntOpt) default glance port - -# glance_api_servers=$glance_host:$glance_port -#### (ListOpt) A list of the glance api servers available to nova. Prefix -#### with https:// for ssl-based glance api servers. -#### ([hostname|ip]:port) - -# glance_api_insecure=false -#### (BoolOpt) Allow to perform insecure SSL (https) requests to glance - -# glance_num_retries=0 -#### (IntOpt) Number retries when downloading an image from glance - -# s3_port=3333 -#### (IntOpt) port used when accessing the s3 api - -# s3_host=$my_ip -#### (StrOpt) hostname or ip for openstack to use when accessing the s3 -#### api - -# cert_topic=cert -#### (StrOpt) the topic cert nodes listen on - -# compute_topic=compute -#### (StrOpt) the topic compute nodes listen on - -# console_topic=console -#### (StrOpt) the topic console proxy nodes listen on - -# scheduler_topic=scheduler -#### (StrOpt) the topic scheduler nodes listen on - -# network_topic=network -#### (StrOpt) the topic network nodes listen on - -# api_rate_limit=true -#### (BoolOpt) whether to rate limit the api - -# enabled_apis=ec2,osapi_compute,metadata -#### (ListOpt) a list of APIs to enable by default - -# ec2_host=$my_ip -#### (StrOpt) the ip of the ec2 api server - -# ec2_dmz_host=$my_ip -#### (StrOpt) the internal ip of the ec2 api server - -# ec2_port=8773 -#### (IntOpt) the port of the ec2 api server - -# ec2_scheme=http -#### (StrOpt) the protocol to use when connecting to the ec2 api server -#### (http, https) - -# ec2_path=/services/Cloud -#### (StrOpt) the path prefix used to call the ec2 api server - -# osapi_compute_ext_list= -#### (ListOpt) Specify list of extensions to load when using -#### osapi_compute_extension option with -#### nova.api.openstack.compute.contrib.select_extensions - -# osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions -#### (MultiStrOpt) osapi compute extension to load - -# osapi_path=/v1.1/ -#### (StrOpt) the path prefix used to call the openstack api server - -# osapi_compute_link_prefix=<None> -#### (StrOpt) Base URL that will be presented to users in links to the -#### OpenStack Compute API - -# osapi_glance_link_prefix=<None> -#### (StrOpt) Base URL that will be presented to users in links to glance -#### resources - -# osapi_max_limit=1000 -#### (IntOpt) the maximum number of items returned in a single response -#### from a collection resource - -# metadata_host=$my_ip -#### (StrOpt) the ip for the metadata api server - -# metadata_port=8775 -#### (IntOpt) the port for the metadata api port - -# default_image=ami-11111 -#### (StrOpt) default image to use, testing only - -# default_instance_type=m1.small -#### (StrOpt) default instance type to use, testing only - -# null_kernel=nokernel -#### (StrOpt) kernel image that indicates not to use a kernel, but to use -#### a raw disk image instead - -# vpn_image_id=0 -#### (StrOpt) image id used when starting up a cloudpipe vpn server - -# vpn_key_suffix=-vpn -#### (StrOpt) Suffix to add to project name for vpn key and secgroups - -# sqlite_db=nova.sqlite -#### (StrOpt) the filename to use with sqlite - -# sqlite_synchronous=true -#### (BoolOpt) If passed, use synchronous mode for sqlite - -# sql_idle_timeout=3600 -#### (IntOpt) timeout before idle sql connections are reaped - -# sql_max_retries=10 -#### (IntOpt) maximum db connection retries during startup. (setting -1 -#### implies an infinite retry count) - -# sql_retry_interval=10 -#### (IntOpt) interval between retries of opening a sql connection - -# compute_manager=nova.compute.manager.ComputeManager -#### (StrOpt) full class name for the Manager for compute - -# console_manager=nova.console.manager.ConsoleProxyManager -#### (StrOpt) full class name for the Manager for console proxy - -# cert_manager=nova.cert.manager.CertManager -#### (StrOpt) full class name for the Manager for cert - -# instance_dns_manager=nova.network.dns_driver.DNSDriver -#### (StrOpt) full class name for the DNS Manager for instance IPs - -# instance_dns_domain= -#### (StrOpt) full class name for the DNS Zone for instance IPs - -# floating_ip_dns_manager=nova.network.dns_driver.DNSDriver -#### (StrOpt) full class name for the DNS Manager for floating IPs - -# network_manager=nova.network.manager.VlanManager -#### (StrOpt) full class name for the Manager for network - -# scheduler_manager=nova.scheduler.manager.SchedulerManager -#### (StrOpt) full class name for the Manager for scheduler - # host=nova #### (StrOpt) 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 -# node_availability_zone=nova -#### (StrOpt) availability zone of this node - -# memcached_servers=<None> -#### (ListOpt) Memcached servers or None for in process cache. - -# instance_usage_audit_period=month -#### (StrOpt) time period to generate instance usages for. Time period -#### must be hour, day, month or year - -# bandwidth_poll_interval=600 -#### (IntOpt) interval to pull bandwidth usage info - -# resume_guests_state_on_host_boot=false -#### (BoolOpt) Whether to start guests that were running before the host -#### rebooted - -# default_ephemeral_format=<None> -#### (StrOpt) The default format an ephemeral_volume will be formatted -#### with on creation. - -# rootwrap_config=/etc/nova/rootwrap.conf -#### (StrOpt) Path to the rootwrap configuration file to use for running -#### commands as root - -# network_driver=nova.network.linux_net -#### (StrOpt) Driver to use for network creation - # use_ipv6=false #### (BoolOpt) use ipv6 -# enable_instance_password=true -#### (BoolOpt) Allows use of instance password during server creation - -# password_length=12 -#### (IntOpt) Length of generated instance admin passwords - -# monkey_patch=false -#### (BoolOpt) Whether to log monkey patching - -# monkey_patch_modules=nova.api.ec2.cloud:nova.notifier.api.notify_decorator,nova.compute.api:nova.notifier.api.notify_decorator -#### (ListOpt) List of modules/decorators to monkey patch - -# allow_resize_to_same_host=false -#### (BoolOpt) Allow destination machine to match source for resize. Useful -#### when testing in single-host environments. - -# reclaim_instance_interval=0 -#### (IntOpt) Interval in seconds for reclaiming deleted instances - -# zombie_instance_updated_at_window=172800 -#### (IntOpt) Number of seconds zombie instances are cleaned up. - -# service_down_time=60 -#### (IntOpt) maximum time since last check-in for up service - -# default_schedule_zone=<None> -#### (StrOpt) availability zone to use when user doesn't specify one - -# isolated_images= -#### (ListOpt) Images to run on isolated host - -# isolated_hosts= -#### (ListOpt) Host reserved for specific images - -# cache_images=all -#### (StrOpt) Cache glance images locally. `all` will cache all images, -#### `some` will only cache images that have the image_property -#### `cache_in_nova=True`, and `none` turns off caching entirely - -# use_cow_images=true -#### (BoolOpt) Whether to use cow images - -# compute_api_class=nova.compute.api.API -#### (StrOpt) The full class name of the compute API class to use - -# network_api_class=nova.network.api.API -#### (StrOpt) The full class name of the network API class to use - -# volume_api_class=nova.volume.cinder.API -#### (StrOpt) The full class name of the volume API class to use - -# security_group_handler=nova.network.sg.NullSecurityGroupHandler -#### (StrOpt) The full class name of the security group handler class - -# default_access_ip_network_name=<None> -#### (StrOpt) Name of network to use to set access ips for instances - -# auth_strategy=noauth -#### (StrOpt) The strategy to use for auth: noauth or keystone. - -# non_inheritable_image_properties=cache_in_nova,bittorrent -#### (ListOpt) These are image properties which a snapshot should not -#### inherit from an instance - -# defer_iptables_apply=false -#### (BoolOpt) Whether to batch up the application of IPTables rules during -#### a host restart and apply all at the end of the init phase - -# compute_driver=<None> -#### (StrOpt) Driver to use for controlling virtualization. Options -#### include: libvirt.LibvirtDriver, xenapi.XenAPIDriver, -#### fake.FakeDriver, baremetal.BareMetalDriver, -#### vmwareapi.VMWareESXDriver - ######## defined in nova.notifications ######## @@ -389,6 +128,18 @@ #### task state changes. +######## defined in nova.paths ######## + +# pybasedir=/usr/lib/python/site-packages +#### (StrOpt) Directory where the nova python module is installed + +# bindir=$pybasedir/bin +#### (StrOpt) Directory where nova binaries are installed + +# state_path=$pybasedir +#### (StrOpt) Top-level directory for maintaining nova's state + + ######## defined in nova.policy ######## # policy_file=policy.json @@ -451,14 +202,17 @@ # report_interval=10 #### (IntOpt) seconds between nodes reporting state to datastore -# periodic_interval=60 -#### (IntOpt) seconds between running periodic tasks +# periodic_enable=true +#### (BoolOpt) enable periodic tasks # periodic_fuzzy_delay=60 #### (IntOpt) range of seconds to randomly delay when starting the #### periodic task scheduler to reduce stampeding. (Disable by #### setting to 0) +# enabled_apis=ec2,osapi_compute,metadata +#### (ListOpt) a list of APIs to enable by default + # ec2_listen=0.0.0.0 #### (StrOpt) IP address for EC2 API to listen @@ -489,18 +243,59 @@ # metadata_workers=<None> #### (IntOpt) Number of workers for metadata service +# compute_manager=nova.compute.manager.ComputeManager +#### (StrOpt) full class name for the Manager for compute + +# console_manager=nova.console.manager.ConsoleProxyManager +#### (StrOpt) full class name for the Manager for console proxy + +# cert_manager=nova.cert.manager.CertManager +#### (StrOpt) full class name for the Manager for cert + +# network_manager=nova.network.manager.VlanManager +#### (StrOpt) full class name for the Manager for network + +# scheduler_manager=nova.scheduler.manager.SchedulerManager +#### (StrOpt) full class name for the Manager for scheduler + +# service_down_time=60 +#### (IntOpt) maximum time since last check-in for up service + ######## defined in nova.test ######## # sqlite_clean_db=clean.sqlite #### (StrOpt) File name of clean sqlite db -# fake_tests=true -#### (BoolOpt) should we use everything for testing + +######## defined in nova.utils ######## + +# monkey_patch=false +#### (BoolOpt) Whether to log monkey patching + +# monkey_patch_modules=nova.api.ec2.cloud:nova.notifier.api.notify_decorator,nova.compute.api:nova.notifier.api.notify_decorator +#### (ListOpt) List of modules/decorators to monkey patch + +# password_length=12 +#### (IntOpt) Length of generated instance admin passwords + +# disable_process_locking=false +#### (BoolOpt) Whether to disable inter-process locks + +# instance_usage_audit_period=month +#### (StrOpt) time period to generate instance usages for. Time period +#### must be hour, day, month or year + +# rootwrap_config=/etc/nova/rootwrap.conf +#### (StrOpt) Path to the rootwrap configuration file to use for running +#### commands as root ######## defined in nova.wsgi ######## +# api_paste_config=api-paste.ini +#### (StrOpt) File name for the paste.deploy config for nova-api + # wsgi_log_format=%(client_ip)s "%(request_line)s" status: %(status_code)s len: %(body_length)s time: %(wall_seconds).7f #### (StrOpt) A python format string that is used as the template to #### generate log lines. The following values can be formatted @@ -510,6 +305,12 @@ ######## defined in nova.api.auth ######## +# api_rate_limit=true +#### (BoolOpt) whether to rate limit the api + +# auth_strategy=noauth +#### (StrOpt) The strategy to use for auth: noauth or keystone. + # use_forwarded_for=false #### (BoolOpt) Treat X-Forwarded-For as the canonical remote address. Only #### enable this if you have a sanitizing proxy. @@ -540,6 +341,28 @@ #### (IntOpt) Time in seconds before ec2 timestamp expires +######## defined in nova.api.ec2.cloud ######## + +# ec2_host=$my_ip +#### (StrOpt) the ip of the ec2 api server + +# ec2_dmz_host=$my_ip +#### (StrOpt) the internal ip of the ec2 api server + +# ec2_port=8773 +#### (IntOpt) the port of the ec2 api server + +# ec2_scheme=http +#### (StrOpt) the protocol to use when connecting to the ec2 api server +#### (http, https) + +# ec2_path=/services/Cloud +#### (StrOpt) the path prefix used to call the ec2 api server + +# region_list= +#### (ListOpt) list of region=fqdn pairs separated by commas + + ######## defined in nova.api.metadata.base ######## # 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 @@ -547,20 +370,86 @@ #### drive +######## defined in nova.api.metadata.handler ######## + +# service_quantum_metadata_proxy=false +#### (BoolOpt) Set flag to indicate Quantum will proxy metadata requests +#### and resolve instance ids. + +# quantum_metadata_proxy_shared_secret= +#### (StrOpt) Shared secret to validate proxies Quantum metadata requests + + +######## defined in nova.api.openstack.common ######## + +# osapi_max_limit=1000 +#### (IntOpt) the maximum number of items returned in a single response +#### from a collection resource + +# osapi_compute_link_prefix=<None> +#### (StrOpt) Base URL that will be presented to users in links to the +#### OpenStack Compute API + +# osapi_glance_link_prefix=<None> +#### (StrOpt) Base URL that will be presented to users in links to glance +#### resources + + ######## defined in nova.api.openstack.compute ######## # allow_instance_snapshots=true #### (BoolOpt) Permit instance snapshot operations. +######## defined in nova.api.openstack.compute.contrib ######## + +# osapi_compute_ext_list= +#### (ListOpt) Specify list of extensions to load when using +#### osapi_compute_extension option with +#### nova.api.openstack.compute.contrib.select_extensions + + +######## defined in nova.api.openstack.compute.contrib.fping ######## + +# fping_path=/usr/sbin/fping +#### (StrOpt) Full path to fping. + + +######## defined in nova.api.openstack.compute.contrib.hide_server_addresses ######## + +# osapi_hide_server_address_states=building +#### (ListOpt) List of instance states that should hide network info + + +######## defined in nova.api.openstack.compute.extensions ######## + +# osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions +#### (MultiStrOpt) osapi compute extension to load + + +######## defined in nova.api.openstack.compute.servers ######## + +# enable_instance_password=true +#### (BoolOpt) Allows use of instance password during server creation + + ######## defined in nova.api.sizelimit ######## # osapi_max_request_body_size=114688 #### (IntOpt) the maximum body size per each osapi request(bytes) +######## defined in nova.cert.rpcapi ######## + +# cert_topic=cert +#### (StrOpt) the topic cert nodes listen on + + ######## defined in nova.cloudpipe.pipelib ######## +# vpn_image_id=0 +#### (StrOpt) image id used when starting up a cloudpipe vpn server + # vpn_instance_type=m1.tiny #### (StrOpt) Instance type for vpn instances @@ -573,30 +462,110 @@ # dmz_mask=255.255.255.0 #### (StrOpt) Netmask to push into openvpn config +# vpn_key_suffix=-vpn +#### (StrOpt) Suffix to add to project name for vpn key and secgroups -######## defined in nova.common.eventlet_backdoor ######## -# backdoor_port=<None> -#### (IntOpt) port for eventlet backdoor to listen +######## defined in nova.common.memorycache ######## +# memcached_servers=<None> +#### (ListOpt) Memcached servers or None for in process cache. -######## defined in nova.compute.manager ######## -# instances_path=$state_path/instances -#### (StrOpt) where instances are stored on disk +######## defined in nova.compute ######## -# base_dir_name=_base -#### (StrOpt) 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 +# compute_api_class=nova.compute.api.API +#### (StrOpt) The full class name of the compute API class to use + + +######## defined in nova.compute.api ######## + +# allow_resize_to_same_host=false +#### (BoolOpt) Allow destination machine to match source for resize. Useful +#### when testing in single-host environments. + +# default_schedule_zone=<None> +#### (StrOpt) availability zone to use when user doesn't specify one + +# non_inheritable_image_properties=cache_in_nova,bittorrent +#### (ListOpt) These are image properties which a snapshot should not +#### inherit from an instance + +# null_kernel=nokernel +#### (StrOpt) kernel image that indicates not to use a kernel, but to use +#### a raw disk image instead + +# security_group_handler=nova.network.sg.NullSecurityGroupHandler +#### (StrOpt) The full class name of the security group handler class + +# security_group_api=nova.compute.api.SecurityGroupAPI +#### (StrOpt) The full class name of the security API class + + +######## defined in nova.compute.instance_types ######## + +# default_instance_type=m1.small +#### (StrOpt) default instance type to use, testing only + + +######## defined in nova.compute.manager ######## # console_host=nova #### (StrOpt) Console proxy host to use to connect to instances on this #### host. +# default_access_ip_network_name=<None> +#### (StrOpt) Name of network to use to set access ips for instances + +# defer_iptables_apply=false +#### (BoolOpt) Whether to batch up the application of IPTables rules during +#### a host restart and apply all at the end of the init phase + +# instances_path=$state_path/instances +#### (StrOpt) where instances are stored on disk + +# instance_usage_audit=false +#### (BoolOpt) Generate periodic compute.instance.exists notifications + # live_migration_retry_count=30 #### (IntOpt) Number of 1 second retries needed in live_migration +# resume_guests_state_on_host_boot=false +#### (BoolOpt) Whether to start guests that were running before the host +#### rebooted + +# bandwidth_poll_interval=600 +#### (IntOpt) interval to pull bandwidth usage info + +# heal_instance_info_cache_interval=60 +#### (IntOpt) Number of seconds between instance info_cache self healing +#### updates + +# host_state_interval=120 +#### (IntOpt) Interval in seconds for querying the host status + +# image_cache_manager_interval=2400 +#### (IntOpt) Number of seconds to wait between runs of the image cache +#### manager + +# reclaim_instance_interval=0 +#### (IntOpt) Interval in seconds for reclaiming deleted instances + +# volume_usage_poll_interval=0 +#### (IntOpt) Interval in seconds for gathering volume usages + +# running_deleted_instance_action=log +#### (StrOpt) Action to take if a running deleted instance is +#### detected.Valid options are 'noop', 'log' and 'reap'. Set to +#### 'noop' to disable. + +# running_deleted_instance_poll_interval=1800 +#### (IntOpt) Number of seconds to wait between runs of the cleanup task. + +# running_deleted_instance_timeout=0 +#### (IntOpt) Number of seconds after being deleted when a running +#### instance should be considered eligible for cleanup. + # reboot_timeout=0 #### (IntOpt) Automatically hard reboot an instance if it has been stuck #### in a rebooting state longer than N seconds. Set to 0 to @@ -614,33 +583,6 @@ #### (IntOpt) Automatically confirm resizes after N seconds. Set to 0 to #### disable. -# host_state_interval=120 -#### (IntOpt) Interval in seconds for querying the host status - -# running_deleted_instance_timeout=0 -#### (IntOpt) Number of seconds after being deleted when a running -#### instance should be considered eligible for cleanup. - -# running_deleted_instance_poll_interval=30 -#### (IntOpt) Number of periodic scheduler ticks to wait between runs of -#### the cleanup task. - -# running_deleted_instance_action=log -#### (StrOpt) Action to take if a running deleted instance is -#### detected.Valid options are 'noop', 'log' and 'reap'. Set to -#### 'noop' to disable. - -# image_cache_manager_interval=40 -#### (IntOpt) Number of periodic scheduler ticks to wait between runs of -#### the image cache manager. - -# heal_instance_info_cache_interval=60 -#### (IntOpt) Number of seconds between instance info_cache self healing -#### updates - -# instance_usage_audit=false -#### (BoolOpt) Generate periodic compute.instance.exists notifications - ######## defined in nova.compute.resource_tracker ######## @@ -654,6 +596,12 @@ #### (StrOpt) Class that will manage stats for the local compute host +######## defined in nova.compute.rpcapi ######## + +# compute_topic=compute +#### (StrOpt) the topic compute nodes listen on + + ######## defined in nova.console.manager ######## # console_driver=nova.console.xvp.XVPConsoleProxy @@ -666,6 +614,12 @@ #### (StrOpt) Publicly visible name for this console host +######## defined in nova.console.rpcapi ######## + +# console_topic=console +#### (StrOpt) the topic console proxy nodes listen on + + ######## defined in nova.console.vmrc ######## # console_vmrc_port=443 @@ -729,11 +683,92 @@ #### (StrOpt) driver to use for database access +######## defined in nova.db.sqlalchemy.api ######## + +# osapi_compute_unique_server_name_scope= +#### (StrOpt) When set, compute API will consider duplicate hostnames +#### invalid within the specified scope, regardless of case. +#### Should be empty, "project" or "global". + + +######## defined in nova.db.sqlalchemy.session ######## + +# sql_connection=sqlite:///$state_path/$sqlite_db +#### (StrOpt) The SQLAlchemy connection string used to connect to the +#### database + +# sqlite_db=nova.sqlite +#### (StrOpt) the filename to use with sqlite + +# sql_idle_timeout=3600 +#### (IntOpt) timeout before idle sql connections are reaped + +# sqlite_synchronous=true +#### (BoolOpt) If passed, use synchronous mode for sqlite + +# sql_min_pool_size=1 +#### (IntOpt) Minimum number of SQL connections to keep open in a pool + +# sql_max_pool_size=5 +#### (IntOpt) Maximum number of SQL connections to keep open in a pool + +# sql_max_retries=10 +#### (IntOpt) maximum db connection retries during startup. (setting -1 +#### implies an infinite retry count) + +# sql_retry_interval=10 +#### (IntOpt) interval between retries of opening a sql connection + +# sql_max_overflow=<None> +#### (IntOpt) If set, use this value for max_overflow with sqlalchemy + +# sql_connection_debug=0 +#### (IntOpt) Verbosity of SQL debugging information. 0=None, +#### 100=Everything + +# sql_connection_trace=false +#### (BoolOpt) Add python stack traces to SQL as comment strings + +# sql_dbpool_enable=false +#### (BoolOpt) enable the use of eventlet's db_pool for MySQL + + +######## defined in nova.image.glance ######## + +# glance_host=$my_ip +#### (StrOpt) default glance hostname or ip + +# glance_port=9292 +#### (IntOpt) default glance port + +# glance_protocol=http +#### (StrOpt) Default protocol to use when connecting to glance. Set to +#### https for SSL. + +# glance_api_servers=$glance_host:$glance_port +#### (ListOpt) A list of the glance api servers available to nova. Prefix +#### with https:// for ssl-based glance api servers. +#### ([hostname|ip]:port) + +# glance_api_insecure=false +#### (BoolOpt) Allow to perform insecure SSL (https) requests to glance + +# glance_num_retries=0 +#### (IntOpt) Number retries when downloading an image from glance + + ######## defined in nova.image.s3 ######## # image_decryption_dir=/tmp #### (StrOpt) parent dir for tempdir used for image decryption +# s3_host=$my_ip +#### (StrOpt) hostname or ip for openstack to use when accessing the s3 +#### api + +# s3_port=3333 +#### (IntOpt) port used when accessing the s3 api + # s3_access_key=notchecked #### (StrOpt) access key to use for s3 server for images @@ -754,6 +789,18 @@ #### (StrOpt) Backend to use for IPv6 generation +######## defined in nova.network ######## + +# network_api_class=nova.network.api.API +#### (StrOpt) The full class name of the network API class to use + + +######## defined in nova.network.driver ######## + +# network_driver=nova.network.linux_net +#### (StrOpt) Driver to use for network creation + + ######## defined in nova.network.ldapdns ######## # ldap_dns_url=ldap://ldap.example.com:389 @@ -839,6 +886,12 @@ #### (BoolOpt) Use single default gateway. Only first nic of vm will get #### default gateway from dhcp server +# metadata_host=$my_ip +#### (StrOpt) the ip for the metadata api server + +# metadata_port=8775 +#### (IntOpt) the port for the metadata api port + ######## defined in nova.network.manager ######## @@ -908,26 +961,46 @@ # network_host=nova #### (StrOpt) Network host to use for ip allocation in flat modes +# fake_network=false +#### (BoolOpt) If passed, use fake network devices and addresses + # fake_call=false #### (BoolOpt) If True, skip using the queue and make local calls +# teardown_unused_network_gateway=false +#### (BoolOpt) If True, unused gateway devices (VLAN and bridge) are +#### deleted in VLAN network mode with multi hosted networks + # force_dhcp_release=false #### (BoolOpt) If True, send a dhcp release on instance termination +# share_dhcp_address=false +#### (BoolOpt) If True in multi_host mode, all compute hosts share the same +#### dhcp address. + +# update_dns_entries=false +#### (BoolOpt) 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 + +# dns_update_periodic_interval=-1 +#### (IntOpt) Number of seconds to wait between runs of updates to DNS +#### entries. + # dhcp_domain=novalocal #### (StrOpt) domain to use for building the hostnames # l3_lib=nova.network.l3.LinuxNetL3 #### (StrOpt) Indicates underlying L3 management library -# update_dns_entries=false -#### (BoolOpt) 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 +# instance_dns_manager=nova.network.noop_dns_driver.NoopDNSDriver +#### (StrOpt) full class name for the DNS Manager for instance IPs -# dns_update_periodic_interval=-1 -#### (IntOpt) Number of periodic scheduler ticks to wait between runs of -#### updates to DNS entries +# instance_dns_domain= +#### (StrOpt) full class name for the DNS Zone for instance IPs + +# floating_ip_dns_manager=nova.network.noop_dns_driver.NoopDNSDriver +#### (StrOpt) full class name for the DNS Manager for floating IPs ######## defined in nova.network.quantumv2.api ######## @@ -954,6 +1027,12 @@ #### (StrOpt) auth strategy for connecting to quantum in admin context +######## defined in nova.network.rpcapi ######## + +# network_topic=network +#### (StrOpt) the topic network nodes listen on + + ######## defined in nova.objectstore.s3server ######## # buckets_path=$state_path/buckets @@ -966,6 +1045,12 @@ #### (IntOpt) port for s3 api to listen +######## defined in nova.openstack.common.eventlet_backdoor ######## + +# backdoor_port=<None> +#### (IntOpt) port for eventlet backdoor to listen + + ######## defined in nova.openstack.common.lockutils ######## # disable_process_locking=false @@ -977,12 +1062,6 @@ ######## defined in nova.openstack.common.log ######## -# logdir=<None> -#### (StrOpt) Log output to a per-service log file in named directory - -# logfile=<None> -#### (StrOpt) Log output to a named file - # use_stderr=true #### (BoolOpt) Log output to standard error @@ -1030,7 +1109,7 @@ #### (StrOpt) Default publisher_id for outgoing notifications -######## defined in nova.openstack.common.notifier.rabbit_notifier ######## +######## defined in nova.openstack.common.notifier.rpc_notifier ######## # notification_topics=notifications #### (ListOpt) AMQP topic used for openstack notifications @@ -1054,13 +1133,16 @@ #### (IntOpt) Seconds to wait before a cast expires (TTL). Only supported #### by impl_zmq. -# allowed_rpc_exception_modules=nova.openstack.common.exception,nova.exception,cinder.exception +# allowed_rpc_exception_modules=nova.openstack.common.exception,nova.exception,cinder.exception,exceptions #### (ListOpt) Modules of exceptions that are permitted to be recreatedupon #### receiving exception data from an rpc call. # fake_rabbit=false #### (BoolOpt) If passed, use a fake RabbitMQ provider +# control_exchange=openstack +#### (StrOpt) AMQP exchange to connect to if using RabbitMQ or Qpid + ######## defined in nova.openstack.common.rpc.impl_kombu ######## @@ -1124,6 +1206,9 @@ # qpid_port=5672 #### (StrOpt) Qpid broker port +# qpid_hosts=$qpid_hostname:$qpid_port +#### (ListOpt) Qpid HA cluster host:port pairs + # qpid_username= #### (StrOpt) Username for qpid connection @@ -1133,24 +1218,6 @@ # qpid_sasl_mechanisms= #### (StrOpt) Space separated list of SASL mechanisms to use for auth -# qpid_reconnect=true -#### (BoolOpt) Automatically reconnect - -# qpid_reconnect_timeout=0 -#### (IntOpt) Reconnection timeout in seconds - -# qpid_reconnect_limit=0 -#### (IntOpt) Max reconnections before giving up - -# qpid_reconnect_interval_min=0 -#### (IntOpt) Minimum seconds between reconnection attempts - -# qpid_reconnect_interval_max=0 -#### (IntOpt) Maximum seconds between reconnection attempts - -# qpid_reconnect_interval=0 -#### (IntOpt) Equivalent to setting max and min to the same value - # qpid_heartbeat=60 #### (IntOpt) Seconds between connection keepalive heartbeats @@ -1180,7 +1247,7 @@ # rpc_zmq_ipc_dir=/var/run/openstack #### (StrOpt) Directory for holding IPC sockets -# rpc_zmq_host=nova +# rpc_zmq_host=sorcha #### (StrOpt) Name of this node. Must be a valid hostname, FQDN, or IP #### address. Must match "host" option, if running Nova. @@ -1219,6 +1286,15 @@ #### builds/resizes/snaps/migrations +######## defined in nova.scheduler.filters.isolated_hosts_filter ######## + +# isolated_images= +#### (ListOpt) Images to run on isolated host + +# isolated_hosts= +#### (ListOpt) Host reserved for specific images + + ######## defined in nova.scheduler.filters.num_instances_filter ######## # max_instances_per_host=50 @@ -1231,27 +1307,9 @@ #### (FloatOpt) virtual ram to physical ram allocation ratio -######## defined in nova.scheduler.filters.trusted_filter ######## - -# attestation_server=<None> -#### (StrOpt) attestation server http - -# attestation_server_ca_file=<None> -#### (StrOpt) attestation server Cert file for Identity verification - -# attestation_port=8443 -#### (StrOpt) attestation server port - -# attestation_api_url=/OpenAttestationWebServices/V1.0 -#### (StrOpt) attestation web API URL - -# attestation_auth_blob=<None> -#### (StrOpt) attestation authorization blob - must change - - ######## defined in nova.scheduler.host_manager ######## -# scheduler_available_filters=nova.scheduler.filters.standard_filters +# scheduler_available_filters=nova.scheduler.filters.all_filters #### (MultiStrOpt) Filter classes available to the scheduler which may be #### specified more than once. An entry of #### "nova.scheduler.filters.standard_filters" maps to all @@ -1261,18 +1319,8 @@ #### (ListOpt) Which filter class names to use for filtering hosts when not #### specified in the request. - -######## defined in nova.scheduler.least_cost ######## - -# least_cost_functions=nova.scheduler.least_cost.compute_fill_first_cost_fn -#### (ListOpt) Which cost functions the LeastCostScheduler should use - -# noop_cost_fn_weight=1.0 -#### (FloatOpt) How much weight to give the noop cost function - -# compute_fill_first_cost_fn_weight=-1.0 -#### (FloatOpt) How much weight to give the fill-first cost function. A -#### negative value will reverse behavior: e.g. spread-first +# scheduler_weight_classes=nova.scheduler.weights.all_weighers +#### (ListOpt) Which weight class names to use for weighing hosts ######## defined in nova.scheduler.manager ######## @@ -1290,28 +1338,48 @@ #### (StrOpt) Default driver to use for scheduling calls +######## defined in nova.scheduler.rpcapi ######## + +# scheduler_topic=scheduler +#### (StrOpt) the topic scheduler nodes listen on + + ######## defined in nova.scheduler.scheduler_options ######## # scheduler_json_config_location= #### (StrOpt) Absolute path to scheduler configuration JSON file. -######## defined in nova.virt.baremetal.driver ######## +######## defined in nova.scheduler.weights.least_cost ######## -# baremetal_type=baremetal -#### (StrOpt) baremetal domain type +# least_cost_functions=<None> +#### (ListOpt) Which cost functions the LeastCostScheduler should use +# noop_cost_fn_weight=1.0 +#### (FloatOpt) How much weight to give the noop cost function + +# compute_fill_first_cost_fn_weight=<None> +#### (FloatOpt) How much weight to give the fill-first cost function. A +#### negative value will reverse behavior: e.g. spread-first -######## defined in nova.virt.baremetal.nodes ######## -# baremetal_driver=tilera -#### (StrOpt) Bare-metal driver runs on +######## defined in nova.scheduler.weights.ram ######## +# ram_weight_multiplier=1.0 +#### (FloatOpt) Multiplier used for weighing ram. Negative numbers mean to +#### stack vs spread. -######## defined in nova.virt.baremetal.tilera ######## -# tile_monitor=/usr/local/TileraMDE/bin/tile-monitor -#### (StrOpt) Tilera command line program for Bare-metal driver +######## defined in nova.servicegroup.api ######## + +# servicegroup_driver=db +#### (StrOpt) The driver for servicegroup service. + + +######## defined in nova.virt.baremetal.db.api ######## + +# baremetal_db_backend=sqlalchemy +#### (StrOpt) The backend to use for db ######## defined in nova.virt.configdrive ######## @@ -1327,15 +1395,16 @@ #### (StrOpt) Set to force injection to take place on a config drive (if #### set, valid options are: always) +# mkisofs_cmd=genisoimage +#### (StrOpt) Name and optionally path of the tool used for ISO image +#### creation + ######## defined in nova.virt.disk.api ######## # injected_network_template=$pybasedir/nova/virt/interfaces.template #### (StrOpt) Template file for injected network -# img_handlers=loop,nbd,guestfs -#### (ListOpt) Order of methods used to mount disk images - # virt_mkfs=default=mkfs.ext3 -L %(fs_label)s -F %(target)s # virt_mkfs=linux=mkfs.ext3 -L %(fs_label)s -F %(target)s # virt_mkfs=windows=mkfs.ntfs --force --fast --label %(fs_label)s %(target)s @@ -1343,12 +1412,28 @@ #### <os_type>=<mkfs command> -######## defined in nova.virt.disk.nbd ######## +######## defined in nova.virt.disk.mount.nbd ######## # timeout_nbd=10 #### (IntOpt) time to wait for a NBD device coming up +######## defined in nova.virt.driver ######## + +# compute_driver=<None> +#### (StrOpt) Driver to use for controlling virtualization. Options +#### include: libvirt.LibvirtDriver, xenapi.XenAPIDriver, +#### fake.FakeDriver, baremetal.BareMetalDriver, +#### vmwareapi.VMWareESXDriver + +# default_ephemeral_format=<None> +#### (StrOpt) The default format an ephemeral_volume will be formatted +#### with on creation. + +# use_cow_images=true +#### (BoolOpt) Whether to use cow images + + ######## defined in nova.virt.firewall ######## # firewall_driver=<None> @@ -1366,9 +1451,19 @@ #### used # limit_cpu_features=false -#### (BoolOpt) required for live migration among hosts with different CPU +#### (BoolOpt) Required for live migration among hosts with different CPU #### features +# config_drive_inject_password=false +#### (BoolOpt) Sets the admin password in the config drive image + +# qemu_img_cmd=qemu-img.exe +#### (StrOpt) qemu-img is used to convert between different image types + +# config_drive_cdrom=false +#### (BoolOpt) Attaches the Config Drive image as a cdrom drive instead of +#### a disk drive + ######## defined in nova.virt.hyperv.volumeops ######## @@ -1378,6 +1473,9 @@ # hyperv_wait_between_attach_retry=5 #### (IntOpt) The seconds to wait between an volume attachment attempt +# force_volumeutils_v1=false +#### (BoolOpt) Force volumeutils v1 + ######## defined in nova.virt.images ######## @@ -1437,7 +1535,7 @@ # libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtBridgeDriver #### (StrOpt) The libvirt VIF driver to configure the VIFs. -# libvirt_volume_drivers=iscsi=nova.virt.libvirt.volume.LibvirtISCSIVolumeDriver,local=nova.virt.libvirt.volume.LibvirtVolumeDriver,fake=nova.virt.libvirt.volume.LibvirtFakeVolumeDriver,rbd=nova.virt.libvirt.volume.LibvirtNetVolumeDriver,sheepdog=nova.virt.libvirt.volume.LibvirtNetVolumeDriver +# libvirt_volume_drivers=iscsi=nova.virt.libvirt.volume.LibvirtISCSIVolumeDriver,local=nova.virt.libvirt.volume.LibvirtVolumeDriver,fake=nova.virt.libvirt.volume.LibvirtFakeVolumeDriver,rbd=nova.virt.libvirt.volume.LibvirtNetVolumeDriver,sheepdog=nova.virt.libvirt.volume.LibvirtNetVolumeDriver,nfs=nova.virt.libvirt.volume_nfs.NfsVolumeDriver #### (ListOpt) Libvirt handlers for remote volumes. # libvirt_disk_prefix=<None> @@ -1470,6 +1568,9 @@ #### (StrOpt) Location where libvirt driver will store snapshots before #### uploading them to image service +# xen_hvmloader_path=/usr/lib/xen/boot/hvmloader +#### (StrOpt) Location where the Xen hvmloader is kept + ######## defined in nova.virt.libvirt.imagebackend ######## @@ -1489,6 +1590,15 @@ ######## defined in nova.virt.libvirt.imagecache ######## +# base_dir_name=_base +#### (StrOpt) 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 + +# image_info_filename_pattern=$instances_path/$base_dir_name/%(image)s.info +#### (StrOpt) Allows image information files to be stored in non-standard +#### locations + # remove_unused_base_images=true #### (BoolOpt) Should unused base images be removed? @@ -1503,12 +1613,8 @@ # checksum_base_images=false #### (BoolOpt) Write a checksum for files in _base to disk - -######## defined in nova.virt.libvirt.utils ######## - -# image_info_filename_pattern=$instances_path/$base_dir_name/%(image)s.info -#### (StrOpt) Allows image information files to be stored in non-standard -#### locations +# checksum_interval_seconds=3600 +#### (IntOpt) How frequently to checksum base images ######## defined in nova.virt.libvirt.vif ######## @@ -1516,8 +1622,8 @@ # libvirt_ovs_bridge=br-int #### (StrOpt) Name of Integration Bridge used by Open vSwitch -# libvirt_use_virtio_for_bridges=false -#### (BoolOpt) Use virtio for bridge interfaces +# libvirt_use_virtio_for_bridges=true +#### (BoolOpt) Use virtio for bridge interfaces with KVM/QEMU ######## defined in nova.virt.libvirt.volume ######## @@ -1582,6 +1688,9 @@ #### error, etc. Used only if compute_driver is #### vmwareapi.VMWareESXDriver. + +######## defined in nova.virt.vmwareapi.vif ######## + # vmwareapi_vlan_interface=vmnic0 #### (StrOpt) Physical ethernet adapter name for vlan networking @@ -1594,12 +1703,6 @@ #### 4.1 default wsdl. Refer readme-vmware to setup -######## defined in nova.virt.vmwareapi.vmops ######## - -# vmware_vif_driver=nova.virt.vmwareapi.vif.VMWareVlanBridgeDriver -#### (StrOpt) The VMWare VIF driver to configure the VIFs. - - ######## defined in nova.virt.xenapi.agent ######## # agent_timeout=30 @@ -1692,6 +1795,11 @@ ######## defined in nova.virt.xenapi.vm_utils ######## +# cache_images=all +#### (StrOpt) Cache glance images locally. `all` will cache all images, +#### `some` will only cache images that have the image_property +#### `cache_in_nova=True`, and `none` turns off caching entirely + # default_os_type=linux #### (StrOpt) Default OS type @@ -1773,7 +1881,7 @@ #### "http://127.0.0.1:6081/console" # vncserver_listen=127.0.0.1 -#### (StrOpt) Ip address on which instance vncserversshould listen +#### (StrOpt) IP address on which instance vncservers should listen # vncserver_proxyclient_address=127.0.0.1 #### (StrOpt) the address to which proxy clients (like nova-xvpvncproxy) @@ -1795,6 +1903,12 @@ #### (StrOpt) Address that the XCP VNC proxy should bind to +######## defined in nova.volume ######## + +# volume_api_class=nova.volume.cinder.API +#### (StrOpt) The full class name of the volume API class to use + + ######## defined in nova.volume.cinder ######## # cinder_catalog_info=volume:cinder:publicURL @@ -1810,4 +1924,196 @@ #### (IntOpt) Number of cinderclient retries on failed http calls -# Total option count: 463 +[conductor] + +######## defined in nova.conductor.api ######## + +# use_local=false +#### (BoolOpt) Perform nova-conductor operations locally + +# topic=conductor +#### (StrOpt) the topic conductor nodes listen on + +# manager=nova.conductor.manager.ConductorManager +#### (StrOpt) full class name for the Manager for conductor + + +[cells] + +######## defined in nova.cells.manager ######## + +# driver=nova.cells.rpc_driver.CellsRPCDriver +#### (StrOpt) Cells communication driver to use + +# instance_updated_at_threshold=3600 +#### (IntOpt) Number of seconds after an instance was updated or deleted +#### to continue to update cells + +# instance_update_num_instances=1 +#### (IntOpt) Number of instances to update per periodic task run + + +######## defined in nova.cells.messaging ######## + +# max_hop_count=10 +#### (IntOpt) Maximum number of hops for cells routing. + +# scheduler=nova.cells.scheduler.CellsScheduler +#### (StrOpt) Cells scheduler to use + + +######## defined in nova.cells.opts ######## + +# enable=false +#### (BoolOpt) Enable cell functionality + +# topic=cells +#### (StrOpt) the topic cells nodes listen on + +# manager=nova.cells.manager.CellsManager +#### (StrOpt) Manager for cells + +# name=nova +#### (StrOpt) name of this cell + +# capabilities=hypervisor=xenserver;kvm,os=linux;windows +#### (ListOpt) Key/Multi-value list with the capabilities of the cell + +# call_timeout=60 +#### (IntOpt) Seconds to wait for response from a call to a cell. + + +######## defined in nova.cells.rpc_driver ######## + +# rpc_driver_queue_base=cells.intercell +#### (StrOpt) Base queue name to use when communicating between cells. +#### Various topics by message type will be appended to this. + + +######## defined in nova.cells.scheduler ######## + +# scheduler_retries=10 +#### (IntOpt) How many retries when no cells are available. + +# scheduler_retry_delay=2 +#### (IntOpt) How often to retry in seconds when no cells are available. + + +######## defined in nova.cells.state ######## + +# db_check_interval=60 +#### (IntOpt) Seconds between getting fresh cell info from db. + + +[baremetal] + +######## defined in nova.virt.baremetal.db.sqlalchemy.session ######## + +# sql_connection=sqlite:///$state_path/baremetal_$sqlite_db +#### (StrOpt) The SQLAlchemy connection string used to connect to the +#### bare-metal database + + +######## defined in nova.virt.baremetal.driver ######## + +# inject_password=true +#### (BoolOpt) Whether baremetal compute injects password or not + +# injected_network_template=$pybasedir/nova/virt/baremetal/interfaces.template +#### (StrOpt) Template file for injected network + +# vif_driver=nova.virt.baremetal.vif_driver.BareMetalVIFDriver +#### (StrOpt) Baremetal VIF driver. + +# volume_driver=nova.virt.baremetal.volume_driver.LibvirtVolumeDriver +#### (StrOpt) Baremetal volume driver. + +# instance_type_extra_specs= +#### (ListOpt) a list of additional capabilities corresponding to +#### instance_type_extra_specs for this compute host to +#### advertise. Valid entries are name=value, pairs For example, +#### "key1:val1, key2:val2" + +# driver=nova.virt.baremetal.pxe.PXE +#### (StrOpt) Baremetal driver back-end (pxe or tilera) + +# power_manager=nova.virt.baremetal.ipmi.IPMI +#### (StrOpt) Baremetal power management method + +# tftp_root=/tftpboot +#### (StrOpt) Baremetal compute node's tftp root path + + +######## defined in nova.virt.baremetal.ipmi ######## + +# terminal=shellinaboxd +#### (StrOpt) path to baremetal terminal program + +# terminal_cert_dir=<None> +#### (StrOpt) path to baremetal terminal SSL cert(PEM) + +# terminal_pid_dir=$state_path/baremetal/console +#### (StrOpt) path to directory stores pidfiles of baremetal_terminal + +# ipmi_power_retry=5 +#### (IntOpt) maximal number of retries for IPMI operations + + +######## defined in nova.virt.baremetal.pxe ######## + +# deploy_kernel=<None> +#### (StrOpt) Default kernel image ID used in deployment phase + +# deploy_ramdisk=<None> +#### (StrOpt) Default ramdisk image ID used in deployment phase + +# net_config_template=$pybasedir/nova/virt/baremetal/net-dhcp.ubuntu.template +#### (StrOpt) Template file for injected network config + +# pxe_append_params=<None> +#### (StrOpt) additional append parameters for baremetal PXE boot + +# pxe_config_template=$pybasedir/nova/virt/baremetal/pxe_config.template +#### (StrOpt) Template file for PXE configuration + + +######## defined in nova.virt.baremetal.volume_driver ######## + +# use_unsafe_iscsi=false +#### (BoolOpt) Do not set this out of dev/test environments. If a node does +#### not have an fixed PXE IP address, volumes are exported with +#### globally opened ACL + +# iscsi_iqn_prefix=iqn.2010-10.org.openstack.baremetal +#### (StrOpt) iSCSI IQN prefix used in baremetal volume connections. + + +[rpc_notifier2] + +######## defined in nova.openstack.common.notifier.rpc_notifier2 ######## + +# topics=notifications +#### (ListOpt) AMQP topic(s) used for openstack notifications + + +[trusted_computing] + +######## defined in nova.scheduler.filters.trusted_filter ######## + +# attestation_server=<None> +#### (StrOpt) attestation server http + +# attestation_server_ca_file=<None> +#### (StrOpt) attestation server Cert file for Identity verification + +# attestation_port=8443 +#### (StrOpt) attestation server port + +# attestation_api_url=/OpenAttestationWebServices/V1.0 +#### (StrOpt) attestation web API URL + +# attestation_auth_blob=<None> +#### (StrOpt) attestation authorization blob - must change + + +# Total option count: 514 diff --git a/tools/conf/extract_opts.py b/tools/conf/extract_opts.py index 836e48578..4cf4e31c8 100644 --- a/tools/conf/extract_opts.py +++ b/tools/conf/extract_opts.py @@ -47,10 +47,7 @@ WORDWRAP_WIDTH = 60 def main(srcfiles): - print '\n'.join(['#' * 20, '# nova.conf sample #', '#' * 20, - '', '[DEFAULT]', '']) - _list_opts(cfg.CommonConfigOpts, - cfg.__name__ + ':' + cfg.CommonConfigOpts.__name__) + print '\n'.join(['#' * 20, '# nova.conf sample #', '#' * 20, '']) mods_by_pkg = dict() for filepath in srcfiles: pkg_name = filepath.split(os.sep)[1] @@ -63,31 +60,94 @@ def main(srcfiles): ext_names = filter(lambda x: x not in pkg_names, mods_by_pkg.keys()) ext_names.sort() pkg_names.extend(ext_names) + + # opts_by_group is a mapping of group name to an options list + # The options list is a list of (module, options) tuples + opts_by_group = {'DEFAULT': []} + + opts_by_group['DEFAULT'].append( + (cfg.__name__ + ':' + cfg.CommonConfigOpts.__name__, + _list_opts(cfg.CommonConfigOpts)[0][1])) + for pkg_name in pkg_names: mods = mods_by_pkg.get(pkg_name) mods.sort() for mod_str in mods: - _print_module(mod_str) + if mod_str.endswith('.__init__'): + mod_str = mod_str[:mod_str.rfind(".")] + + mod_obj = _import_module(mod_str) + if not mod_obj: + continue + + for group, opts in _list_opts(mod_obj): + opts_by_group.setdefault(group, []).append((mod_str, opts)) + + print_group_opts('DEFAULT', opts_by_group.pop('DEFAULT', [])) + for group, opts in opts_by_group.items(): + print_group_opts(group, opts) + print "# Total option count: %d" % OPTION_COUNT -def _print_module(mod_str): - mod_obj = None - if mod_str.endswith('.__init__'): - mod_str = mod_str[:mod_str.rfind(".")] +def _import_module(mod_str): try: - mod_obj = importutils.import_module(mod_str) + return importutils.import_module(mod_str) except (ValueError, AttributeError), err: - return + return None except ImportError, ie: sys.stderr.write("%s\n" % str(ie)) - return + return None except Exception, e: - return - _list_opts(mod_obj, mod_str) + return None + + +def _guess_groups(opt, mod_obj): + groups = [] + + # is it in the DEFAULT group? + if (opt.dest in cfg.CONF and + not isinstance(cfg.CONF[opt.dest], cfg.CONF.GroupAttr)): + groups.append('DEFAULT') + # what other groups is it in? + for key, value in cfg.CONF.items(): + if not isinstance(value, cfg.CONF.GroupAttr): + continue + if opt.dest not in value: + continue + groups.append(key) -def _list_opts(obj, name): + if len(groups) == 1: + return groups[0] + + group = None + for g in groups: + if g in mod_obj.__name__: + group = g + break + + if group is None and 'DEFAULT' in groups: + sys.stderr.write("Guessing that " + opt.dest + + " in " + mod_obj.__name__ + + " is in DEFAULT group out of " + + ','.join(groups) + "\n") + return 'DEFAULT' + + if group is None: + sys.stderr("Unable to guess what group " + opt.dest + + " in " + mod_obj.__name__ + + " is in out of " + ','.join(groups) + "\n") + sys.exit(1) + + sys.stderr.write("Guessing that " + opt.dest + + " in " + mod_obj.__name__ + + " is in the " + group + + " group out of " + ','.join(groups) + "\n") + return group + + +def _list_opts(obj): opts = list() for attr_str in dir(obj): attr_obj = getattr(obj, attr_str) @@ -96,14 +156,23 @@ def _list_opts(obj, name): elif (isinstance(attr_obj, list) and all(map(lambda x: isinstance(x, cfg.Opt), attr_obj))): opts.extend(attr_obj) - if not opts: - return - global OPTION_COUNT - OPTION_COUNT += len(opts) - print '######## defined in %s ########\n' % name + + ret = {} for opt in opts: - _print_opt(opt) + ret.setdefault(_guess_groups(opt, obj), []).append(opt) + return ret.items() + + +def print_group_opts(group, opts_by_module): + print "[%s]" % group print + global OPTION_COUNT + for mod, opts in opts_by_module: + OPTION_COUNT += len(opts) + print '######## defined in %s ########\n' % mod + for opt in opts: + _print_opt(opt) + print def _get_my_ip(): |