diff --git a/rubick/schema.py b/rubick/schema.py index 1ab0169..45bed28 100644 --- a/rubick/schema.py +++ b/rubick/schema.py @@ -266,45 +266,39 @@ def validate_ipv4_network(s): def validate_host_label(s): if len(s) == 0: - return ( - InvalidValueError('Host label should have at least one character') - ) + return InvalidValueError( + 'Host label should have at least one character') if not s[0].isalpha(): - return ( - InvalidValueError( - 'Host label should start with a letter, but it starts with ' - '"%s"' % s[0]) - ) + return InvalidValueError( + 'Host label should start with a letter, but it starts with ' + '"%s"' % s[0]) if len(s) == 1: return s if not (s[-1].isdigit() or s[-1].isalpha()): - return ( - InvalidValueError( - 'Host label should end with letter or digit, but it ends ' - 'with "%s"' % - s[-1], Mark('', 0, len(s) - 1)) - ) + return InvalidValueError( + 'Host label should end with letter or digit, but it ends ' + 'with "%s"' % + s[-1], Mark('', 0, len(s) - 1)) if len(s) == 2: return s for i, c in enumerate(s[1:-1]): if not (c.isalpha() or c.isdigit() or c == '-'): - return ( - InvalidValueError( - 'Host label should contain only letters, digits or hypens,' - ' but it contains "%s"' % - c, Mark('', 0, i + 1)) - ) + return InvalidValueError( + 'Host label should contain only letters, digits or hypens,' + ' but it contains "%s"' % + c, Mark('', 0, i + 1)) return s @type_validator('host', base_type='string') @type_validator('host_address', base_type='string') +@type_validator('old_network', base_type='string') def validate_host_address(s): result = validate_ipv4_address(s) if not isissue(result): @@ -332,6 +326,30 @@ def validate_network_address(s): return validate_ipv4_network(s) +@type_validator('network_mask', base_type='string') +def validate_network_mask(s): + # TODO: implement proper checking + result = validate_ipv4_address(s) + if isissue(result): + return result + + parts = [int(p) for p in result.split('.', 3)] + + x = index(parts, lambda p: p != 255) + if x == -1: + return result + + if parts[x] not in [0, 128, 192, 224, 240, 248, 252, 254]: + return InvalidValueError('Invalid netmask') + + x += 1 + while x < 4: + if parts[x] != 0: + return InvalidValueError('Invalid netmask') + + return result + + @type_validator('host_and_port', base_type='string') def validate_host_and_port(s, default_port=None): parts = s.strip().split(':', 2) @@ -355,6 +373,10 @@ def validate_host_and_port(s, default_port=None): @type_validator('string', base_type='string', default=True) @type_validator('list', base_type='list') @type_validator('multi', base_type='multi') +@type_validator('file', base_type='string') +@type_validator('directory', base_type='string') +@type_validator('regex', base_type='string') +@type_validator('host_v6', base_type='string') def validate_string(s): return s @@ -398,6 +420,11 @@ def validate_integer(s, min=None, max=None): return v +@type_validator('file_mode') +def validate_file_mode(s): + return validate_integer(s) + + @type_validator('float') def validate_float(s): if isinstance(s, float): diff --git a/rubick/schemas/nova/nova.conf.yml b/rubick/schemas/nova/nova.conf.yml index d740201..60f9968 100644 --- a/rubick/schemas/nova/nova.conf.yml +++ b/rubick/schemas/nova/nova.conf.yml @@ -6,1579 +6,1321 @@ type: string default: 'internal' help: 'availability_zone to show internal services under' - comment: 'New param' - name: default_availability_zone type: string default: 'nova' help: 'default compute node availability_zone' - comment: 'New param' - name: ssl.ca_file - type: string + type: file default: ~ help: 'CA certificate file to use to verify connecting clients' - comment: 'New param' - name: ssl.key_file - type: string + type: file default: ~ help: 'Private key file to use when starting the server securely' - comment: 'New param' - name: crl_file type: file default: 'crl.pem' help: 'Filename of root Certificate Revocation List' - comment: 'New param' - name: keys_path type: directory default: '$state_path/keys' help: 'Where we keep our keys' - comment: 'New param' - name: ca_path - type: string + type: directory default: '$state_path/CA' help: 'Where we keep our root CA' - comment: 'New param' - name: use_project_ca type: boolean default: false help: 'Should we use a CA for each project?' - comment: 'New param' - name: user_cert_subject type: string default: '/CUS/STCalifornia/OOpenStack/OUNovaDev/CN%.16s-%.16s-%s' help: 'Subject for certificate for users, %s for project, user, timestamp' - comment: 'New param' - name: project_cert_subject type: string default: '/CUS/STCalifornia/OOpenStack/OUNovaDev/CNproject-ca-%.16s-%s' help: 'Subject for certificate for projects, %s for project, timestamp' - comment: 'New param' - name: fatal_exception_format_errors type: boolean default: false help: 'make exception message format errors fatal' - comment: 'New param' - name: my_ip type: string default: '10.0.0.1' help: 'ip address of this host' - comment: 'New param' - name: matchmaker_redis.host - type: string + type: host default: '127.0.0.1' help: 'Host to locate redis' - comment: 'New param' - name: use_ipv6 type: boolean default: false help: 'use ipv6' - comment: 'New param' - name: notify_on_state_change - type: string - default: 'None' + type: enum + type_args: {'values': [~, 'vm_state', 'vm_and_task_state']} + default: ~ help: "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." - comment: 'New param' - name: notify_api_faults type: boolean default: false help: 'If set, send api.fault notifications on caught exceptions in the API service.' - comment: 'New param' - name: pybasedir - type: string + type: directory default: '/usr/lib/python/site-packages' help: 'Directory where the nova python module is installed' - comment: 'New param' - name: bindir - type: string + type: directory default: '/usr/local/bin' help: 'Directory where nova binaries are installed' - comment: 'New param' - name: state_path - type: string + type: directory default: '$pybasedir' help: "Top-level directory for maintaining nova's state" - comment: 'New param' - name: policy_file - type: string + type: file default: 'policy.json' help: 'JSON file representing policy' - comment: 'New param' - name: policy_default_rule type: string default: 'default' help: 'Rule checked when requested rule is not found' - comment: 'New param' - name: quota_instances type: integer default: 10 help: 'number of instances allowed per project' - comment: 'New param' - name: quota_cores type: integer default: 20 help: 'number of instance cores allowed per project' - comment: 'New param' - name: quota_ram type: integer default: 51200 help: 'megabytes of instance ram allowed per project' - comment: 'New param' - name: quota_floating_ips type: integer default: 10 help: 'number of floating ips allowed per project' - comment: 'New param' - name: quota_fixed_ips type: integer default: -1 help: 'number of fixed ips allowed per project' - comment: 'New param' - name: quota_metadata_items type: integer default: 128 help: 'number of metadata items allowed per instance' - comment: 'New param' - name: quota_injected_files type: integer default: 5 help: 'number of injected files allowed' - comment: 'New param' - name: quota_injected_file_content_bytes type: integer default: 10240 help: 'number of bytes allowed per injected file' - comment: 'New param' - name: quota_injected_file_path_bytes type: integer default: 255 help: 'number of bytes allowed per injected file path' - comment: 'New param' - name: quota_security_groups type: integer default: 10 help: 'number of security groups per project' - comment: 'New param' - name: quota_security_group_rules type: integer default: 20 help: 'number of security rules per security group' - comment: 'New param' - name: quota_key_pairs type: integer default: 100 help: 'number of key pairs per user' - comment: 'New param' - name: reservation_expire type: integer default: 86400 help: 'number of seconds until a reservation expires' - comment: 'New param' - name: until_refresh type: integer default: false help: 'count of reservations until usage is refreshed' - comment: 'New param' - name: max_age type: integer - default: false + default: 0 help: 'number of seconds between subsequent usage refreshes' - comment: 'New param' - name: quota_driver type: string default: 'nova.quota.DbQuotaDriver' help: 'default driver to use for quota checks' - comment: 'New param' - name: report_interval type: integer default: 10 help: 'seconds between nodes reporting state to datastore' - comment: 'New param' - name: periodic_enable type: boolean default: true help: 'enable periodic tasks' - comment: 'New param' - name: periodic_fuzzy_delay type: integer default: 60 help: 'range of seconds to randomly delay when starting the periodic task scheduler to reduce stampeding.' - comment: 'New param' - name: enabled_apis - type: list - default: 'ec2,osapi_compute,metadata' + type: string_list + default: ['ec2', 'osapi_compute', 'metadata'] help: 'a list of APIs to enable by default' - comment: 'New param' - name: enabled_ssl_apis type: list - default: '' + default: [] help: 'a list of APIs with enabled SSL' - comment: 'New param' - name: ec2_listen - type: string + type: host default: '0.0.0.0' help: 'IP address for EC2 API to listen' - comment: 'New param' - name: ec2_listen_port - type: integer + type: port default: 8773 help: 'port for ec2 api to listen' - comment: 'New param' - name: ec2_workers type: integer default: ~ help: 'Number of workers for EC2 API service' - comment: 'New param' - name: osapi_compute_listen - type: string + type: host default: '0.0.0.0' help: 'IP address for OpenStack API to listen' - comment: 'New param' - name: osapi_compute_listen_port - type: integer + type: port default: 8774 help: 'list port for osapi compute' - comment: 'New param' - name: osapi_compute_workers type: integer default: ~ help: 'Number of workers for OpenStack API service' - comment: 'New param' - name: metadata_manager type: string default: 'nova.api.manager.MetadataManager' help: 'OpenStack metadata service manager' - comment: 'New param' - name: metadata_listen - type: string + type: host default: '0.0.0.0' help: 'IP address for metadata api to listen' - comment: 'New param' - name: metadata_listen_port - type: integer + type: port default: 8775 help: 'port for metadata api to listen' - comment: 'New param' - name: metadata_workers type: integer default: ~ help: 'Number of workers for metadata service' - comment: 'New param' - name: compute_manager type: string default: 'nova.compute.manager.ComputeManager' help: 'full class name for the Manager for compute' - comment: 'New param' - name: console_manager type: string default: 'nova.console.manager.ConsoleProxyManager' help: 'full class name for the Manager for console proxy' - comment: 'New param' - name: cert_manager type: string default: 'nova.cert.manager.CertManager' help: 'full class name for the Manager for cert' - comment: 'New param' - name: network_manager type: string default: 'nova.network.manager.VlanManager' help: 'full class name for the Manager for network' - comment: 'New param' - name: scheduler_manager type: string default: 'nova.scheduler.manager.SchedulerManager' help: 'full class name for the Manager for scheduler' - comment: 'New param' - name: service_down_time type: integer default: 60 help: 'maximum time since last check-in for up service' - comment: 'New param' - name: sqlite_clean_db - type: string + type: file default: 'clean.sqlite' help: 'File name of clean sqlite db' - comment: 'New param' - name: monkey_patch type: boolean default: false help: 'Whether to log monkey patching' - comment: 'New param' - name: monkey_patch_modules type: list - default: 'nova.api.ec2.cloud:nova.notifications.notify_decorator,nova.compute.api:nova.notifications.notify_decorator' + default: ['nova.api.ec2.cloud:nova.notifications.notify_decorator', 'nova.compute.api:nova.notifications.notify_decorator'] help: 'List of modules/decorators to monkey patch' - comment: 'New param' - name: password_length type: integer default: 12 help: 'Length of generated instance admin passwords' - comment: 'New param' - name: instance_usage_audit_period - type: string + type: enum + type_args: {'values': ['hour', 'day', 'month', 'year']} default: 'month' help: 'time period to generate instance usages for. Time period must be hour, day, month or year' - comment: 'New param' - name: rootwrap_config - type: string + type: file default: '/etc/nova/rootwrap.conf' help: 'Path to the rootwrap configuration file to use for running commands as root' - comment: 'New param' - name: tempdir - type: string + type: directory default: ~ help: 'Explicitly specify the temporary working directory' - comment: 'New param' - name: api_paste_config - type: string + type: file default: 'api-paste.ini' help: 'File name for the paste.deploy config for nova-api' - comment: 'New param' - name: wsgi_log_format type: string default: '%(client_ip)s "%(request_line)s" status: %(status_code)s len: %(body_length)s time: %(wall_seconds).7f' help: '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.' - comment: 'New param' - name: ssl_ca_file - type: string + type: file default: ~ help: 'CA certificate file to use to verify connecting clients' - comment: 'New param' - name: ssl_cert_file - type: string + type: file default: ~ help: 'SSL certificate of API server' - comment: 'New param' - name: ssl_key_file - type: string + type: file default: ~ help: 'SSL private key of API server' - comment: 'New param' - name: tcp_keepidle type: integer default: 600 help: 'Sets the value of TCP_KEEPIDLE in seconds for each server socket. Not supported on OS X.' - comment: 'New param' - name: api_rate_limit type: boolean default: false help: 'whether to use per-user rate limiting for the api.' - comment: 'New param' - name: auth_strategy - type: string + type: enum + type_args: {'values': ['noauth', 'keystone']} default: 'noauth' help: 'The strategy to use for auth: noauth or keystone.' - comment: 'New param' - name: use_forwarded_for type: boolean default: false help: 'Treat X-Forwarded-For as the canonical remote address. Only enable this if you have a sanitizing proxy.' - comment: 'New param' - name: lockout_attempts type: integer default: 5 help: 'Number of failed auths before lockout.' - comment: 'New param' - name: lockout_minutes type: integer default: 15 help: 'Number of minutes to lockout if triggered.' - comment: 'New param' - name: lockout_window type: integer default: 15 help: 'Number of minutes for lockout window.' - comment: 'New param' - name: keystone_ec2_url type: string default: 'http://localhost:5000/v2.0/ec2tokens' help: 'URL to get token from ec2 request.' - comment: 'New param' - name: ec2_private_dns_show_ip type: boolean default: false help: 'Return the IP address as private dns hostname in describe instances' - comment: 'New param' - name: ec2_strict_validation type: boolean default: true help: 'Validate security group names according to EC2 specification' - comment: 'New param' - name: ec2_timestamp_expiry type: integer default: 300 help: 'Time in seconds before ec2 timestamp expires' - comment: 'New param' - name: ec2_host - type: string + type: host default: '$my_ip' help: 'the ip of the ec2 api server' - comment: 'New param' - name: ec2_dmz_host - type: string + type: host default: '$my_ip' help: 'the internal ip of the ec2 api server' - comment: 'New param' - name: ec2_port - type: integer + type: port default: 8773 help: 'the port of the ec2 api server' - comment: 'New param' - name: ec2_scheme - type: string + type: enum + type_args: {'values': ['http', 'https']} default: 'http' help: 'the protocol to use when connecting to the ec2 api server' - comment: 'New param' - name: ec2_path type: string default: '/services/Cloud' help: 'the path prefix used to call the ec2 api server' - comment: 'New param' - name: region_list type: list - default: '' + default: [] help: 'list of region=fqdn pairs separated by commas' - comment: 'New param' - name: config_drive_skip_versions type: string default: '1.0 2007-01-19 2007-03-01 2007-08-29 2007-10-10 2007-12-15 2008-02-01 2008-09-01' help: 'List of metadata versions to skip placing into the config drive' - comment: 'New param' - name: vendordata_driver type: string default: 'nova.api.metadata.vendordata_json.JsonFileVendorData' help: 'Driver to use for vendor data' - comment: 'New param' - name: service_neutron_metadata_proxy type: boolean default: false help: 'Set flag to indicate Neutron will proxy metadata requests and resolve instance ids.' - comment: 'New param' - name: neutron_metadata_proxy_shared_secret type: string default: '' help: 'Shared secret to validate proxies Neutron metadata requests' - comment: 'New param' - name: vendordata_jsonfile_path - type: string + type: file default: ~ help: 'File to load json formated vendor data from' - comment: 'New param' - name: osapi_max_limit type: integer default: 1000 help: 'the maximum number of items returned in a single response from a collection resource' - comment: 'New param' - name: osapi_compute_link_prefix type: string default: ~ help: 'Base URL that will be presented to users in links to the OpenStack Compute API' - comment: 'New param' - name: osapi_glance_link_prefix type: string default: ~ help: 'Base URL that will be presented to users in links to glance resources' - comment: 'New param' - name: allow_instance_snapshots type: boolean default: true help: 'Permit instance snapshot operations.' - comment: 'New param' - name: osapi_compute_ext_list type: list - default: '' - help: 'Specify list of extensions to load when using osapi_compute_extension option with nova_2013_1_3.api.openstack.compute.contrib.select_extensions' - comment: 'New param' + default: [] + help: 'Specify list of extensions to load when using osapi_compute_extension option with nova.api.openstack.compute.contrib.select_extensions' - name: fping_path - type: string + type: executable default: '/usr/sbin/fping' help: 'Full path to fping.' - comment: 'New param' - name: enable_network_quota type: boolean default: false help: 'Enables or disables quota checking for tenant networks' - comment: 'New param' - name: use_neutron_default_nets - type: string - default: 'False' + type: boolean + default: false help: 'Control for checking for default networks' - comment: 'New param' - name: neutron_default_tenant_id type: string default: 'default' help: 'Default tenant id when creating neutron networks' - comment: 'New param' - name: osapi_compute_extension type: multi default: 'nova.api.openstack.compute.contrib.standard_extensions' help: 'osapi compute extension to load' - comment: 'New param' - name: osapi_hide_server_address_states type: list - default: 'building' + default: ['building'] help: 'List of instance states that should hide network info' - comment: 'New param' - name: enable_instance_password type: boolean default: true help: 'Allows use of instance password during server creation' - comment: 'New param' - name: osapi_max_request_body_size type: integer default: 114688 help: 'the maximum body size per each osapi request(bytes)' - comment: 'New param' - name: compute_api_class type: string default: 'nova.compute.api.API' help: 'The full class name of the compute API class to use' - comment: 'New param' - name: cert_topic type: string default: 'cert' help: 'the topic cert nodes listen on' - comment: 'New param' - name: vpn_image_id type: string default: '0' help: 'image id used when starting up a cloudpipe vpn server' - comment: 'New param' - name: vpn_flavor type: string default: 'm1.tiny' help: 'Flavor for vpn instances' - comment: 'New param' - name: boot_script_template - type: string + type: file default: '$pybasedir/nova/cloudpipe/bootscript.template' help: 'Template for cloudpipe instance boot script' - comment: 'New param' - name: dmz_net - type: string + type: old_network default: '10.0.0.0' help: 'Network to push into openvpn config' - comment: 'New param' - name: dmz_mask - type: string + type: network_mask default: '255.255.255.0' help: 'Netmask to push into openvpn config' - comment: 'New param' - name: vpn_key_suffix type: string default: '-vpn' help: 'Suffix to add to project name for vpn key and secgroups' - comment: 'New param' - name: record type: boolean default: false help: 'Record sessions to FILE.[session_number]' - comment: 'New param' - name: daemon type: boolean default: false help: 'Become a daemon' - comment: 'New param' - name: ssl_only type: boolean default: false help: 'Disallow non-encrypted connections' - comment: 'New param' - name: source_is_ipv6 type: boolean default: false help: 'Source is ipv6' - comment: 'New param' - name: upgrade_levels.cert type: string default: ~ help: 'Set a version cap for messages sent to cert services' - comment: 'New param' - name: key - type: string + type: file default: ~ help: 'SSL key file' - comment: 'New param' - name: web - type: string + type: executable default: '/usr/share/spice-html5' help: 'Run webserver on same port. Serve files from DIR.' - comment: 'New param' - name: novncproxy_host - type: string + type: host default: '0.0.0.0' help: 'Host on which to listen for incoming requests' - comment: 'New param' - name: novncproxy_port - type: integer + type: port default: 6080 help: 'Port on which to listen for incoming requests' - comment: 'New param' - name: spicehtml5proxy_host - type: string + type: host default: '0.0.0.0' help: 'Host on which to listen for incoming requests' - comment: 'New param' - name: spicehtml5proxy_port - type: integer + type: port default: 6082 help: 'Port on which to listen for incoming requests' - comment: 'New param' - name: allow_resize_to_same_host type: boolean default: false help: 'Allow destination machine to match source for resize. Useful when testing in single-host environments.' - comment: 'New param' - name: allow_migrate_to_same_host type: boolean default: false help: 'Allow migrate machine to the same host. Useful when testing in single-host environments.' - comment: 'New param' - name: default_schedule_zone type: string default: ~ help: "availability zone to use when user doesn't specify one" - comment: 'New param' - name: non_inheritable_image_properties type: list - default: 'cache_in_nova,bittorrent' + default: ['cache_in_nova', 'bittorrent'] help: 'These are image properties which a snapshot should not inherit from an instance' - comment: 'New param' - name: null_kernel type: string default: 'nokernel' help: 'kernel image that indicates not to use a kernel, but to use a raw disk image instead' - comment: 'New param' - name: multi_instance_display_name_template type: string default: '%(name)s-%(uuid)s' help: "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." - comment: 'New param' - name: max_local_block_devices type: integer default: 3 help: '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.' - comment: 'New param' - name: default_flavor type: string default: 'm1.small' help: 'default flavor to use for the EC2 API only. The Nova API does not support a default flavor.' - comment: 'New param' - name: console_host type: string default: 'nova' help: 'Console proxy host to use to connect to instances on this host.' - comment: 'New param' - name: default_access_ip_network_name type: string default: ~ help: 'Name of network to use to set access ips for instances' - comment: 'New param' - name: defer_iptables_apply type: boolean default: false help: 'Whether to batch up the application of IPTables rules during a host restart and apply all at the end of the init phase' - comment: 'New param' - name: instances_path - type: string + type: directory default: '$state_path/instances' help: 'where instances are stored on disk' - comment: 'New param' - name: instance_usage_audit type: boolean default: false help: 'Generate periodic compute.instance.exists notifications' - comment: 'New param' - name: live_migration_retry_count type: integer default: 30 help: 'Number of 1 second retries needed in live_migration' - comment: 'New param' - name: resume_guests_state_on_host_boot type: boolean default: false help: 'Whether to start guests that were running before the host rebooted' - comment: 'New param' - name: network_allocate_retries type: integer default: false help: 'Number of times to retry network allocation on failures' - comment: 'New param' - name: maximum_instance_delete_attempts type: integer default: 5 help: 'The number of times to attempt to reap an instances files.' - comment: 'New param' - name: bandwidth_poll_interval type: integer default: 600 help: 'interval to pull bandwidth usage info' - comment: 'New param' - name: sync_power_state_interval type: integer default: 600 help: 'interval to sync power states between the database and the hypervisor' - comment: 'New param' - name: heal_instance_info_cache_interval type: integer default: 60 help: 'Number of seconds between instance info_cache self healing updates' - comment: 'New param' - name: host_state_interval type: integer default: 120 help: 'Interval in seconds for querying the host status' - comment: 'New param' - name: image_cache_manager_interval type: integer default: 2400 help: 'Number of seconds to wait between runs of the image cache manager' - comment: 'New param' - name: reclaim_instance_interval type: integer - default: false + default: 0 help: 'Interval in seconds for reclaiming deleted instances' - comment: 'New param' - name: volume_usage_poll_interval type: integer - default: false + default: 0 help: 'Interval in seconds for gathering volume usages' - comment: 'New param' - name: shelved_poll_interval type: integer default: 3600 help: 'Interval in seconds for polling shelved instances to offload' - comment: 'New param' - name: shelved_offload_time type: integer - default: false + default: 0 help: 'Time in seconds before a shelved instance is eligible for removing from a host. -1 never offload, 0 offload when shelved' - comment: 'New param' - name: instance_delete_interval type: integer default: 300 help: 'Interval in seconds for retrying failed instance file deletes' - comment: 'New param' - name: running_deleted_instance_action type: string default: 'log' help: "Action to take if a running deleted instance is detected.Valid options are 'noop', 'log' and 'reap'. Set to 'noop' to disable." - comment: 'New param' - name: running_deleted_instance_poll_interval type: integer default: 1800 help: 'Number of seconds to wait between runs of the cleanup task.' - comment: 'New param' - name: running_deleted_instance_timeout type: integer - default: false + default: 0 help: 'Number of seconds after being deleted when a running instance should be considered eligible for cleanup.' - comment: 'New param' - name: reboot_timeout type: integer - default: false + default: 0 help: 'Automatically hard reboot an instance if it has been stuck in a rebooting state longer than N seconds. Set to 0 to disable.' - comment: 'New param' - name: instance_build_timeout type: integer - default: false + default: 0 help: 'Amount of time in seconds an instance can be in BUILD before going into ERROR status.Set to 0 to disable.' - comment: 'New param' - name: rescue_timeout type: integer - default: false + default: 0 help: 'Automatically unrescue an instance after N seconds. Set to 0 to disable.' - comment: 'New param' - name: resize_confirm_window type: integer - default: false + default: 0 help: 'Automatically confirm resizes after N seconds. Set to 0 to disable.' - comment: 'New param' - name: reserved_host_disk_mb type: integer - default: false + default: 0 help: 'Amount of disk in MB to reserve for the host' - comment: 'New param' - name: reserved_host_memory_mb type: integer default: 512 help: 'Amount of memory in MB to reserve for the host' - comment: 'New param' - name: compute_stats_class type: string default: 'nova.compute.stats.Stats' help: 'Class that will manage stats for the local compute host' - comment: 'New param' - name: compute_topic type: string default: 'compute' help: 'the topic compute nodes listen on' - comment: 'New param' - name: migrate_max_retries type: integer default: -1 help: 'Number of times to retry live-migration before failing. If == -1, try until out of hosts. If == 0, only try once, no retries.' - comment: 'New param' - name: console_driver type: string default: 'nova.console.xvp.XVPConsoleProxy' help: 'Driver to use for the console proxy' - comment: 'New param' - name: stub_compute type: boolean default: false help: 'Stub calls to compute worker for tests' - comment: 'New param' - name: console_public_hostname type: string default: 'nova' help: 'Publicly visible name for this console host' - comment: 'New param' - name: console_topic type: string default: 'console' help: 'the topic console proxy nodes listen on' - comment: 'New param' - name: console_vmrc_port - type: integer + type: port default: 443 help: 'port for VMware VMRC connections' - comment: 'New param' - name: console_vmrc_error_retries type: integer default: 10 help: 'number of retries for retrieving VMRC information' - comment: 'New param' - name: console_xvp_conf_template - type: string + type: file default: '$pybasedir/nova/console/xvp.conf.template' help: 'XVP conf template' - comment: 'New param' - name: console_xvp_conf - type: string + type: file default: '/etc/xvp.conf' help: 'generated XVP conf file' - comment: 'New param' - name: console_xvp_pid - type: string + type: file default: '/var/run/xvp.pid' help: 'XVP master process pid file' - comment: 'New param' - name: console_xvp_log - type: string + type: file default: '/var/log/xvp.log' help: 'XVP log file' - comment: 'New param' - name: console_xvp_multiplex_port - type: integer + type: port default: 5900 help: 'port for XVP to multiplex VNC connections on' - comment: 'New param' - name: consoleauth_topic type: string default: 'consoleauth' help: 'the topic console auth proxy nodes listen on' - comment: 'New param' - name: console_token_ttl type: integer default: 600 help: 'How many seconds before deleting tokens' - comment: 'New param' - name: consoleauth_manager type: string default: 'nova.consoleauth.manager.ConsoleAuthManager' help: 'Manager for console auth' - comment: 'New param' - name: enable_new_services type: boolean default: true help: 'Services to be added to the available pool on create' - comment: 'New param' - name: instance_name_template type: string default: 'instance-%08x' help: 'Template string to be used to generate instance names' - comment: 'New param' - name: snapshot_name_template type: string default: 'snapshot-%s' help: 'Template string to be used to generate snapshot names' - comment: 'New param' - name: db_driver type: string default: 'nova.db' help: 'driver to use for database access' - comment: 'New param' - name: osapi_compute_unique_server_name_scope type: string default: '' help: "When set, compute API will consider duplicate hostnames invalid within the specified scope, regardless of case. Should be empty, 'project' or 'global'." - comment: 'New param' - name: glance_host - type: string + type: host default: '$my_ip' help: 'default glance hostname or ip' - comment: 'New param' - name: glance_port - type: integer + type: port default: 9292 help: 'default glance port' - comment: 'New param' - name: glance_protocol - type: string + type: enum + type_args: {'values': ['http', 'https']} default: 'http' help: 'Default protocol to use when connecting to glance. Set to https for SSL.' - comment: 'New param' - name: glance_api_servers type: list - default: '$glance_host:$glance_port' - help: 'A list of the glance api servers available to nova_2013_1_3. Prefix with https:// for ssl-based glance api servers.' - comment: 'New param' + default: ['$glance_host:$glance_port'] + help: 'A list of the glance api servers available to nova. Prefix with https:// for ssl-based glance api servers.' - name: glance_api_insecure type: boolean default: false help: 'Allow to perform insecure SSL' - comment: 'New param' - name: glance_num_retries type: integer - default: false + default: 0 help: 'Number retries when downloading an image from glance' - comment: 'New param' - name: allowed_direct_url_schemes type: list - default: '' + default: [] help: 'A list of url scheme that can be downloaded directly via the direct_url. Currently supported schemes: [file].' - comment: 'New param' - name: image_decryption_dir - type: string + type: directory default: '/tmp' help: 'parent dir for tempdir used for image decryption' - comment: 'New param' - name: s3_host - type: string + type: host default: '$my_ip' help: 'hostname or ip for OpenStack to use when accessing the s3 api' - comment: 'New param' - name: s3_port - type: integer + type: port default: 3333 help: 'port used when accessing the s3 api' - comment: 'New param' - name: s3_access_key type: string default: 'notchecked' help: 'access key to use for s3 server for images' - comment: 'New param' - name: s3_secret_key type: string default: 'notchecked' help: 'secret key to use for s3 server for images' - comment: 'New param' - name: s3_use_ssl type: boolean default: false help: 'whether to use ssl when talking to s3' - comment: 'New param' - name: s3_affix_tenant type: boolean default: false help: 'whether to affix the tenant id to the access key when downloading from s3' - comment: 'New param' - name: ipv6_backend type: string default: 'rfc2462' help: 'Backend to use for IPv6 generation' - comment: 'New param' - name: network_api_class type: string default: 'nova.network.api.API' help: 'The full class name of the network API class to use' - comment: 'New param' - name: network_driver type: string default: 'nova.network.linux_net' help: 'Driver to use for network creation' - comment: 'New param' - name: default_floating_pool type: string default: 'nova' help: 'Default pool for floating ips' - comment: 'New param' - name: auto_assign_floating_ip type: boolean default: false help: 'Autoassigning floating ip to VM' - comment: 'New param' - name: floating_ip_dns_manager type: string default: 'nova.network.noop_dns_driver.NoopDNSDriver' help: 'full class name for the DNS Manager for floating IPs' - comment: 'New param' - name: instance_dns_manager type: string default: 'nova.network.noop_dns_driver.NoopDNSDriver' help: 'full class name for the DNS Manager for instance IPs' - comment: 'New param' - name: instance_dns_domain type: string default: '' help: 'full class name for the DNS Zone for instance IPs' - comment: 'New param' - name: ldap_dns_url type: string default: 'ldap://ldap.example.com:389' help: 'URL for ldap server which will store dns entries' - comment: 'New param' - name: ldap_dns_user type: string default: 'uidadmin,oupeople,dcexample,dcorg' help: 'user for ldap DNS' - comment: 'New param' - name: ldap_dns_password type: string default: 'password' help: 'password for ldap DNS' - comment: 'New param' - name: ldap_dns_soa_hostmaster type: string default: 'hostmaster@example.org' help: 'Hostmaster for ldap dns driver Statement of Authority' - comment: 'New param' - name: ldap_dns_servers type: multi default: 'dns.example.org' help: 'DNS Servers for ldap dns driver' - comment: 'New param' - name: ldap_dns_base_dn type: string default: 'ouhosts,dcexample,dcorg' help: 'Base DN for DNS entries in ldap' - comment: 'New param' - name: ldap_dns_soa_refresh - type: string - default: '1800' + type: integer + default: 1800 help: 'Refresh interval' - comment: 'New param' - name: ldap_dns_soa_retry - type: string - default: '3600' + type: integer + default: 3600 help: 'Retry interval' - comment: 'New param' - name: ldap_dns_soa_expiry - type: string - default: '86400' + type: integer + default: 86400 help: 'Expiry interval' - comment: 'New param' - name: ldap_dns_soa_minimum - type: string - default: '7200' + type: integer + default: 7200 help: 'Minimum interval' - comment: 'New param' - name: dhcpbridge_flagfile - type: multi + type: file default: '/etc/nova/nova-dhcpbridge.conf' help: 'location of flagfiles for dhcpbridge' - comment: 'New param' - name: networks_path - type: string + type: directory default: '$state_path/networks' help: 'Location to keep network config files' - comment: 'New param' - name: public_interface type: string default: 'eth0' help: 'Interface for public IP addresses' - comment: 'New param' - name: network_device_mtu type: string default: ~ help: 'MTU setting for vlan' - comment: 'New param' - name: dhcpbridge - type: string + type: executable default: '$bindir/nova-dhcpbridge' help: 'location of nova-dhcpbridge' - comment: 'New param' - name: routing_source_ip - type: string + type: host default: '$my_ip' help: 'Public IP of network host' - comment: 'New param' - name: dhcp_lease_time type: integer default: 120 help: 'Lifetime of a DHCP lease in seconds' - comment: 'New param' - name: dns_server type: multi default: '' help: 'if set, uses specific dns server for dnsmasq. Canbe specified multiple times.' - comment: 'New param' - name: use_network_dns_servers type: boolean default: false help: 'if set, uses the dns1 and dns2 from the network ref.as dns servers.' - comment: 'New param' - name: dmz_cidr type: list - default: '' + default: [] help: 'A list of dmz range that should be accepted' - comment: 'New param' - name: force_snat_range type: multi default: '' help: '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.' - comment: 'New param' - name: dnsmasq_config_file type: string default: '' help: 'Override the default dnsmasq settings with this file' - comment: 'New param' - name: linuxnet_interface_driver type: string default: 'nova.network.linux_net.LinuxBridgeInterfaceDriver' help: 'Driver used to create ethernet devices.' - comment: 'New param' - name: linuxnet_ovs_integration_bridge type: string default: 'br-int' help: 'Name of Open vSwitch bridge used with linuxnet' - comment: 'New param' - name: send_arp_for_ha type: boolean default: false help: 'send gratuitous ARPs for HA setup' - comment: 'New param' - name: send_arp_for_ha_count type: integer default: 3 help: 'send this many gratuitous ARPs for HA setup' - comment: 'New param' - name: use_single_default_gateway type: boolean default: false help: 'Use single default gateway. Only first nic of vm will get default gateway from dhcp server' - comment: 'New param' - name: forward_bridge_interface type: multi default: 'all' help: 'An interface that bridges can forward to. If this is set to all then all traffic will be forwarded. Can be specified multiple times.' - comment: 'New param' - name: metadata_host - type: string + type: host default: '$my_ip' help: 'the ip for the metadata api server' - comment: 'New param' - name: metadata_port - type: integer + type: port default: 8775 help: 'the port for the metadata api port' - comment: 'New param' - name: iptables_top_regex - type: string + type: regex default: '' help: 'Regular expression to match iptables rule that should always be on the top.' - comment: 'New param' - name: iptables_bottom_regex - type: string + type: regex default: '' help: 'Regular expression to match iptables rule that should always be on the bottom.' - comment: 'New param' - name: iptables_drop_action type: string default: 'DROP' help: 'The table that iptables to jump to when a packet is to be dropped.' - comment: 'New param' - name: flat_network_bridge type: string default: ~ help: 'Bridge for simple network instances' - comment: 'New param' - name: flat_network_dns - type: string + type: host default: '8.8.4.4' help: 'Dns for simple network' - comment: 'New param' - name: flat_injected type: boolean default: false help: 'Whether to attempt to inject network setup into guest' - comment: 'New param' - name: flat_interface type: string default: ~ help: 'FlatDhcp will bridge into this interface if set' - comment: 'New param' - name: vlan_start type: integer default: 100 help: 'First VLAN for private networks' - comment: 'New param' - name: vmware.vlan_interface type: string default: 'vmnic0' help: 'Physical ethernet adapter name for vlan networking' - comment: 'New param' - name: num_networks type: integer - default: true + default: 1 help: 'Number of networks to support' - comment: 'New param' - name: vpn_ip - type: string + type: host default: '$my_ip' help: 'Public IP for the cloudpipe VPN servers' - comment: 'New param' - name: vpn_start - type: integer + type: port default: 1000 help: 'First Vpn port for private networks' - comment: 'New param' - name: network_size type: integer default: 256 help: 'Number of addresses in each private subnet' - comment: 'New param' - name: fixed_range_v6 type: string default: 'fd00::/48' help: 'Fixed IPv6 address block' - comment: 'New param' - name: fixed_range - type: string + type: network default: '' help: 'Fixed IPv4 address block' - comment: 'New param' - name: gateway - type: string + type: host default: ~ help: 'Default IPv4 gateway' - comment: 'New param' - name: gateway_v6 - type: string + type: host_v6 default: ~ help: 'Default IPv6 gateway' - comment: 'New param' - name: cnt_vpn_clients type: integer - default: false + default: 0 help: 'Number of addresses reserved for vpn clients' - comment: 'New param' - name: fixed_ip_disassociate_timeout type: integer default: 600 help: 'Seconds after which a deallocated ip is disassociated' - comment: 'New param' - name: create_unique_mac_address_attempts type: integer default: 5 help: 'Number of attempts to create unique mac address' - comment: 'New param' - name: fake_network type: boolean default: false help: 'If passed, use fake network devices and addresses' - comment: 'New param' - name: fake_call type: boolean default: false help: 'If True, skip using the queue and make local calls' - comment: 'New param' - name: teardown_unused_network_gateway type: boolean default: false help: 'If True, unused gateway devices' - comment: 'New param' - name: force_dhcp_release type: boolean default: true help: 'If True, send a dhcp release on instance termination' - comment: 'New param' - name: share_dhcp_address type: boolean default: false help: '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.' - comment: 'New param' - name: update_dns_entries type: boolean default: false help: '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' - comment: 'New param' - name: dns_update_periodic_interval type: integer default: -1 help: 'Number of seconds to wait between runs of updates to DNS entries.' - comment: 'New param' - name: dhcp_domain type: string default: 'novalocal' help: 'domain to use for building the hostnames' - comment: 'New param' - name: l3_lib type: string default: 'nova.network.l3.LinuxNetL3' help: 'Indicates underlying L3 management library' - comment: 'New param' - name: neutron_url type: string @@ -1590,121 +1332,102 @@ type: integer default: 30 help: 'timeout value for connecting to neutron in seconds' - comment: 'New param' - name: neutron_admin_username type: string default: ~ help: 'username for connecting to neutron in admin context' - comment: 'New param' - name: neutron_admin_password type: string default: ~ help: 'password for connecting to neutron in admin context' - comment: 'New param' - name: neutron_admin_tenant_name type: string default: ~ help: 'tenant name for connecting to neutron in admin context' - comment: 'New param' - name: neutron_region_name type: string default: ~ help: 'region name for connecting to neutron in admin context' - comment: 'New param' - name: neutron_admin_auth_url type: string default: 'http://localhost:5000/v2.0' help: 'auth url for connecting to neutron in admin context' - comment: 'New param' - name: neutron_api_insecure type: boolean default: false help: 'if set, ignore any SSL validation issues' - comment: 'New param' - name: neutron_auth_strategy type: string default: 'keystone' help: 'auth strategy for connecting to neutron in admin context' - comment: 'New param' - name: neutron_ovs_bridge type: string default: 'br-int' help: 'Name of Integration Bridge used by Open vSwitch' - comment: 'New param' - name: neutron_extension_sync_interval type: integer default: 600 help: 'Number of seconds before querying neutron for extensions' - comment: 'New param' - name: neutron_ca_certificates_file - type: string + type: file default: ~ help: 'Location of ca certicates file to use for neutronclient requests.' - comment: 'New param' - name: dhcp_options_enabled type: boolean default: false help: 'Use per-port DHCP options with Neutron' - comment: 'New param' - name: network_topic type: string default: 'network' help: 'the topic network nodes listen on' - comment: 'New param' - name: multi_host type: boolean default: false help: 'Default value for multi_host in networks. Also, if set, some rpc network calls will be sent directly to host.' - comment: 'New param' - name: security_group_api type: string default: 'nova' help: 'The full class name of the security API class' - comment: 'New param' - name: buckets_path - type: string + type: directory default: '$state_path/buckets' help: 'path to s3 buckets' - comment: 'New param' - name: s3_listen - type: string + type: host default: '0.0.0.0' help: 'IP address for S3 API to listen' - comment: 'New param' - name: s3_listen_port - type: integer + type: port default: 3333 help: 'port for s3 api to listen' comment: 'New param' - name: sqlite_db - type: string + type: file default: 'nova.sqlite' help: 'the filename to use with sqlite' - comment: 'New param' - name: sqlite_synchronous type: boolean default: true help: 'If true, use synchronous mode for sqlite' - comment: 'New param' - name: backdoor_port type: string @@ -1716,31 +1439,26 @@ type: boolean default: false help: 'Whether to disable inter-process locks' - comment: 'New param' - name: lock_path - type: string + type: directory default: ~ help: 'Directory to use for lock files.' - comment: 'New param' - name: debug type: boolean default: false help: 'Print debugging output' - comment: 'New param' - name: verbose type: boolean default: false help: 'Print more verbose output' - comment: 'New param' - name: use_stderr type: boolean default: true help: 'Log output to standard error' - comment: 'New param' - name: logging_context_format_string type: string @@ -1768,45 +1486,38 @@ - name: default_log_levels type: list - default: 'amqplibWARN,sqlalchemyWARN,botoWARN,sudsINFO,keystoneINFO,eventlet.wsgi.serverWARN' + default: ['amqplib=WARN', 'sqlalchemy=WARN', 'boto=WARN', 'suds=INFO', 'keystone=INFO', 'eventlet.wsgi.server=WARN'] help: 'list of logger=LEVEL pairs' - comment: 'New param' - name: publish_errors type: boolean default: false help: 'publish error events' - comment: 'New param' - name: fatal_deprecations type: boolean default: false help: 'make deprecations fatal' - comment: 'New param' - name: instance_format type: string default: '"[instance: %(uuid)s] "' help: 'If an instance is passed with the log message, format it like this' - comment: 'New param' - name: instance_uuid_format type: string default: '"[instance: %(uuid)s] "' help: 'If an instance UUID is passed with the log message, format it like this' - comment: 'New param' - name: log_config - type: string + type: file default: ~ help: 'If this option is specified, the logging configuration file specified is used and overrides any other logging options specified. Please see the Python logging module documentation for details on logging configuration files.' - comment: 'New param' - name: log_format type: string default: ~ help: '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.' - comment: 'New param' - name: log_date_format type: string @@ -1815,861 +1526,727 @@ comment: 'New param' - name: log_file - type: string + type: file default: ~ help: '(Optional) Name of log file to output to. If no default is set, logging will go to stdout.' - comment: 'New param' - name: log_dir - type: string + type: directory default: ~ help: '(Optional) The base directory used for relative --log-file paths' - comment: 'New param' - name: use_syslog type: boolean default: false help: 'Use syslog for logging.' - comment: 'New param' - name: syslog_log_facility type: string default: 'LOG_USER' help: 'syslog facility to receive log lines' - comment: 'New param' - name: memcached_servers type: list default: ~ help: 'Memcached servers or None for in process cache.' - comment: 'New param' - name: notification_driver type: multi default: '' help: 'Driver or drivers to handle sending notifications' - comment: 'New param' - name: default_notification_level - type: string + type: enum + type_args: {'values': ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']} default: 'INFO' help: 'Default notification level for outgoing notifications' - comment: 'New param' - name: default_publisher_id type: string default: ~ help: 'Default publisher_id for outgoing notifications' - comment: 'New param' - name: notification_topics type: list - default: 'notifications' + default: ['notifications'] help: 'AMQP topic used for OpenStack notifications' - comment: 'New param' - name: run_external_periodic_tasks type: boolean default: true help: 'Some periodic tasks can be run in a separate process. Should we run them here?' - comment: 'New param' - name: rpc_backend type: string default: 'nova.openstack.common.rpc.impl_kombu' help: 'The messaging module to use, defaults to kombu.' - comment: 'New param' - name: rpc_thread_pool_size type: integer default: 64 help: 'Size of RPC thread pool' - comment: 'New param' - name: rpc_conn_pool_size type: integer default: 30 help: 'Size of RPC connection pool' - comment: 'New param' - name: rpc_response_timeout type: integer default: 60 help: 'Seconds to wait for a response from call or multicall' - comment: 'New param' - name: rpc_cast_timeout type: integer default: 30 help: 'Seconds to wait before a cast expires' - comment: 'New param' - name: allowed_rpc_exception_modules type: list - default: 'nova.exception,cinder.exception,exceptions' + default: ['nova.exception', 'cinder.exception', 'exceptions'] help: 'Modules of exceptions that are permitted to be recreatedupon receiving exception data from an rpc call.' - comment: 'New param' - name: fake_rabbit type: boolean default: false help: 'If passed, use a fake RabbitMQ provider' - comment: 'New param' - name: control_exchange type: string default: 'openstack' help: 'AMQP exchange to connect to if using RabbitMQ or Qpid' - comment: 'New param' - name: amqp_durable_queues type: boolean default: false help: 'Use durable queues in amqp.' - comment: 'New param' - name: amqp_auto_delete type: boolean default: false help: 'Auto-delete queues in amqp.' - comment: 'New param' - name: kombu_ssl_version type: string default: '' help: 'SSL version to use' - comment: 'New param' - name: kombu_ssl_keyfile - type: string + type: file default: '' help: 'SSL key file' - comment: 'New param' - name: kombu_ssl_certfile - type: string + type: file default: '' help: 'SSL cert file' - comment: 'New param' - name: kombu_ssl_ca_certs - type: string + type: file default: '' help: 'SSL certification authority file' - comment: 'New param' - name: rabbit_host - type: string + type: host default: 'localhost' help: 'The RabbitMQ broker address where a single node is used' - comment: 'New param' + deprecated: 'Deprecated in favor of rabbit_hosts' - name: rabbit_port - type: integer + type: port default: 5672 help: 'The RabbitMQ broker port where a single node is used' - comment: 'New param' + deprecated: 'Deprecated in favor of rabbit_hosts' - name: rabbit_hosts type: list - default: '$rabbit_host:$rabbit_port' + default: ['$rabbit_host:$rabbit_port'] help: 'RabbitMQ HA cluster host:port pairs' - comment: 'New param' - name: rabbit_use_ssl type: boolean default: false help: 'connect over SSL for RabbitMQ' - comment: 'New param' - name: rabbit_userid type: string default: 'guest' help: 'the RabbitMQ userid' - comment: 'New param' - name: rabbit_password type: string default: 'guest' help: 'the RabbitMQ password' - comment: 'New param' - name: rabbit_virtual_host type: string default: '/' help: 'the RabbitMQ virtual host' - comment: 'New param' - name: rabbit_retry_interval type: integer - default: true + default: 1 help: 'how frequently to retry connecting with RabbitMQ' - comment: 'New param' - name: rabbit_retry_backoff type: integer default: 2 help: 'how long to backoff for between retries when connecting to RabbitMQ' - comment: 'New param' - name: rabbit_max_retries type: integer - default: false + default: 0 help: 'maximum retries with trying to connect to RabbitMQ' - comment: 'New param' - name: rabbit_ha_queues type: boolean default: false help: 'use H/A queues in RabbitMQ' - comment: 'New param' - name: qpid_hostname - type: string + type: host default: 'localhost' help: 'Qpid broker hostname' - comment: 'New param' + deprecated: 'Deprecated in favor of qpid_hosts' - name: qpid_port - type: integer + type: port default: 5672 help: 'Qpid broker port' - comment: 'New param' + deprecated: 'Deprecated in favor of qpid_hosts' - name: qpid_hosts type: list - default: '$qpid_hostname:$qpid_port' + default: ['$qpid_hostname:$qpid_port'] help: 'Qpid HA cluster host:port pairs' - comment: 'New param' - name: qpid_username type: string default: '' help: 'Username for qpid connection' - comment: 'New param' - name: qpid_password type: string default: '' help: 'Password for qpid connection' - comment: 'New param' - name: qpid_sasl_mechanisms type: string default: '' help: 'Space separated list of SASL mechanisms to use for auth' - comment: 'New param' - name: qpid_heartbeat type: integer default: 60 help: 'Seconds between connection keepalive heartbeats' - comment: 'New param' - name: qpid_protocol - type: string + type: enum + type_args: {'values': ['tcp', 'ssl']} default: 'tcp' help: "Transport to use, either 'tcp' or 'ssl'" - comment: 'New param' - name: qpid_tcp_nodelay type: boolean default: true help: 'Disable Nagle algorithm' - comment: 'New param' - name: qpid_topology_version type: integer - default: true + default: 1 help: '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.' - comment: 'New param' - name: rpc_zmq_bind_address type: string default: '*' help: 'ZeroMQ bind address. Should be a wildcard' - comment: 'New param' - name: rpc_zmq_matchmaker type: string default: 'nova.openstack.common.rpc.matchmaker.MatchMakerLocalhost' help: 'MatchMaker driver' - comment: 'New param' - name: rpc_zmq_port - type: integer + type: port default: 9501 help: 'ZeroMQ receiver listening port' - comment: 'New param' - name: rpc_zmq_contexts type: integer - default: true + default: 1 help: 'Number of ZeroMQ contexts, defaults to 1' - comment: 'New param' - name: rpc_zmq_topic_backlog type: integer default: ~ help: 'Maximum number of ingress messages to locally buffer per topic. Default is unlimited.' - comment: 'New param' - name: rpc_zmq_ipc_dir - type: string + type: directory default: '/var/run/openstack' help: 'Directory for holding IPC sockets' - comment: 'New param' - name: rpc_zmq_host - type: string + type: host default: 'nova' help: "Name of this node. Must be a valid hostname, FQDN, or IP address. Must match 'host' option, if running nova." - comment: 'New param' - name: matchmaker_heartbeat_freq type: integer default: 300 help: 'Heartbeat frequency' - comment: 'New param' - name: matchmaker_heartbeat_ttl type: integer default: 600 help: 'Heartbeat time-to-live.' - comment: 'New param' - name: pci_alias type: multi default: '' help: "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." - comment: 'New param' - name: pci_passthrough_whitelist type: multi default: '' help: "White list of PCI devices available to VMs. For example: pci_passthrough_whitelist = [{'vendor_id': '8086', 'product_id': '0443'}]" - comment: 'New param' - name: scheduler_host_manager type: string default: 'nova.scheduler.host_manager.HostManager' help: 'The scheduler host manager class to use' - comment: 'New param' - name: scheduler_max_attempts type: integer default: 3 help: 'Maximum number of attempts to schedule an instance' - comment: 'New param' - name: scheduler_host_subset_size type: integer - default: true + default: 1 help: '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' - comment: 'New param' - name: cpu_allocation_ratio type: float default: 16.0 help: '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.' - comment: 'New param' - name: disk_allocation_ratio type: float - default: true + default: 1.0 help: 'virtual disk to physical disk allocation ratio' - comment: 'New param' - name: max_io_ops_per_host type: integer default: 8 help: 'Ignore hosts that have too many builds/resizes/snaps/migrations' - comment: 'New param' - name: isolated_images type: list - default: '' + default: [] help: 'Images to run on isolated host' - comment: 'New param' - name: isolated_hosts type: list - default: '' + default: [] help: 'Host reserved for specific images' - comment: 'New param' - name: restrict_isolated_hosts_to_isolated_images type: boolean default: true help: 'Whether to force isolated hosts to run only isolated images' - comment: 'New param' - name: max_instances_per_host type: integer default: 50 help: 'Ignore hosts that have too many instances' - comment: 'New param' - name: ram_allocation_ratio type: float default: 1.5 help: '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.' - comment: 'New param' - name: scheduler_available_filters type: multi default: 'nova.scheduler.filters.all_filters' help: "Filter classes available to the scheduler which may be specified more than once. An entry of 'nova.scheduler.filters.standard_filters' maps to all filters included with nova." - comment: 'New param' - name: scheduler_default_filters type: list - default: 'RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter' + default: ['RetryFilter', 'AvailabilityZoneFilter', 'RamFilter', 'ComputeFilter', 'ComputeCapabilitiesFilter', 'ImagePropertiesFilter'] help: 'Which filter class names to use for filtering hosts when not specified in the request.' - comment: 'New param' - name: cells.scheduler_weight_classes type: list - default: 'nova.cells.weights.all_weighers' - help: "Weigher classes the cells scheduler should use. An entry of 'nova.cells.weights.all_weighers' maps to all cell weighers included with nova_2013_1_3." - comment: 'New param' + default: ['nova.cells.weights.all_weighers'] + help: "Weigher classes the cells scheduler should use. An entry of 'nova.cells.weights.all_weighers' maps to all cell weighers included with nova." - name: scheduler_driver type: string default: 'nova.scheduler.filter_scheduler.FilterScheduler' help: 'Default driver to use for the scheduler' - comment: 'New param' - name: scheduler_topic type: string default: 'scheduler' help: 'the topic scheduler nodes listen on' - comment: 'New param' - name: scheduler_json_config_location - type: string + type: file default: '' help: 'Absolute path to scheduler configuration JSON file.' - comment: 'New param' - name: cells.ram_weight_multiplier type: float default: 10.0 help: 'Multiplier used for weighing ram. Negative numbers mean to stack vs spread.' - comment: 'New param' - name: servicegroup_driver type: string default: 'db' help: 'The driver for servicegroup service' - comment: 'New param' - name: config_drive_format type: string default: 'iso9660' help: 'Config drive format. One of iso9660' - comment: 'New param' - name: config_drive_tempdir - type: string + type: directory default: ~ help: 'Where to put temporary files associated with config drive creation' - comment: 'New param' - name: force_config_drive type: string default: ~ help: 'Set to force injection to take place on a config drive' - comment: 'New param' - name: mkisofs_cmd type: string default: 'genisoimage' help: 'Name and optionally path of the tool used for ISO image creation' - comment: 'New param' - name: baremetal.injected_network_template - type: string + type: file default: '$pybasedir/nova/virt/baremetal/interfaces.template' help: 'Template file for injected network' - comment: 'New param' - name: virt_mkfs type: string default: 'windowsmkfs.ntfs --force --fast --label %(fs_label)s %(target)s' - comment: 'New param' - name: resize_fs_using_block_device type: boolean default: true help: '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' - comment: 'New param' - name: timeout_nbd type: integer default: 10 help: 'time to wait for a NBD device coming up' - comment: 'New param' - name: docker_registry_default_port - type: integer + type: port default: 5042 help: 'Default TCP port to find the docker-registry container' - comment: 'New param' - name: compute_driver type: string default: ~ help: 'Driver to use for controlling virtualization. Options include: libvirt.LibvirtDriver, xenapi.XenAPIDriver, fake.FakeDriver, baremetal.BareMetalDriver, vmwareapi.VMwareESXDriver, vmwareapi.VMwareVCDriver' - comment: 'New param' - name: default_ephemeral_format type: string default: ~ help: 'The default format an ephemeral_volume will be formatted with on creation.' - comment: 'New param' - name: preallocate_images - type: string + type: enum + type_args: {'values': ['none', 'space']} default: 'none' help: "VM image preallocation mode: 'none' => no storage provisioning is done up front, 'space' => storage is fully allocated at instance start" - comment: 'New param' - name: use_cow_images type: boolean default: true help: 'Whether to use cow images' - comment: 'New param' - name: firewall_driver type: string default: ~ help: 'Firewall driver' - comment: 'New param' - name: allow_same_net_traffic type: boolean default: true help: 'Whether to allow network traffic from same network' - comment: 'New param' - name: force_raw_images type: boolean default: true help: 'Force backing images to raw format' - comment: 'New param' - name: rescue_image_id type: string default: ~ help: 'Rescue ami image' - comment: 'New param' - name: rescue_kernel_id type: string default: ~ help: 'Rescue aki image' - comment: 'New param' - name: rescue_ramdisk_id type: string default: ~ help: 'Rescue ari image' - comment: 'New param' - name: libvirt_type type: string default: 'kvm' help: 'Libvirt domain type' - comment: 'New param' - name: libvirt_uri type: string default: '' help: 'Override the default libvirt URI' - comment: 'New param' - name: libvirt_inject_password type: boolean default: false help: 'Inject the admin password at boot time, without an agent.' - comment: 'New param' - name: libvirt_inject_key type: boolean default: true help: 'Inject the ssh public key at boot time' - comment: 'New param' - name: libvirt_inject_partition type: integer - default: true + default: 1 help: 'The partition to inject to : -2 => disable, -1 => inspect' - comment: 'New param' - name: use_usb_tablet type: boolean default: true help: 'Sync virtual and real mouse cursors in Windows VMs' - comment: 'New param' - name: live_migration_uri type: string default: 'qemu+tcp://%s/system' help: 'Migration target URI' - comment: 'New param' - name: live_migration_flag type: string default: 'VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER' help: 'Migration flags to be set for live migration' - comment: 'New param' - name: block_migration_flag type: string default: 'VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_NON_SHARED_INC' help: 'Migration flags to be set for block migration' - comment: 'New param' - name: live_migration_bandwidth type: integer - default: false + default: 0 help: 'Maximum bandwidth to be used during migration, in Mbps' - comment: 'New param' - name: snapshot_image_format type: string default: ~ help: 'Snapshot image format' - comment: 'New param' - name: libvirt_vif_driver type: string default: 'nova.virt.libvirt.vif.LibvirtGenericVIFDriver' help: 'The libvirt VIF driver to configure the VIFs.' - comment: 'New param' - name: libvirt_volume_drivers type: list - default: 'iscsinova.virt.libvirt.volume.LibvirtISCSIVolumeDriver,isernova.virt.libvirt.volume.LibvirtISERVolumeDriver,localnova.virt.libvirt.volume.LibvirtVolumeDriver,fakenova.virt.libvirt.volume.LibvirtFakeVolumeDriver,rbdnova.virt.libvirt.volume.LibvirtNetVolumeDriver,sheepdognova.virt.libvirt.volume.LibvirtNetVolumeDriver,nfsnova.virt.libvirt.volume.LibvirtNFSVolumeDriver,aoenova.virt.libvirt.volume.LibvirtAOEVolumeDriver,glusterfsnova.virt.libvirt.volume.LibvirtGlusterfsVolumeDriver,fibre_channelnova.virt.libvirt.volume.LibvirtFibreChannelVolumeDriver,scalitynova.virt.libvirt.volume.LibvirtScalityVolumeDriver' + default: ['iscsinova.virt.libvirt.volume.LibvirtISCSIVolumeDriver', 'isernova.virt.libvirt.volume.LibvirtISERVolumeDriver', 'localnova.virt.libvirt.volume.LibvirtVolumeDriver', 'fakenova.virt.libvirt.volume.LibvirtFakeVolumeDriver', 'rbdnova.virt.libvirt.volume.LibvirtNetVolumeDriver', 'sheepdognova.virt.libvirt.volume.LibvirtNetVolumeDriver', 'nfsnova.virt.libvirt.volume.LibvirtNFSVolumeDriver', 'aoenova.virt.libvirt.volume.LibvirtAOEVolumeDriver', 'glusterfsnova.virt.libvirt.volume.LibvirtGlusterfsVolumeDriver', 'fibre_channelnova.virt.libvirt.volume.LibvirtFibreChannelVolumeDriver', 'scalitynova.virt.libvirt.volume.LibvirtScalityVolumeDriver'] help: 'Libvirt handlers for remote volumes.' - comment: 'New param' - name: libvirt_disk_prefix type: string default: ~ help: 'Override the default disk prefix for the devices attached to a server, which is dependent on libvirt_type.' - comment: 'New param' - name: libvirt_wait_soft_reboot_seconds type: integer default: 120 help: '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.' - comment: 'New param' - name: libvirt_nonblocking type: boolean default: true help: 'Use a separated OS thread pool to realize non-blocking libvirt calls' - comment: 'New param' - name: libvirt_cpu_mode - type: string + type: enum + type_args: {'values': ['host-model', 'host-passthrough', 'custom', 'none']} default: ~ help: "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 libvirt_type='kvm|qemu', it will default to 'host-model', otherwise it will default to 'none'" - comment: 'New param' - name: libvirt_cpu_model type: string default: ~ help: 'Set to a named libvirt CPU model' - comment: 'New param' - name: libvirt_snapshots_directory - type: string + type: directory default: '$instances_path/snapshots' help: 'Location where libvirt driver will store snapshots before uploading them to image service' - comment: 'New param' - name: xen_hvmloader_path - type: string + type: executable default: '/usr/lib/xen/boot/hvmloader' help: 'Location where the Xen hvmloader is kept' comment: 'New param' - name: disk_cachemodes type: list - default: '' + default: [] help: "Specific cachemodes to use for different disk types e.g: ['file=directsync','block=none']" - comment: 'New param' - name: vcpu_pin_set type: string default: ~ help: "Which pcpus can be used by vcpus of instance e.g: '4-12,^8,15'" - comment: 'New param' - name: libvirt_images_type type: string default: 'default' help: '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.' - comment: 'New param' - name: libvirt_images_volume_group type: string default: ~ help: 'LVM Volume Group that is used for VM images, when you specify libvirt_images_type=lvm.' - comment: 'New param' - name: libvirt_sparse_logical_volumes type: boolean default: false help: 'Create sparse logical volumes' - comment: 'New param' - name: libvirt_lvm_snapshot_size type: integer default: 1000 help: 'The amount of storage' - comment: 'New param' - name: libvirt_images_rbd_pool type: string default: 'rbd' help: 'the RADOS pool in which rbd volumes are stored' - comment: 'New param' - name: libvirt_images_rbd_ceph_conf - type: string + type: file default: '' help: 'path to the ceph configuration file to use' - comment: 'New param' - name: base_dir_name type: string default: '_base' help: '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' - comment: 'New param' - name: image_info_filename_pattern type: string default: '$instances_path/$base_dir_name/%(image)s.info' help: 'Allows image information files to be stored in non-standard locations' - comment: 'New param' - name: remove_unused_base_images type: boolean default: true help: 'Should unused base images be removed?' - comment: 'New param' - name: remove_unused_kernels type: boolean default: false help: '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 enabled by default in future.' - comment: 'New param' - name: remove_unused_resized_minimum_age_seconds type: integer default: 3600 help: 'Unused resized base images younger than this will not be removed' - comment: 'New param' - name: remove_unused_original_minimum_age_seconds type: integer default: 86400 help: 'Unused unresized base images younger than this will not be removed' - comment: 'New param' - name: checksum_base_images type: boolean default: false help: 'Write a checksum for files in _base to disk' - comment: 'New param' - name: checksum_interval_seconds type: integer default: 3600 help: 'How frequently to checksum base images' - comment: 'New param' - name: libvirt_snapshot_compression type: boolean default: false help: 'Compress snapshot images when possible. This currently applies exclusively to qcow2 images' - comment: 'New param' - name: libvirt_ovs_bridge type: string default: 'br-int' help: 'Name of Integration Bridge used by Open vSwitch' - comment: 'New param' - name: libvirt_use_virtio_for_bridges type: boolean default: true help: 'Use virtio for bridge interfaces with KVM/QEMU' - comment: 'New param' - name: num_iscsi_scan_tries type: integer default: 3 help: 'number of times to rescan iSCSI target to find volume' - comment: 'New param' - name: num_iser_scan_tries type: integer default: 3 help: 'number of times to rescan iSER target to find volume' - comment: 'New param' - name: rbd_user type: string default: ~ help: 'the RADOS client name for accessing rbd volumes' - comment: 'New param' - name: rbd_secret_uuid type: string default: ~ help: 'the libvirt uuid of the secret for the rbd_uservolumes' - comment: 'New param' - name: nfs_mount_point_base - type: string + type: directory default: '$state_path/mnt' help: 'Dir where the nfs volume is mounted on the compute node' - comment: 'New param' - name: nfs_mount_options type: string default: ~ help: 'Mount options passed to the nfs client. See section of the nfs man page for details' - comment: 'New param' - name: num_aoe_discover_tries type: integer default: 3 help: 'number of times to rediscover AoE target to find volume' - comment: 'New param' - name: glusterfs_mount_point_base - type: string + type: directory default: '$state_path/mnt' help: 'Dir where the glusterfs volume is mounted on the compute node' - comment: 'New param' - name: libvirt_iscsi_use_multipath type: boolean default: false help: 'use multipath connection of the iSCSI volume' - comment: 'New param' - name: libvirt_iser_use_multipath type: boolean default: false help: 'use multipath connection of the iSER volume' - comment: 'New param' - name: scality_sofs_config type: string @@ -2678,70 +2255,59 @@ comment: 'New param' - name: scality_sofs_mount_point - type: string + type: directory default: '$state_path/scality' help: 'Base dir where Scality SOFS shall be mounted' - comment: 'New param' - name: qemu_allowed_storage_drivers type: list - default: '' + default: [] help: 'Protocols listed here will be accessed directly from QEMU. Currently supported protocols: [gluster]' - comment: 'New param' - name: powervm_mgr_type type: string default: 'ivm' help: 'PowerVM manager type' - comment: 'New param' - name: powervm_mgr type: string default: ~ help: 'PowerVM manager host or ip' - comment: 'New param' - name: powervm_mgr_user type: string default: ~ help: 'PowerVM manager user name' - comment: 'New param' - name: powervm_mgr_passwd type: string default: ~ help: 'PowerVM manager user password' - comment: 'New param' - name: powervm_img_remote_path - type: string + type: directory default: '/home/padmin' help: 'PowerVM image remote path where images will be moved. Make sure this path can fit your biggest image in glance' - comment: 'New param' - name: powervm_img_local_path - type: string + type: directory default: '/tmp' help: 'Local directory to download glance images to. Make sure this path can fit your biggest image in glance' - comment: 'New param' - name: agent_timeout type: integer default: 30 help: 'number of seconds to wait for agent reply' - comment: 'New param' - name: agent_version_timeout type: integer default: 300 help: 'number of seconds to wait for agent to be fully operational' - comment: 'New param' - name: agent_resetnetwork_timeout type: integer default: 60 help: 'number of seconds to wait for agent reply to resetnetwork request' - comment: 'New param' - name: xenapi_agent_path type: string @@ -2753,1066 +2319,891 @@ type: boolean default: false help: 'Disables the use of the XenAPI agent in any image regardless of what image properties are present. ' - comment: 'New param' - name: xenapi_use_agent_default type: boolean default: false help: "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." - comment: 'New param' - name: xenapi_connection_url type: string default: ~ help: 'URL for connection to XenServer/Xen Cloud Platform. A special value of unix://local can be used to connect to the local unix socket. Required if compute_driver=xenapi.XenAPIDriver' - comment: 'New param' - name: xenapi_connection_username type: string default: 'root' help: 'Username for connection to XenServer/Xen Cloud Platform. Used only if compute_driver=xenapi.XenAPIDriver' - comment: 'New param' - name: xenapi_connection_password type: string default: ~ help: 'Password for connection to XenServer/Xen Cloud Platform. Used only if compute_driver=xenapi.XenAPIDriver' - comment: 'New param' - name: xenapi_connection_concurrent type: integer default: 5 help: 'Maximum number of concurrent XenAPI connections. Used only if compute_driver=xenapi.XenAPIDriver' - comment: 'New param' - name: xenapi_vhd_coalesce_poll_interval type: float default: 5.0 help: 'The interval used for polling of coalescing vhds. Used only if compute_driver=xenapi.XenAPIDriver' - comment: 'New param' - name: xenapi_check_host type: boolean default: true help: 'Ensure compute service is running on host XenAPI connects to.' - comment: 'New param' - name: xenapi_vhd_coalesce_max_attempts type: integer default: 5 help: 'Max number of times to poll for VHD to coalesce. Used only if compute_driver=xenapi.XenAPIDriver' - comment: 'New param' - name: xenapi_sr_base_path - type: string + type: directory default: '/var/run/sr-mount' help: 'Base path to the storage repository' - comment: 'New param' - name: target_host - type: string + type: host default: ~ help: 'iSCSI Target Host' - comment: 'New param' - name: target_port - type: string - default: '3260' + type: port + default: 3260 help: 'iSCSI Target Port, 3260 Default' - comment: 'New param' - name: iqn_prefix type: string default: 'iqn.2010-10.org.openstack' help: 'IQN Prefix' - comment: 'New param' - name: xenapi_remap_vbd_dev type: boolean default: false help: 'Used to enable the remapping of VBD dev' - comment: 'New param' - name: xenapi_remap_vbd_dev_prefix type: string default: 'sd' help: 'Specify prefix to remap VBD dev to' - comment: 'New param' - name: xenapi_login_timeout type: integer default: 10 help: 'Timeout in seconds for XenAPI login.' - comment: 'New param' - name: xenapi_torrent_base_url type: string default: ~ help: 'Base URL for torrent files.' - comment: 'New param' - name: xenapi_torrent_seed_chance type: float - default: true + default: 1.0 help: 'Probability that peer will become a seeder.' - comment: 'New param' - name: xenapi_torrent_seed_duration type: integer default: 3600 help: 'Number of seconds after downloading an image via BitTorrent that it should be seeded for other peers.' - comment: 'New param' - name: xenapi_torrent_max_last_accessed type: integer default: 86400 help: 'Cached torrent files not accessed within this number of seconds can be reaped' - comment: 'New param' - name: xenapi_torrent_listen_port_start - type: integer + type: port default: 6881 help: 'Beginning of port range to listen on' - comment: 'New param' - name: xenapi_torrent_listen_port_end - type: integer + type: port default: 6891 help: 'End of port range to listen on' - comment: 'New param' - name: xenapi_torrent_download_stall_cutoff type: integer default: 600 help: 'Number of seconds a download can remain at the same progress percentage w/o being considered a stall' - comment: 'New param' - name: xenapi_torrent_max_seeder_processes_per_host type: integer default: true help: 'Maximum number of seeder processes to run concurrently within a given dom0.' - comment: 'New param' - name: use_join_force type: boolean default: true help: 'To use for hosts with different CPUs' - comment: 'New param' - name: xenapi_ovs_integration_bridge type: string default: 'xapi1' help: 'Name of Integration Bridge used by Open vSwitch' - comment: 'New param' - name: cache_images type: string default: 'all' help: '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' - comment: 'New param' - name: xenapi_image_compression_level type: integer default: ~ help: 'Compression level for images, e.g., 9 for gzip -9. Range is 1-9, 9 being most compressed but most CPU intensive on dom0.' - comment: 'New param' - name: default_os_type type: string default: 'linux' help: 'Default OS type' - comment: 'New param' - name: block_device_creation_timeout type: integer default: 10 help: 'Time to wait for a block device to be created' - comment: 'New param' - name: max_kernel_ramdisk_size type: integer default: 16777216 help: 'Maximum size in bytes of kernel or ramdisk images' - comment: 'New param' - name: sr_matching_filter type: string default: 'default-sr:true' help: 'Filter for finding the SR to be used to install guest instances on. To use the Local Storage in default XenServer/XCP installations set this flag to other-config :i18n-key=local-storage. To select an SR with a different matching criteria, you could set it to other- config:my_favorite_sr=true. On the other hand, to fall back on the Default SR, as displayed by XenCenter, set this flag to: default-sr:true' - comment: 'New param' - name: xenapi_sparse_copy type: boolean default: true help: 'Whether to use sparse_copy for copying data on a resize down' - comment: 'New param' - name: xenapi_num_vbd_unplug_retries type: integer default: 10 help: 'Maximum number of retries to unplug VBD' - comment: 'New param' - name: xenapi_torrent_images type: string default: 'none' help: 'Whether or not to download images via Bit Torrent' - comment: 'New param' - name: xenapi_ipxe_network_name type: string default: ~ help: 'Name of network to use for booting iPXE ISOs' - comment: 'New param' - name: xenapi_ipxe_boot_menu_url type: string default: ~ help: 'URL to the iPXE boot menu' - comment: 'New param' - name: xenapi_ipxe_mkisofs_cmd type: string default: 'mkisofs' help: 'Name and optionally path of the tool used for ISO image creation' - comment: 'New param' - name: xenapi_running_timeout type: integer default: 60 help: 'number of seconds to wait for instance to go to running state' - comment: 'New param' - name: xenapi_vif_driver type: string default: 'nova.virt.xenapi.vif.XenAPIBridgeDriver' help: 'The XenAPI VIF driver using XenServer Network APIs.' - comment: 'New param' - name: xenapi_image_upload_handler type: string default: 'nova.virt.xenapi.image.glance.GlanceStore' help: 'Dom0 plugin driver used to handle image uploads.' - comment: 'New param' - name: novncproxy_base_url type: string default: 'http://127.0.0.1:6080/vnc_auto.html' help: "location of vnc console proxy, in the form 'http://127.0.0.1:6080/vnc_auto.html'" - comment: 'New param' - name: xvpvncproxy_base_url type: string default: 'http://127.0.0.1:6081/console' help: "location of nova xvp vnc console proxy, in the form 'http://127.0.0.1:6081/console'" - comment: 'New param' - name: vncserver_listen - type: string + type: host default: '127.0.0.1' help: 'IP address on which instance vncservers should listen' - comment: 'New param' - name: vncserver_proxyclient_address - type: string + type: host default: '127.0.0.1' help: 'the address to which proxy clients' - comment: 'New param' - name: vnc_enabled type: boolean default: true help: 'enable vnc related features' - comment: 'New param' - name: vnc_keymap type: string default: 'en-us' help: 'keymap for vnc' - comment: 'New param' - name: xvpvncproxy_port - type: integer + type: port default: 6081 help: 'Port that the XCP VNC proxy should bind to' - comment: 'New param' - name: xvpvncproxy_host - type: string + type: host default: '0.0.0.0' help: 'Address that the XCP VNC proxy should bind to' - comment: 'New param' - name: volume_api_class type: string default: 'nova.volume.cinder.API' help: 'The full class name of the volume API class to use' - comment: 'New param' - name: cinder_catalog_info type: string default: 'volume:cinder:publicURL' help: 'Info to match when looking for cinder in the service catalog. Format is : separated values of the form: ::' - comment: 'New param' - name: cinder_endpoint_template type: string default: ~ help: 'Override service catalog lookup with template for cinder endpoint e.g. http://localhost:8776/v1/%(project_id)s' - comment: 'New param' - name: os_region_name type: string default: ~ help: 'region name of this node' - comment: 'New param' - name: cinder_ca_certificates_file - type: string + type: file default: ~ help: 'Location of ca certicates file to use for cinder client requests.' - comment: 'New param' - name: cinder_http_retries type: integer default: 3 help: 'Number of cinderclient retries on failed http calls' - comment: 'New param' - name: cinder_api_insecure type: boolean default: false help: 'Allow to perform insecure SSL requests to cinder' - comment: 'New param' - name: cinder_cross_az_attach type: boolean default: true help: 'Allow attach between instance and volume in different availability zones.' - comment: 'New param' - name: baremetal.sql_connection type: string default: 'sqlite:///$state_path/baremetal_$sqlite_db' help: 'The SQLAlchemy connection string used to connect to the bare-metal database' - comment: 'New param' - name: hyperv.instances_path_share type: string default: '' help: "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" - comment: 'New param' - name: hyperv.force_hyperv_utils_v1 type: boolean default: false help: 'Force V1 WMI utility classes' - comment: 'New param' - name: hyperv.force_volumeutils_v1 type: boolean default: false help: 'Force V1 volume utility class' - comment: 'New param' - name: hyperv.vswitch_name type: string default: ~ help: 'External virtual switch Name, if not provided, the first external virtual switch is used' - comment: 'New param' - name: hyperv.limit_cpu_features type: boolean default: false help: 'Required for live migration among hosts with different CPU features' - comment: 'New param' - name: hyperv.config_drive_inject_password type: boolean default: false help: 'Sets the admin password in the config drive image' - comment: 'New param' - name: hyperv.qemu_img_cmd type: string default: 'qemu-img.exe' help: 'qemu-img is used to convert between different image types' - comment: 'New param' - name: hyperv.config_drive_cdrom type: boolean default: false help: 'Attaches the Config Drive image as a cdrom drive instead of a disk drive' - comment: 'New param' - name: hyperv.enable_instance_metrics_collection type: boolean default: false help: "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" - comment: 'New param' - name: hyperv.dynamic_memory_ratio type: float default: true help: 'Enables dynamic memory allocation' - comment: 'New param' - name: hyperv.volume_attach_retry_count type: integer default: 10 help: 'The number of times to retry to attach a volume' - comment: 'New param' - name: hyperv.volume_attach_retry_interval type: integer default: 5 help: 'Interval between volume attachment attempts, in seconds' - comment: 'New param' - name: zookeeper.address type: string default: ~ help: 'The ZooKeeper addresses for servicegroup service in the format of host1:port,host2:port,host3:port' - comment: 'New param' - name: zookeeper.recv_timeout type: integer default: 4000 help: 'recv_timeout parameter for the zk session' - comment: 'New param' - name: zookeeper.sg_prefix type: string default: '/servicegroups' help: 'The prefix used in ZooKeeper to store ephemeral nodes' - comment: 'New param' - name: zookeeper.sg_retry_interval type: integer default: 5 help: 'Number of seconds to wait until retrying to join the session' - comment: 'New param' - name: spice.enabled type: boolean default: false help: 'enable spice related features' - comment: 'New param' - name: osapi_v3.extensions_blacklist type: list - default: '' + default: [] help: 'A list of v3 API extensions to never load. Specify the extension aliases here.' - comment: 'New param' - name: osapi_v3.extensions_whitelist type: list - default: '' + default: [] help: '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.' - comment: 'New param' - name: conductor.use_local type: boolean default: false help: 'Perform nova-conductor operations locally' - comment: 'New param' - name: cells.topic type: string default: 'cells' help: 'the topic cells nodes listen on' - comment: 'New param' - name: cells.manager type: string default: 'nova.cells.manager.CellsManager' help: 'Manager for cells' - comment: 'New param' - name: conductor.workers type: integer default: ~ help: 'Number of workers for OpenStack Conductor service' - comment: 'New param' - name: keymgr.api_class type: string default: 'nova.keymgr.conf_key_mgr.ConfKeyManager' help: 'The full class name of the key manager API class' - comment: 'New param' - name: keymgr.fixed_key type: string default: ~ help: 'Fixed key returned by key manager, specified in hex' - comment: 'New param' - name: baremetal.driver type: string default: 'nova.virt.baremetal.pxe.PXE' help: 'Baremetal driver back-end' - comment: 'New param' - name: cells.instance_updated_at_threshold type: integer default: 3600 help: 'Number of seconds after an instance was updated or deleted to continue to update cells' - comment: 'New param' - name: cells.instance_update_num_instances type: integer default: true help: 'Number of instances to update per periodic task run' - comment: 'New param' - name: cells.max_hop_count type: integer default: 10 help: 'Maximum number of hops for cells routing.' - comment: 'New param' - name: upgrade_levels.scheduler type: string default: ~ help: 'Set a version cap for messages sent to scheduler services' - comment: 'New param' - name: cells.enable type: boolean default: false help: 'Enable cell functionality' - comment: 'New param' - name: cells.name type: string default: 'nova' help: 'name of this cell' - comment: 'New param' - name: cells.capabilities type: list - default: 'hypervisorxenserver;kvm,oslinux;windows' + default: ['hypervisorxenserver;kvm', 'oslinux;windows'] help: 'Key/Multi-value list with the capabilities of the cell' - comment: 'New param' - name: cells.call_timeout type: integer default: 60 help: 'Seconds to wait for response from a call to a cell.' - comment: 'New param' - name: cells.reserve_percent type: float default: 10.0 help: 'Percentage of cell capacity to hold in reserve. Affects both memory and disk utilization' - comment: 'New param' - name: cells.cell_type - type: string + type: enum + type_args: {'values': ['api', 'compute']} default: ~ help: 'Type of cell: api or compute' - comment: 'New param' - name: cells.mute_child_interval type: integer default: 300 help: 'Number of seconds after which a lack of capability and capacity updates signals the child cell is to be treated as a mute.' - comment: 'New param' - name: cells.bandwidth_update_interval type: integer default: 600 help: 'Seconds between bandwidth updates for cells.' - comment: 'New param' - name: cells.rpc_driver_queue_base type: string default: 'cells.intercell' help: 'Base queue name to use when communicating between cells. Various topics by message type will be appended to this.' - comment: 'New param' - name: cells.scheduler_filter_classes type: list - default: 'nova.cells.filters.all_filters' - help: "Filter classes the cells scheduler should use. An entry of 'nova.cells.filters.all_filters' maps to all cells filters included with nova_2013_1_3." - comment: 'New param' + default: ['nova.cells.filters.all_filters'] + help: "Filter classes the cells scheduler should use. An entry of 'nova.cells.filters.all_filters' maps to all cells filters included with nova." - name: cells.scheduler_retries type: integer default: 10 help: 'How many retries when no cells are available.' - comment: 'New param' - name: cells.scheduler_retry_delay type: integer default: 2 help: 'How often to retry in seconds when no cells are available.' - comment: 'New param' - name: cells.db_check_interval type: integer default: 60 help: 'Seconds between getting fresh cell info from db.' - comment: 'New param' - name: cells.cells_config - type: string + type: file default: ~ help: 'Configuration file from which to read cells configuration. If given, overrides reading cells from the database.' - comment: 'New param' - name: cells.mute_weight_multiplier type: float default: -10.0 help: 'Multiplier used to weigh mute children. ' - comment: 'New param' - name: cells.mute_weight_value type: float default: 1000.0 help: 'Weight value assigned to mute children. ' - comment: 'New param' - name: database.backend type: string default: 'sqlalchemy' help: 'The backend to use for db' - comment: 'New param' - name: database.use_tpool type: boolean default: false help: 'Enable the experimental use of thread pooling for all DB API calls' - comment: 'New param' - name: database.connection type: string default: 'sqlite:////nova/openstack/common/db/$sqlite_db' help: 'The SQLAlchemy connection string used to connect to the database' - comment: 'New param' - name: database.slave_connection type: string default: '' help: 'The SQLAlchemy connection string used to connect to the slave database' - comment: 'New param' - name: database.idle_timeout type: integer default: 3600 help: 'timeout before idle sql connections are reaped' - comment: 'New param' - name: database.min_pool_size type: integer - default: true + default: 1 help: 'Minimum number of SQL connections to keep open in a pool' - comment: 'New param' - name: database.max_pool_size type: integer default: ~ help: 'Maximum number of SQL connections to keep open in a pool' - comment: 'New param' - name: database.max_retries type: integer default: 10 help: 'maximum db connection retries during startup.' - comment: 'New param' - name: database.retry_interval type: integer default: 10 help: 'interval between retries of opening a sql connection' - comment: 'New param' - name: database.max_overflow type: integer default: ~ help: 'If set, use this value for max_overflow with sqlalchemy' - comment: 'New param' - name: database.connection_debug type: integer - default: false + default: 0 help: 'Verbosity of SQL debugging information. 0=None, 100=Everything' - comment: 'New param' - name: database.connection_trace type: boolean default: false help: 'Add python stack traces to SQL as comment strings' - comment: 'New param' - name: database.pool_timeout type: integer default: ~ help: 'If set, use this value for pool_timeout with sqlalchemy' - comment: 'New param' - name: image_file_url.filesystems type: list - default: '' + default: [] help: 'A list of filesystems that will be configured in this file under the sections image_file_url:' - comment: 'New param' - name: baremetal.db_backend type: string default: 'sqlalchemy' help: 'The backend to use for bare-metal database' - comment: 'New param' - name: baremetal.inject_password type: boolean default: true help: 'Whether baremetal compute injects password or not' - comment: 'New param' - name: baremetal.vif_driver type: string default: 'nova.virt.baremetal.vif_driver.BareMetalVIFDriver' help: 'Baremetal VIF driver.' - comment: 'New param' - name: baremetal.volume_driver type: string default: 'nova.virt.baremetal.volume_driver.LibvirtVolumeDriver' help: 'Baremetal volume driver.' - comment: 'New param' - name: baremetal.instance_type_extra_specs type: list - default: '' + default: [] help: "a list of additional capabilities corresponding to instance_type_extra_specs for this compute host to advertise. Valid entries are name=value, pairsFor example, 'key1:val1, key2:val2'" - comment: 'New param' - name: baremetal.power_manager type: string default: 'nova.virt.baremetal.ipmi.IPMI' help: 'Baremetal power management method' - comment: 'New param' - name: baremetal.tftp_root - type: string + type: directory default: '/tftpboot' help: "Baremetal compute node's tftp root path" - comment: 'New param' - name: baremetal.terminal - type: string + type: executable default: 'shellinaboxd' help: 'path to baremetal terminal program' - comment: 'New param' - name: baremetal.terminal_cert_dir - type: string + type: directory default: ~ help: 'path to baremetal terminal SSL cert(PEM)' - comment: 'New param' - name: baremetal.terminal_pid_dir - type: string + type: directory default: '$state_path/baremetal/console' help: 'path to directory stores pidfiles of baremetal_terminal' - comment: 'New param' - name: baremetal.ipmi_power_retry type: integer default: 5 help: 'maximal number of retries for IPMI operations' - comment: 'New param' - name: baremetal.deploy_kernel type: string default: ~ help: 'Default kernel image ID used in deployment phase' - comment: 'New param' - name: baremetal.deploy_ramdisk type: string default: ~ help: 'Default ramdisk image ID used in deployment phase' - comment: 'New param' - name: baremetal.net_config_template - type: string + type: file default: '$pybasedir/nova/virt/baremetal/net-dhcp.ubuntu.template' help: 'Template file for injected network config' - comment: 'New param' - name: baremetal.pxe_append_params type: string default: ~ help: 'additional append parameters for baremetal PXE boot' - comment: 'New param' - name: baremetal.pxe_config_template - type: string + type: file default: '$pybasedir/nova/virt/baremetal/pxe_config.template' help: 'Template file for PXE configuration' - comment: 'New param' - name: baremetal.pxe_deploy_timeout type: integer - default: false + default: 0 help: 'Timeout for PXE deployments. Default: 0' - comment: 'New param' - name: baremetal.pxe_network_config type: boolean default: false help: 'If set, pass the network configuration details to the initramfs via cmdline.' - comment: 'New param' - name: baremetal.pxe_bootfile_name type: string default: 'pxelinux.0' help: 'This gets passed to Neutron as the bootfile dhcp parameter when the dhcp_options_enabled is set.' - comment: 'New param' - name: baremetal.tile_pdu_ip - type: string + type: host default: '10.0.100.1' help: 'ip address of tilera pdu' - comment: 'New param' - name: baremetal.tile_pdu_mgr type: string default: '/tftpboot/pdu_mgr' help: 'management script for tilera pdu' - comment: 'New param' - name: baremetal.tile_pdu_off type: integer default: 2 help: 'power status of tilera PDU is OFF' - comment: 'New param' - name: baremetal.tile_pdu_on type: integer - default: true + default: 1 help: 'power status of tilera PDU is ON' - comment: 'New param' - name: baremetal.tile_pdu_status type: integer default: 9 help: 'power status of tilera PDU' - comment: 'New param' - name: baremetal.tile_power_wait type: integer default: 9 help: 'wait time in seconds until check the result after tilera power operations' - comment: 'New param' - name: baremetal.virtual_power_ssh_host - type: string + type: host default: '' help: 'ip or name to virtual power host' - comment: 'New param' - name: baremetal.virtual_power_ssh_port - type: integer + type: port default: 22 help: 'Port to use for ssh to virtual power host' - comment: 'New param' - name: baremetal.virtual_power_type - type: string + type: enum + type_args: {'values': ['vbox', 'virsh']} default: 'virsh' help: 'base command to use for virtual power(vbox,virsh)' - comment: 'New param' - name: baremetal.virtual_power_host_user type: string default: '' help: 'user to execute virtual power commands as' - comment: 'New param' - name: baremetal.virtual_power_host_pass type: string default: '' help: 'password for virtual power host_user' - comment: 'New param' - name: baremetal.virtual_power_host_key - type: string + type: file default: ~ help: 'ssh key for virtual power host_user' - comment: 'New param' - name: baremetal.use_unsafe_iscsi type: boolean default: false help: 'Do not set this out of dev/test environments. If a node does not have a fixed PXE IP address, volumes are exported with globally opened ACL' - comment: 'New param' - name: baremetal.iscsi_iqn_prefix type: string default: 'iqn.2010-10.org.openstack.baremetal' help: 'iSCSI IQN prefix used in baremetal volume connections.' - comment: 'New param' - name: rpc_notifier2.topics type: list - default: 'notifications' + default: ['notifications'] help: 'AMQP topic(s) used for OpenStack notifications' - comment: 'New param' - name: matchmaker_redis.port - type: integer + type: port default: 6379 help: 'Use this port to connect to redis host.' - comment: 'New param' - name: matchmaker_redis.password type: string default: ~ help: 'Password for Redis server.' - comment: 'New param' - name: ssl.cert_file - type: string + type: file default: ~ help: 'Certificate file to use when starting the server securely' - comment: 'New param' - name: trusted_computing.attestation_server type: string default: ~ help: 'attestation server http' - comment: 'New param' - name: trusted_computing.attestation_server_ca_file - type: string + type: file default: ~ help: 'attestation server Cert file for Identity verification' - comment: 'New param' - name: trusted_computing.attestation_port - type: string - default: '8443' + type: port + default: 8443 help: 'attestation server port' - comment: 'New param' - name: trusted_computing.attestation_api_url type: string default: '/OpenAttestationWebServices/V1.0' help: 'attestation web API URL' - comment: 'New param' - name: trusted_computing.attestation_auth_blob type: string default: ~ help: 'attestation authorization blob - must change' - comment: 'New param' - name: trusted_computing.attestation_auth_timeout type: integer default: 60 help: 'Attestation status cache valid period length' - comment: 'New param' - name: upgrade_levels.baseapi type: string default: ~ help: 'Set a version cap for messages sent to the base api in any service' - comment: 'New param' - name: upgrade_levels.intercell type: string default: ~ help: 'Set a version cap for messages sent between cells services' - comment: 'New param' - name: upgrade_levels.cells type: string default: ~ help: 'Set a version cap for messages sent to local cells services' - comment: 'New param' - name: upgrade_levels.compute type: string default: ~ help: 'Set a version cap for messages sent to compute services' - comment: 'New param' - name: upgrade_levels.conductor type: string default: ~ help: 'Set a version cap for messages sent to conductor services' - comment: 'New param' - name: upgrade_levels.console type: string default: ~ help: 'Set a version cap for messages sent to console services' - comment: 'New param' - name: upgrade_levels.consoleauth type: string default: ~ help: 'Set a version cap for messages sent to consoleauth services' - comment: 'New param' - name: upgrade_levels.network type: string default: ~ help: 'Set a version cap for messages sent to network services' - comment: 'New param' - name: matchmaker_ring.ringfile - type: string + type: file default: '/etc/oslo/matchmaker_ring.json' help: 'Matchmaker ring file' - comment: 'New param' - name: vmware.host_ip - type: string + type: host default: ~ help: 'URL for connection to VMware ESX/VC host. Required if compute_driver is vmwareapi.VMwareESXDriver or vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmware.host_username type: string default: ~ help: 'Username for connection to VMware ESX/VC host. Used only if compute_driver is vmwareapi.VMwareESXDriver or vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmware.host_password type: string default: ~ help: 'Password for connection to VMware ESX/VC host. Used only if compute_driver is vmwareapi.VMwareESXDriver or vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmware.cluster_name type: multi default: ~ help: 'Name of a VMware Cluster ComputeResource. Used only if compute_driver is vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmware.datastore_regex - type: string + type: regex default: ~ help: 'Regex to match the name of a datastore. Used only if compute_driver is vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmware.task_poll_interval type: float default: 5.0 help: 'The interval used for polling of remote tasks. Used only if compute_driver is vmwareapi.VMwareESXDriver or vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmware.api_retry_count type: integer default: 10 help: 'The number of times we retry on failures, e.g., socket error, etc. Used only if compute_driver is vmwareapi.VMwareESXDriver or vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmware.vnc_port - type: integer + type: port default: 5900 help: 'VNC starting port' comment: 'New param' @@ -3821,67 +3212,56 @@ type: integer default: 10000 help: 'Total number of VNC ports' - comment: 'New param' - name: vmware.vnc_password type: string default: ~ help: 'VNC password' - comment: 'New param' - name: vmware.use_linked_clone type: boolean default: true help: 'Whether to use linked clone' - comment: 'New param' - name: vmware.wsdl_location type: string default: ~ help: 'Optional VIM Service WSDL Location e.g http:///vimService.wsdl. Optional over-ride to default location for bug work-arounds' - comment: 'New param' - name: vmware.maximum_objects type: integer default: 100 help: '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.' - comment: 'New param' - name: vmware.integration_bridge type: string default: 'br-int' help: 'Name of Integration Bridge' - comment: 'New param' - name: spice.html5proxy_base_url type: string default: 'http://127.0.0.1:6082/spice_auto.html' help: "location of spice html5 console proxy, in the form 'http://127.0.0.1:6082/spice_auto.html'" - comment: 'New param' - name: spice.server_listen - type: string + type: host default: '127.0.0.1' help: 'IP address on which instance spice server should listen' - comment: 'New param' - name: spice.server_proxyclient_address - type: string + type: host default: '127.0.0.1' help: 'the address to which proxy clients' - comment: 'New param' - name: spice.agent_enabled type: boolean default: true help: 'enable spice guest agent support' - comment: 'New param' - name: 'filter:authtoken.keymap' - type: string + type: host default: '127.0.0.1' help: 'keymap for spice' - comment: 'New param' # ==================================================== @@ -3889,71 +3269,31 @@ added: - name: ca_file - type: string + type: file default: 'cacert.pem' help: 'Filename of root CA' - comment: 'New param' - name: key_file - type: string + type: file default: 'private/cakey.pem' help: 'Filename of private key' - comment: 'New param' - name: host type: string default: 'nova' help: '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' - comment: 'New param' - name: notify_on_any_change type: boolean default: false help: 'If set, send compute.instance.update notifications on instance state changes. Valid values are False for no notifications, True for notifications on any instance changes.' - comment: 'New param' - - - name: notify_on_state_change - type: string - default: ~ - help: "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." - comment: 'Default value has changed' - name: bindir - type: string + type: directory default: '$pybasedir/bin' help: 'Directory where nova binaries are installed' comment: 'Default value has changed' - - name: enabled_apis - type: list - default: ['ec2', 'osapi_compute', 'metadata'] - help: 'a list of APIs to enable by default' - comment: 'Default value has changed' - - - name: enabled_ssl_apis - type: list - default: [] - help: 'a list of APIs with enabled SSL' - comment: 'Default value has changed' - - - name: ec2_listen_port - type: port - default: 8773 - help: 'port for ec2 api to listen' - comment: 'Type has changed' - - - name: osapi_compute_listen_port - type: port - default: 8774 - help: 'list port for osapi compute' - comment: 'Type has changed' - - - name: metadata_listen_port - type: port - default: 8775 - help: 'port for metadata api to listen' - comment: 'Type has changed' - - name: monkey_patch_modules type: list default: ['nova.api.ec2.cloud:nova.openstack.common.notifier.api.notify_decorator', 'nova.compute.api:nova.openstack.common.notifier.api.notify_decorator'] @@ -3966,47 +3306,15 @@ help: 'whether to rate limit the api' comment: 'Default value has changed' - - name: ec2_host - type: host - default: '$my_ip' - help: 'the ip of the ec2 api server' - comment: 'Type has changed' - - - name: ec2_dmz_host - type: host - default: '$my_ip' - help: 'the internal ip of the ec2 api server' - comment: 'Type has changed' - - - name: ec2_port - type: port - default: 8773 - help: 'the port of the ec2 api server' - comment: 'Type has changed' - - - name: region_list - type: list - default: [] - help: 'list of region=fqdn pairs separated by commas' - comment: 'Default value has changed' - - name: service_quantum_metadata_proxy type: boolean default: false help: 'Set flag to indicate Quantum will proxy metadata requests and resolve instance ids.' - comment: 'New param' - name: quantum_metadata_proxy_shared_secret type: string default: '' help: 'Shared secret to validate proxies Quantum metadata requests' - comment: 'New param' - - - name: osapi_compute_ext_list - type: list - default: [] - help: 'Specify list of extensions to load when using osapi_compute_extension option with nova.api.openstack.compute.contrib.select_extensions' - comment: 'Default value has changed' - name: osapi_hide_server_address_states type: list @@ -4024,142 +3332,46 @@ type: boolean default: false help: 'Control for checking for default networks' - comment: 'New param' - name: quantum_default_tenant_id type: string default: 'default' help: 'Default tenant id when creating quantum networks' - comment: 'New param' - name: vpn_instance_type type: string default: 'm1.tiny' help: 'Instance type for vpn instances' - comment: 'New param' - - - name: dmz_net - type: network - default: '10.0.0.0' - help: 'Network to push into openvpn config' - comment: 'Type has changed' - - - name: dmz_mask - type: network_mask - default: '255.255.255.0' - help: 'Netmask to push into openvpn config' - comment: 'Type has changed' - - - name: non_inheritable_image_properties - type: list - default: ['cache_in_nova', 'bittorrent'] - help: 'These are image properties which a snapshot should not inherit from an instance' - comment: 'Default value has changed' - name: default_instance_type type: string default: 'm1.small' help: 'default instance type to use, testing only' - comment: 'New param' - - - name: console_vmrc_port - type: port - default: 443 - help: 'port for VMware VMRC connections' - comment: 'Type has changed' - - - name: console_xvp_multiplex_port - type: port - default: 5900 - help: 'port for XVP to multiplex VNC connections on' - comment: 'Type has changed' - - - name: glance_port - type: port - default: 9292 - help: 'default glance port' - comment: 'Type has changed' - - - name: glance_api_servers - type: list - default: ['$glance_host:$glance_port'] - help: 'A list of the glance api servers available to nova. Prefix with https:// for ssl-based glance api servers.' - comment: 'Default value has changed' - - - name: allowed_direct_url_schemes - type: list - default: [] - help: 'A list of url scheme that can be downloaded directly via the direct_url. Currently supported schemes: [file].' - comment: 'Default value has changed' - name: s3_host - type: string + type: host default: '$my_ip' help: 'hostname or ip for openstack to use when accessing the s3 api' comment: 'Help string has changed' - - name: s3_port - type: port - default: 3333 - help: 'port used when accessing the s3 api' - comment: 'Type has changed' - - - name: ldap_dns_soa_refresh - type: integer - default: 1800 - help: 'Refresh interval' - comment: 'Type has changed' - - - name: ldap_dns_soa_retry - type: integer - default: 3600 - help: 'Retry interval' - comment: 'Type has changed' - - - name: ldap_dns_soa_expiry - type: integer - default: 86400 - help: 'Expiry interval' - comment: 'Type has changed' - - - name: ldap_dns_soa_minimum - type: integer - default: 7200 - help: 'Minimum interval' - comment: 'Type has changed' - - - name: dmz_cidr - type: list - default: [] - help: 'A list of dmz range that should be accepted' - comment: 'Default value has changed' - - - name: metadata_port - type: port - default: 8775 - help: 'the port for the metadata api port' - comment: 'Type has changed' - - name: iptables_top_regex - type: string + type: regex default: '' help: 'Regular expression to match iptables rule that shouldalways be on the top.' comment: 'Help string has changed' - name: iptables_bottom_regex - type: string + type: regex default: '' help: 'Regular expression to match iptables rule that shouldalways be on the bottom.' - comment: 'Help string has changed' - name: vlan_interface type: string default: ~ help: 'vlans will bridge into this interface if set' - comment: 'New param' - name: fixed_range - type: string + type: network default: '10.0.0.0/8' help: 'Fixed IP address block' comment: 'Default value has changed' @@ -4180,121 +3392,92 @@ type: string default: 'http://127.0.0.1:9696' help: 'URL for connecting to quantum' - comment: 'New param' - name: quantum_url_timeout type: integer default: 30 help: 'timeout value for connecting to quantum in seconds' - comment: 'New param' - name: quantum_admin_username type: string default: ~ help: 'username for connecting to quantum in admin context' - comment: 'New param' - name: quantum_admin_password type: string default: ~ help: 'password for connecting to quantum in admin context' - comment: 'New param' - name: quantum_admin_tenant_name type: string default: ~ help: 'tenant name for connecting to quantum in admin context' - comment: 'New param' - name: quantum_region_name type: string default: ~ help: 'region name for connecting to quantum in admin context' - comment: 'New param' - name: quantum_admin_auth_url type: string default: 'http://localhost:5000/v2.0' help: 'auth url for connecting to quantum in admin context' - comment: 'New param' - name: quantum_api_insecure type: boolean default: false help: 'if set, ignore any SSL validation issues' - comment: 'New param' - name: quantum_auth_strategy type: string default: 'keystone' help: 'auth strategy for connecting to quantum in admin context' - comment: 'New param' - name: quantum_ovs_bridge type: string default: 'br-int' help: 'Name of Integration Bridge used by Open vSwitch' - comment: 'New param' - name: quantum_extension_sync_interval type: integer default: 600 help: 'Number of seconds before querying quantum for extensions' - comment: 'New param' - name: security_group_handler type: string default: 'nova.network.sg.NullSecurityGroupHandler' help: 'The full class name of the security group handler class' - comment: 'New param' - name: queues type: multi default: '' help: 'Queues to delete' - comment: 'New param' - name: delete_exchange type: boolean default: false help: 'delete nova exchange too.' - comment: 'New param' - name: cert - type: string + type: file default: 'self.pem' help: 'SSL certificate file' - comment: 'New param' - name: web - type: string + type: executable default: '/usr/share/novnc' help: 'Run webserver on same port. Serve files from DIR.' comment: 'Default value has changed' - - name: novncproxy_port - type: port - default: 6080 - help: 'Port on which to listen for incoming requests' - comment: 'Type has changed' - - - name: s3_listen_port - type: port - default: 3333 - help: 'port for s3 api to listen' - comment: 'Type has changed' - - name: dbapi_use_tpool type: boolean default: false help: 'Enable the experimental use of thread pooling for all DB API calls' - comment: 'New param' - name: sql_idle_timeout type: integer default: 3600 help: 'timeout before idle sql connections are reaped' - comment: 'New param' - name: sqlite_synchronous type: boolean @@ -4306,43 +3489,36 @@ type: integer default: true help: 'Minimum number of SQL connections to keep open in a pool' - comment: 'New param' - name: sql_max_pool_size type: integer default: 5 help: 'Maximum number of SQL connections to keep open in a pool' - comment: 'New param' - name: sql_max_retries type: integer default: 10 help: 'maximum db connection retries during startup.' - comment: 'New param' - name: sql_retry_interval type: integer default: 10 help: 'interval between retries of opening a sql connection' - comment: 'New param' - name: sql_max_overflow type: integer default: ~ help: 'If set, use this value for max_overflow with sqlalchemy' - comment: 'New param' - name: sql_connection_debug type: integer default: false help: 'Verbosity of SQL debugging information. 0=None, 100=Everything' - comment: 'New param' - name: sql_connection_trace type: boolean default: false help: 'Add python stack traces to SQL as comment strings' - comment: 'New param' - name: backdoor_port type: port @@ -4351,16 +3527,15 @@ comment: 'Type has changed' - name: lock_path - type: string + type: directory default: ~ help: 'Directory to use for lock files. Default to a temp directory' comment: 'Help string has changed' - name: logfile_mode - type: string + type: file_mode default: 420 help: 'Default file mode used when creating log files' - comment: 'New param' - name: logging_context_format_string type: string @@ -4370,7 +3545,7 @@ - name: default_log_levels type: list - default: ['amqplibWARN', 'sqlalchemyWARN', 'botoWARN', 'sudsINFO', 'keystoneINFO', 'eventlet.wsgi.serverWARN'] + default: ['amqplib=WARN', 'sqlalchemy=WARN', 'boto=WARN', 'suds=INFO', 'keystone=INFO', 'eventlet.wsgi.server=WARN'] help: 'list of logger=LEVEL pairs' comment: 'Default value has changed' @@ -4381,13 +3556,13 @@ comment: 'Default value has changed' - name: log_file - type: string + type: file default: ~ help: '(Optional) Name of log file to output to. If not set, logging will go to stdout.' comment: 'Help string has changed' - name: log_dir - type: string + type: directory default: ~ help: '(Optional) The directory to keep log files in' comment: 'Help string has changed' @@ -4398,12 +3573,6 @@ help: 'Default publisher_id for outgoing notifications' comment: 'Default value has changed' - - name: notification_topics - type: list - default: ['notifications'] - help: 'AMQP topic used for openstack notifications' - comment: 'Default value has changed' - - name: allowed_rpc_exception_modules type: list default: ['nova.openstack.common.exception', 'nova.exception', 'cinder.exception,exceptions'] @@ -4414,43 +3583,11 @@ type: boolean default: false help: 'Enable a fast single reply queue if using AMQP based RPC like RabbitMQ or Qpid.' - comment: 'New param' - - - name: rabbit_port - type: port - default: 5672 - help: 'The RabbitMQ broker port where a single node is used' - comment: 'Type has changed' - - - name: rabbit_hosts - type: list - default: ['$rabbit_host:$rabbit_port'] - help: 'RabbitMQ HA cluster host:port pairs' - comment: 'Default value has changed' - name: rabbit_durable_queues type: boolean default: false help: 'use durable queues in RabbitMQ' - comment: 'New param' - - - name: qpid_port - type: port - default: 5672 - help: 'Qpid broker port' - comment: 'Type has changed' - - - name: qpid_hosts - type: list - default: ['$qpid_hostname:$qpid_port'] - help: 'Qpid HA cluster host:port pairs' - comment: 'Default value has changed' - - - name: rpc_zmq_port - type: port - default: 9501 - help: 'ZeroMQ receiver listening port' - comment: 'Type has changed' - name: rpc_zmq_host type: string @@ -4459,40 +3596,21 @@ comment: 'Default value has changed' - name: matchmaker_ringfile - type: string + type: file default: '/etc/nova/matchmaker_ring.json' help: 'Matchmaker ring file' - comment: 'New param' - name: cpu_allocation_ratio - type: 'floating point' - default: '16.0' + type: float + default: 16.0 help: 'Virtual CPU to Physical CPU allocation ratio' - comment: 'Type has changed' - - - name: disk_allocation_ratio - type: 'floating point' - default: '1.0' - help: 'virtual disk to physical disk allocation ratio' - comment: 'Type has changed' - - - name: isolated_images - type: list - default: [] - help: 'Images to run on isolated host' - comment: 'Default value has changed' - - - name: isolated_hosts - type: list - default: [] - help: 'Host reserved for specific images' - comment: 'Default value has changed' + comment: 'Help string has changed' - name: ram_allocation_ratio - type: 'floating point' - default: '1.5' + type: float + default: 1.5 help: 'virtual ram to physical ram allocation ratio' - comment: 'Type has changed' + comment: 'Help string has changed' - name: scheduler_default_filters type: list @@ -4504,43 +3622,36 @@ type: list default: ['nova.scheduler.weights.all_weighers'] help: 'Which weight class names to use for weighing hosts' - comment: 'New param' - name: compute_scheduler_driver type: string default: 'nova.scheduler.filter_scheduler.FilterScheduler' help: 'Driver to use for scheduling compute calls' - comment: 'New param' - name: default_scheduler_driver type: string default: 'nova.scheduler.chance.ChanceScheduler' help: 'Default driver to use for scheduling calls' - comment: 'New param' - name: least_cost_functions type: list default: ~ help: 'Which cost functions the LeastCostScheduler should use' - comment: 'New param' - name: noop_cost_fn_weight - type: 'floating point' - default: '1.0' + type: float + default: 1.0 help: 'How much weight to give the noop cost function' - comment: 'New param' - name: compute_fill_first_cost_fn_weight - type: 'floating point' + type: float default: ~ help: 'How much weight to give the fill-first cost function. A negative value will reverse behavior: e.g. spread-first' - comment: 'New param' - name: ram_weight_multiplier - type: 'floating point' - default: '1.0' + type: float + default: 1.0 help: 'Multiplier used for weighing ram. Negative numbers mean to stack vs spread.' - comment: 'New param' - name: compute_driver type: string @@ -4552,49 +3663,41 @@ type: string default: ~ help: 'External virtual switch Name, if not provided, the first external virtual switch is used' - comment: 'New param' - name: limit_cpu_features type: boolean default: false help: 'Required for live migration among hosts with different CPU features' - comment: 'New param' - name: config_drive_inject_password type: boolean default: false help: 'Sets the admin password in the config drive image' - comment: 'New param' - name: qemu_img_cmd type: string default: 'qemu-img.exe' help: 'qemu-img is used to convert between different image types' - comment: 'New param' - name: config_drive_cdrom type: boolean default: false help: 'Attaches the Config Drive image as a cdrom drive instead of a disk drive' - comment: 'New param' - name: hyperv_attaching_volume_retry_count type: integer default: 10 help: 'The number of times we retry on attaching volume ' - comment: 'New param' - name: hyperv_wait_between_attach_retry type: integer default: 5 help: 'The seconds to wait between an volume attachment attempt' - comment: 'New param' - name: force_volumeutils_v1 type: boolean default: false help: 'Force volumeutils v1' - comment: 'New param' - name: libvirt_volume_drivers type: list @@ -4602,12 +3705,6 @@ help: 'Libvirt handlers for remote volumes.' comment: 'Default value has changed' - - name: disk_cachemodes - type: list - default: [] - help: "Specific cachemodes to use for different disk types e.g: ['file=directsync','block=none']" - comment: 'Default value has changed' - - name: libvirt_images_type type: string default: 'default' @@ -4615,76 +3712,64 @@ comment: 'Help string has changed' - name: vmwareapi_host_ip - type: string + type: host default: ~ help: 'URL for connection to VMware ESX/VC host. Required if compute_driver is vmwareapi.VMwareESXDriver or vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmwareapi_host_username type: string default: ~ help: 'Username for connection to VMware ESX/VC host. Used only if compute_driver is vmwareapi.VMwareESXDriver or vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmwareapi_host_password type: string default: ~ help: 'Password for connection to VMware ESX/VC host. Used only if compute_driver is vmwareapi.VMwareESXDriver or vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmwareapi_cluster_name type: string default: ~ help: 'Name of a VMware Cluster ComputeResource. Used only if compute_driver is vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmwareapi_task_poll_interval - type: 'floating point' - default: '5.0' + type: float + default: 5.0 help: 'The interval used for polling of remote tasks. Used only if compute_driver is vmwareapi.VMwareESXDriver or vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vmwareapi_api_retry_count type: integer default: 10 help: 'The number of times we retry on failures, e.g., socket error, etc. Used only if compute_driver is vmwareapi.VMwareESXDriver or vmwareapi.VMwareVCDriver.' - comment: 'New param' - name: vnc_port type: port default: 5900 help: 'VNC starting port' - comment: 'New param' - name: vnc_port_total type: integer default: 10000 help: 'Total number of VNC ports' - comment: 'New param' - name: vnc_password type: string default: ~ help: 'VNC password' - comment: 'New param' - name: use_linked_clone type: boolean default: true help: 'Whether to use linked clone' - comment: 'New param' - name: vmwareapi_vlan_interface type: string default: 'vmnic0' help: 'Physical ethernet adapter name for vlan networking' - comment: 'New param' - name: vmwareapi_wsdl_loc type: string default: ~ help: 'Optional VIM Service WSDL Location e.g http:///vimService.wsdl' - comment: 'New param' - name: xenapi_disable_agent type: boolean @@ -4698,107 +3783,40 @@ help: 'URL for connection to XenServer/Xen Cloud Platform. Required if compute_driver=xenapi.XenAPIDriver' comment: 'Help string has changed' - - name: xenapi_vhd_coalesce_poll_interval - type: 'floating point' - default: '5.0' - help: 'The interval used for polling of coalescing vhds. Used only if compute_driver=xenapi.XenAPIDriver' - comment: 'Type has changed' - - - name: target_port - type: port - default: 3260 - help: 'iSCSI Target Port, 3260 Default' - comment: 'Type has changed' - - name: sr_matching_filter type: string default: 'other-config:i18n-keylocal-storage' help: 'Filter for finding the SR to be used to install guest instances on. The default value is the Local Storage in default XenServer/XCP installations. To select an SR with a different matching criteria, you could set it to other- config:my_favorite_sr=true. On the other hand, to fall back on the Default SR, as displayed by XenCenter, set this flag to: default-sr:true' comment: 'Default value has changed' - - name: xenapi_torrent_seed_chance - type: 'floating point' - default: '1.0' - help: 'Probability that peer will become a seeder.' - comment: 'Type has changed' - - - name: xenapi_torrent_listen_port_start - type: port - default: 6881 - help: 'Beginning of port range to listen on' - comment: 'Type has changed' - - - name: xenapi_torrent_listen_port_end - type: port - default: 6891 - help: 'End of port range to listen on' - comment: 'Type has changed' - - name: xenapi_image_upload_handler type: string default: 'nova.virt.xenapi.imageupload.glance.GlanceStore' help: 'Object Store Driver used to handle image uploads.' comment: 'Default value has changed' - - name: xvpvncproxy_port - type: port - default: 6081 - help: 'Port that the XCP VNC proxy should bind to' - comment: 'Type has changed' - - - name: xvpvncproxy_host - type: host - default: '0.0.0.0' - help: 'Address that the XCP VNC proxy should bind to' - comment: 'Type has changed' - - name: HYPERV.instances_path_share type: string default: '' help: "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" - comment: 'New param' - name: cells.scheduler type: string default: 'nova.cells.scheduler.CellsScheduler' help: 'Cells scheduler to use' - comment: 'New param' - - - name: cells.capabilities - type: list - default: ['hypervisorxenserver;kvm', 'oslinux;windows'] - help: 'Key/Multi-value list with the capabilities of the cell' - comment: 'Default value has changed' - - - name: baremetal.instance_type_extra_specs - type: list - default: [] - help: "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'" - comment: 'Default value has changed' - name: baremetal.virtual_power_type - type: string + type: enum + type_args: {'values': ['vbox', 'virsh']} default: 'vbox' help: 'base command to use for virtual power(vbox,virsh)' comment: 'Default value has changed' - - name: rpc_notifier2.topics - type: list - default: ['notifications'] - help: 'AMQP topic(s) used for openstack notifications' - comment: 'Default value has changed' - - - name: trusted_computing.attestation_port - type: port - default: 8443 - help: 'attestation server port' - comment: 'Type has changed' - - name: spice.keymap type: string default: 'en-us' help: 'keymap for spice' - comment: 'New param' + removed: - ssl.ca_file - ssl.key_file @@ -6878,12 +5896,6 @@ help: "Filter classes available to the scheduler which may be specified more than once. An entry of 'nova.scheduler.filters.standard_filters' maps to all filters included with nova. (multi valued)" comment: 'Type has changed' - - name: scheduler_default_filters - type: string_list - default: ['RetryFilter', 'AvailabilityZoneFilter', 'RamFilter', 'ComputeFilter', 'ComputeCapabilitiesFilter', 'ImagePropertiesFilter'] - help: 'Which filter class names to use for filtering hosts when not specified in the request. ' - comment: 'Type has changed' - - name: scheduler_driver type: string default: 'nova.scheduler.filter_scheduler.FilterScheduler' diff --git a/rubick/test_type_validators.py b/rubick/test_type_validators.py index 21a9a72..3c3fdc8 100644 --- a/rubick/test_type_validators.py +++ b/rubick/test_type_validators.py @@ -165,6 +165,25 @@ class NetworkAddressTypeValidatorTests(TypeValidatorTestHelper, self.assertInvalid('10.0.0.0/33') +class NetworkMaskTypeValidatorTests(TypeValidatorTestHelper, + unittest.TestCase): + type_name = 'network_mask' + + def test_mask(self): + self.assertValid('255.255.255.0') + + def test_returns_mask(self): + s = '255.255.255.0' + v = self.validator.validate(s) + self.assertEqual(s, v) + + def test_mask_with_nonsubsequent_bits_is_invalid(self): + self.assertInvalid('255.123.255.0') + + def test_invalid_format(self): + self.assertInvalid('foo') + + class PortTypeValidatorTests(TypeValidatorTestHelper, unittest.TestCase): type_name = 'port'