Move nova shared config options to nova.config
This strips nova.flags down to be left just for backwards compatibility with add-ons importing nova.flags and using nova.flags.FLAGS Change-Id: Ie3fcae25e05ea9ba97f51bc90b91817ed776ad80
This commit is contained in:
parent
a84fb9051d
commit
f74267a024
360
nova/flags.py
360
nova/flags.py
@ -17,364 +17,12 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
"""Command-line flag library.
|
"""
|
||||||
|
Deprecated module. One should use nova.config instead.
|
||||||
Emulates gflags by wrapping cfg.ConfigOpts.
|
|
||||||
|
|
||||||
The idea is to move fully to cfg eventually, and this wrapper is a
|
|
||||||
stepping stone.
|
|
||||||
|
|
||||||
|
This is left to support backwards compatibility.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
|
||||||
import socket
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from nova import config
|
from nova import config
|
||||||
from nova.openstack.common import cfg
|
|
||||||
|
|
||||||
CONF = config.CONF
|
FLAGS = config.CONF
|
||||||
FLAGS = CONF
|
|
||||||
|
|
||||||
|
|
||||||
def _get_my_ip():
|
|
||||||
"""
|
|
||||||
Returns the actual ip of the local machine.
|
|
||||||
|
|
||||||
This code figures out what source address would be used if some traffic
|
|
||||||
were to be sent out to some well known address on the Internet. In this
|
|
||||||
case, a Google DNS server is used, but the specific address does not
|
|
||||||
matter much. No traffic is actually sent.
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
csock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
||||||
csock.connect(('8.8.8.8', 80))
|
|
||||||
(addr, port) = csock.getsockname()
|
|
||||||
csock.close()
|
|
||||||
return addr
|
|
||||||
except socket.error:
|
|
||||||
return "127.0.0.1"
|
|
||||||
|
|
||||||
|
|
||||||
core_opts = [
|
|
||||||
cfg.StrOpt('sql_connection',
|
|
||||||
default='sqlite:///$state_path/$sqlite_db',
|
|
||||||
help='The SQLAlchemy connection string used to connect to the '
|
|
||||||
'database'),
|
|
||||||
cfg.StrOpt('api_paste_config',
|
|
||||||
default="api-paste.ini",
|
|
||||||
help='File name for the paste.deploy config for nova-api'),
|
|
||||||
cfg.StrOpt('pybasedir',
|
|
||||||
default=os.path.abspath(os.path.join(os.path.dirname(__file__),
|
|
||||||
'../')),
|
|
||||||
help='Directory where the nova python module is installed'),
|
|
||||||
cfg.StrOpt('bindir',
|
|
||||||
default='$pybasedir/bin',
|
|
||||||
help='Directory where nova binaries are installed'),
|
|
||||||
cfg.StrOpt('state_path',
|
|
||||||
default='$pybasedir',
|
|
||||||
help="Top-level directory for maintaining nova's state"),
|
|
||||||
]
|
|
||||||
|
|
||||||
debug_opts = [
|
|
||||||
cfg.BoolOpt('fake_network',
|
|
||||||
default=False,
|
|
||||||
help='If passed, use fake network devices and addresses'),
|
|
||||||
cfg.IntOpt('sql_connection_debug',
|
|
||||||
default=0,
|
|
||||||
help='Verbosity of SQL debugging information. 0=None, '
|
|
||||||
'100=Everything'),
|
|
||||||
cfg.BoolOpt('sql_connection_trace',
|
|
||||||
default=False,
|
|
||||||
help='Add python stack traces to SQL as comment strings'),
|
|
||||||
]
|
|
||||||
|
|
||||||
CONF.register_cli_opts(core_opts)
|
|
||||||
CONF.register_cli_opts(debug_opts)
|
|
||||||
|
|
||||||
global_opts = [
|
|
||||||
cfg.StrOpt('my_ip',
|
|
||||||
default=_get_my_ip(),
|
|
||||||
help='ip address of this host'),
|
|
||||||
cfg.ListOpt('region_list',
|
|
||||||
default=[],
|
|
||||||
help='list of region=fqdn pairs separated by commas'),
|
|
||||||
cfg.StrOpt('aws_access_key_id',
|
|
||||||
default='admin',
|
|
||||||
help='AWS Access ID'),
|
|
||||||
cfg.StrOpt('aws_secret_access_key',
|
|
||||||
default='admin',
|
|
||||||
help='AWS Access Key'),
|
|
||||||
cfg.StrOpt('glance_host',
|
|
||||||
default='$my_ip',
|
|
||||||
help='default glance hostname or ip'),
|
|
||||||
cfg.IntOpt('glance_port',
|
|
||||||
default=9292,
|
|
||||||
help='default glance port'),
|
|
||||||
cfg.ListOpt('glance_api_servers',
|
|
||||||
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. '
|
|
||||||
'([hostname|ip]:port)'),
|
|
||||||
cfg.BoolOpt('glance_api_insecure',
|
|
||||||
default=False,
|
|
||||||
help='Allow to perform insecure SSL (https) requests to '
|
|
||||||
'glance'),
|
|
||||||
cfg.IntOpt('glance_num_retries',
|
|
||||||
default=0,
|
|
||||||
help='Number retries when downloading an image from glance'),
|
|
||||||
cfg.IntOpt('s3_port',
|
|
||||||
default=3333,
|
|
||||||
help='port used when accessing the s3 api'),
|
|
||||||
cfg.StrOpt('s3_host',
|
|
||||||
default='$my_ip',
|
|
||||||
help='hostname or ip for openstack to use when accessing '
|
|
||||||
'the s3 api'),
|
|
||||||
cfg.StrOpt('cert_topic',
|
|
||||||
default='cert',
|
|
||||||
help='the topic cert nodes listen on'),
|
|
||||||
cfg.StrOpt('compute_topic',
|
|
||||||
default='compute',
|
|
||||||
help='the topic compute nodes listen on'),
|
|
||||||
cfg.StrOpt('console_topic',
|
|
||||||
default='console',
|
|
||||||
help='the topic console proxy nodes listen on'),
|
|
||||||
cfg.StrOpt('scheduler_topic',
|
|
||||||
default='scheduler',
|
|
||||||
help='the topic scheduler nodes listen on'),
|
|
||||||
cfg.StrOpt('network_topic',
|
|
||||||
default='network',
|
|
||||||
help='the topic network nodes listen on'),
|
|
||||||
cfg.BoolOpt('api_rate_limit',
|
|
||||||
default=True,
|
|
||||||
help='whether to rate limit the api'),
|
|
||||||
cfg.ListOpt('enabled_apis',
|
|
||||||
default=['ec2', 'osapi_compute', 'metadata'],
|
|
||||||
help='a list of APIs to enable by default'),
|
|
||||||
cfg.StrOpt('ec2_host',
|
|
||||||
default='$my_ip',
|
|
||||||
help='the ip of the ec2 api server'),
|
|
||||||
cfg.StrOpt('ec2_dmz_host',
|
|
||||||
default='$my_ip',
|
|
||||||
help='the internal ip of the ec2 api server'),
|
|
||||||
cfg.IntOpt('ec2_port',
|
|
||||||
default=8773,
|
|
||||||
help='the port of the ec2 api server'),
|
|
||||||
cfg.StrOpt('ec2_scheme',
|
|
||||||
default='http',
|
|
||||||
help='the protocol to use when connecting to the ec2 api '
|
|
||||||
'server (http, https)'),
|
|
||||||
cfg.StrOpt('ec2_path',
|
|
||||||
default='/services/Cloud',
|
|
||||||
help='the path prefix used to call the ec2 api server'),
|
|
||||||
cfg.ListOpt('osapi_compute_ext_list',
|
|
||||||
default=[],
|
|
||||||
help='Specify list of extensions to load when using osapi_'
|
|
||||||
'compute_extension option with nova.api.openstack.'
|
|
||||||
'compute.contrib.select_extensions'),
|
|
||||||
cfg.MultiStrOpt('osapi_compute_extension',
|
|
||||||
default=[
|
|
||||||
'nova.api.openstack.compute.contrib.standard_extensions'
|
|
||||||
],
|
|
||||||
help='osapi compute extension to load'),
|
|
||||||
cfg.StrOpt('osapi_path',
|
|
||||||
default='/v1.1/',
|
|
||||||
help='the path prefix used to call the openstack api server'),
|
|
||||||
cfg.StrOpt('osapi_compute_link_prefix',
|
|
||||||
default=None,
|
|
||||||
help='Base URL that will be presented to users in links '
|
|
||||||
'to the OpenStack Compute API'),
|
|
||||||
cfg.StrOpt('osapi_glance_link_prefix',
|
|
||||||
default=None,
|
|
||||||
help='Base URL that will be presented to users in links '
|
|
||||||
'to glance resources'),
|
|
||||||
cfg.IntOpt('osapi_max_limit',
|
|
||||||
default=1000,
|
|
||||||
help='the maximum number of items returned in a single '
|
|
||||||
'response from a collection resource'),
|
|
||||||
cfg.StrOpt('metadata_host',
|
|
||||||
default='$my_ip',
|
|
||||||
help='the ip for the metadata api server'),
|
|
||||||
cfg.IntOpt('metadata_port',
|
|
||||||
default=8775,
|
|
||||||
help='the port for the metadata api port'),
|
|
||||||
cfg.StrOpt('default_image',
|
|
||||||
default='ami-11111',
|
|
||||||
help='default image to use, testing only'),
|
|
||||||
cfg.StrOpt('default_instance_type',
|
|
||||||
default='m1.small',
|
|
||||||
help='default instance type to use, testing only'),
|
|
||||||
cfg.StrOpt('null_kernel',
|
|
||||||
default='nokernel',
|
|
||||||
help='kernel image that indicates not to use a kernel, but to '
|
|
||||||
'use a raw disk image instead'),
|
|
||||||
cfg.StrOpt('vpn_image_id',
|
|
||||||
default='0',
|
|
||||||
help='image id used when starting up a cloudpipe vpn server'),
|
|
||||||
cfg.StrOpt('vpn_key_suffix',
|
|
||||||
default='-vpn',
|
|
||||||
help='Suffix to add to project name for vpn key and secgroups'),
|
|
||||||
cfg.StrOpt('sqlite_db',
|
|
||||||
default='nova.sqlite',
|
|
||||||
help='the filename to use with sqlite'),
|
|
||||||
cfg.BoolOpt('sqlite_synchronous',
|
|
||||||
default=True,
|
|
||||||
help='If passed, use synchronous mode for sqlite'),
|
|
||||||
cfg.IntOpt('sql_idle_timeout',
|
|
||||||
default=3600,
|
|
||||||
help='timeout before idle sql connections are reaped'),
|
|
||||||
cfg.IntOpt('sql_max_retries',
|
|
||||||
default=10,
|
|
||||||
help='maximum db connection retries during startup. '
|
|
||||||
'(setting -1 implies an infinite retry count)'),
|
|
||||||
cfg.IntOpt('sql_retry_interval',
|
|
||||||
default=10,
|
|
||||||
help='interval between retries of opening a sql connection'),
|
|
||||||
cfg.StrOpt('compute_manager',
|
|
||||||
default='nova.compute.manager.ComputeManager',
|
|
||||||
help='full class name for the Manager for compute'),
|
|
||||||
cfg.StrOpt('console_manager',
|
|
||||||
default='nova.console.manager.ConsoleProxyManager',
|
|
||||||
help='full class name for the Manager for console proxy'),
|
|
||||||
cfg.StrOpt('cert_manager',
|
|
||||||
default='nova.cert.manager.CertManager',
|
|
||||||
help='full class name for the Manager for cert'),
|
|
||||||
cfg.StrOpt('instance_dns_manager',
|
|
||||||
default='nova.network.dns_driver.DNSDriver',
|
|
||||||
help='full class name for the DNS Manager for instance IPs'),
|
|
||||||
cfg.StrOpt('instance_dns_domain',
|
|
||||||
default='',
|
|
||||||
help='full class name for the DNS Zone for instance IPs'),
|
|
||||||
cfg.StrOpt('floating_ip_dns_manager',
|
|
||||||
default='nova.network.dns_driver.DNSDriver',
|
|
||||||
help='full class name for the DNS Manager for floating IPs'),
|
|
||||||
cfg.StrOpt('network_manager',
|
|
||||||
default='nova.network.manager.VlanManager',
|
|
||||||
help='full class name for the Manager for network'),
|
|
||||||
cfg.StrOpt('scheduler_manager',
|
|
||||||
default='nova.scheduler.manager.SchedulerManager',
|
|
||||||
help='full class name for the Manager for scheduler'),
|
|
||||||
cfg.StrOpt('host',
|
|
||||||
default=socket.getfqdn(),
|
|
||||||
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'),
|
|
||||||
cfg.StrOpt('node_availability_zone',
|
|
||||||
default='nova',
|
|
||||||
help='availability zone of this node'),
|
|
||||||
cfg.ListOpt('memcached_servers',
|
|
||||||
default=None,
|
|
||||||
help='Memcached servers or None for in process cache.'),
|
|
||||||
cfg.StrOpt('instance_usage_audit_period',
|
|
||||||
default='month',
|
|
||||||
help='time period to generate instance usages for. '
|
|
||||||
'Time period must be hour, day, month or year'),
|
|
||||||
cfg.IntOpt('bandwidth_poll_interval',
|
|
||||||
default=600,
|
|
||||||
help='interval to pull bandwidth usage info'),
|
|
||||||
cfg.BoolOpt('start_guests_on_host_boot',
|
|
||||||
default=False,
|
|
||||||
help='Whether to restart guests when the host reboots'),
|
|
||||||
cfg.BoolOpt('resume_guests_state_on_host_boot',
|
|
||||||
default=False,
|
|
||||||
help='Whether to start guests that were running before the '
|
|
||||||
'host rebooted'),
|
|
||||||
cfg.StrOpt('default_ephemeral_format',
|
|
||||||
default=None,
|
|
||||||
help='The default format an ephemeral_volume will be '
|
|
||||||
'formatted with on creation.'),
|
|
||||||
cfg.StrOpt('rootwrap_config',
|
|
||||||
default="/etc/nova/rootwrap.conf",
|
|
||||||
help='Path to the rootwrap configuration file to use for '
|
|
||||||
'running commands as root'),
|
|
||||||
cfg.StrOpt('network_driver',
|
|
||||||
default='nova.network.linux_net',
|
|
||||||
help='Driver to use for network creation'),
|
|
||||||
cfg.BoolOpt('use_ipv6',
|
|
||||||
default=False,
|
|
||||||
help='use ipv6'),
|
|
||||||
cfg.BoolOpt('enable_instance_password',
|
|
||||||
default=True,
|
|
||||||
help='Allows use of instance password during '
|
|
||||||
'server creation'),
|
|
||||||
cfg.IntOpt('password_length',
|
|
||||||
default=12,
|
|
||||||
help='Length of generated instance admin passwords'),
|
|
||||||
cfg.BoolOpt('monkey_patch',
|
|
||||||
default=False,
|
|
||||||
help='Whether to log monkey patching'),
|
|
||||||
cfg.ListOpt('monkey_patch_modules',
|
|
||||||
default=[
|
|
||||||
'nova.api.ec2.cloud:nova.notifier.api.notify_decorator',
|
|
||||||
'nova.compute.api:nova.notifier.api.notify_decorator'
|
|
||||||
],
|
|
||||||
help='List of modules/decorators to monkey patch'),
|
|
||||||
cfg.BoolOpt('allow_resize_to_same_host',
|
|
||||||
default=False,
|
|
||||||
help='Allow destination machine to match source for resize. '
|
|
||||||
'Useful when testing in single-host environments.'),
|
|
||||||
cfg.IntOpt('reclaim_instance_interval',
|
|
||||||
default=0,
|
|
||||||
help='Interval in seconds for reclaiming deleted instances'),
|
|
||||||
cfg.IntOpt('zombie_instance_updated_at_window',
|
|
||||||
default=172800,
|
|
||||||
help='Number of seconds zombie instances are cleaned up.'),
|
|
||||||
cfg.IntOpt('service_down_time',
|
|
||||||
default=60,
|
|
||||||
help='maximum time since last check-in for up service'),
|
|
||||||
cfg.StrOpt('default_schedule_zone',
|
|
||||||
default=None,
|
|
||||||
help='availability zone to use when user doesn\'t specify one'),
|
|
||||||
cfg.ListOpt('isolated_images',
|
|
||||||
default=[],
|
|
||||||
help='Images to run on isolated host'),
|
|
||||||
cfg.ListOpt('isolated_hosts',
|
|
||||||
default=[],
|
|
||||||
help='Host reserved for specific images'),
|
|
||||||
cfg.StrOpt('cache_images',
|
|
||||||
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'),
|
|
||||||
cfg.BoolOpt('use_cow_images',
|
|
||||||
default=True,
|
|
||||||
help='Whether to use cow images'),
|
|
||||||
cfg.StrOpt('compute_api_class',
|
|
||||||
default='nova.compute.api.API',
|
|
||||||
help='The full class name of the compute API class to use'),
|
|
||||||
cfg.StrOpt('network_api_class',
|
|
||||||
default='nova.network.api.API',
|
|
||||||
help='The full class name of the network API class to use'),
|
|
||||||
cfg.StrOpt('volume_api_class',
|
|
||||||
default='nova.volume.cinder.API',
|
|
||||||
help='The full class name of the volume API class to use'),
|
|
||||||
cfg.StrOpt('security_group_handler',
|
|
||||||
default='nova.network.sg.NullSecurityGroupHandler',
|
|
||||||
help='The full class name of the security group handler class'),
|
|
||||||
cfg.StrOpt('default_access_ip_network_name',
|
|
||||||
default=None,
|
|
||||||
help='Name of network to use to set access ips for instances'),
|
|
||||||
cfg.StrOpt('auth_strategy',
|
|
||||||
default='noauth',
|
|
||||||
help='The strategy to use for auth: noauth or keystone.'),
|
|
||||||
cfg.ListOpt('non_inheritable_image_properties',
|
|
||||||
default=['cache_in_nova',
|
|
||||||
'bittorrent'],
|
|
||||||
help='These are image properties which a snapshot should not'
|
|
||||||
' inherit from an instance'),
|
|
||||||
cfg.BoolOpt('defer_iptables_apply',
|
|
||||||
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'),
|
|
||||||
cfg.StrOpt('compute_driver',
|
|
||||||
help='Driver to use for controlling virtualization. Options '
|
|
||||||
'include: libvirt.LibvirtDriver, xenapi.XenAPIDriver, '
|
|
||||||
'fake.FakeDriver, baremetal.BareMetalDriver, '
|
|
||||||
'vmwareapi.VMWareESXDriver'),
|
|
||||||
]
|
|
||||||
|
|
||||||
CONF.register_opts(global_opts)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user