summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Behrens <cbehrens@codestud.com>2012-11-15 22:20:07 +0000
committerChris Behrens <cbehrens@codestud.com>2012-11-15 23:03:03 +0000
commitdd0a268e6b03fd097da9b43d3b21a42ab928e1c8 (patch)
treed9e47f827c3f7cc7eed122e73107896c418d931d
parent90dffc3a9c69aa5ffab23d2a28a8f669ef18be97 (diff)
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
-rw-r--r--nova/config.py346
-rw-r--r--nova/flags.py360
-rw-r--r--nova/tests/api/openstack/fakes.py3
3 files changed, 352 insertions, 357 deletions
diff --git a/nova/config.py b/nova/config.py
index 608a3ee53..888cb4f32 100644
--- a/nova/config.py
+++ b/nova/config.py
@@ -17,11 +17,357 @@
# License for the specific language governing permissions and limitations
# under the License.
+import os
+import socket
+
from nova.openstack.common import cfg
CONF = cfg.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)
+
+
def parse_args(argv, default_config_files=None):
CONF.disable_interspersed_args()
return argv[:1] + CONF(argv[1:],
diff --git a/nova/flags.py b/nova/flags.py
index 497d65ca7..2a3e4471d 100644
--- a/nova/flags.py
+++ b/nova/flags.py
@@ -17,364 +17,12 @@
# License for the specific language governing permissions and limitations
# under the License.
-"""Command-line flag library.
-
-Emulates gflags by wrapping cfg.ConfigOpts.
-
-The idea is to move fully to cfg eventually, and this wrapper is a
-stepping stone.
-
"""
+Deprecated module. One should use nova.config instead.
-import os
-import socket
-import sys
+This is left to support backwards compatibility.
+"""
from nova import config
-from nova.openstack.common import cfg
-
-CONF = 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)
+FLAGS = config.CONF
diff --git a/nova/tests/api/openstack/fakes.py b/nova/tests/api/openstack/fakes.py
index 89a78deaa..d84b215b2 100644
--- a/nova/tests/api/openstack/fakes.py
+++ b/nova/tests/api/openstack/fakes.py
@@ -35,6 +35,7 @@ from nova.api.openstack import wsgi as os_wsgi
from nova.compute import api as compute_api
from nova.compute import instance_types
from nova.compute import vm_states
+import nova.config
from nova import context
from nova.db.sqlalchemy import models
from nova import exception as exc
@@ -151,7 +152,7 @@ def stub_out_instance_quota(stubs, allowed, quota, resource='instances'):
def stub_out_networking(stubs):
def get_my_ip():
return '127.0.0.1'
- stubs.Set(nova.flags, '_get_my_ip', get_my_ip)
+ stubs.Set(nova.config, '_get_my_ip', get_my_ip)
def stub_out_compute_api_snapshot(stubs):