diff options
author | Mark McLoughlin <markmc@redhat.com> | 2012-10-15 01:40:25 +0100 |
---|---|---|
committer | Mark McLoughlin <markmc@redhat.com> | 2012-11-04 21:37:39 +0000 |
commit | efede80046e0504dc8a68ab5447f97b05c02dd7a (patch) | |
tree | 91d38f5b23a25efc321b6df8e038444e07347bad | |
parent | dd086638b8c6e43f275fc45b3fc7df2de90bb2c2 (diff) | |
download | nova-efede80046e0504dc8a68ab5447f97b05c02dd7a.tar.gz nova-efede80046e0504dc8a68ab5447f97b05c02dd7a.tar.xz nova-efede80046e0504dc8a68ab5447f97b05c02dd7a.zip |
Move parse_args to nova.config
The flags module will eventually be removed and this is a first step
towards that.
Change-Id: I729b08900e53e2ae6db10633dcff3be59720fa6f
-rwxr-xr-x | bin/nova-all | 3 | ||||
-rwxr-xr-x | bin/nova-api | 3 | ||||
-rwxr-xr-x | bin/nova-api-ec2 | 3 | ||||
-rwxr-xr-x | bin/nova-api-metadata | 3 | ||||
-rwxr-xr-x | bin/nova-api-os-compute | 3 | ||||
-rwxr-xr-x | bin/nova-cert | 3 | ||||
-rwxr-xr-x | bin/nova-clear-rabbit-queues | 3 | ||||
-rwxr-xr-x | bin/nova-compute | 3 | ||||
-rwxr-xr-x | bin/nova-console | 3 | ||||
-rwxr-xr-x | bin/nova-consoleauth | 3 | ||||
-rwxr-xr-x | bin/nova-dhcpbridge | 3 | ||||
-rwxr-xr-x | bin/nova-manage | 3 | ||||
-rwxr-xr-x | bin/nova-network | 3 | ||||
-rwxr-xr-x | bin/nova-novncproxy | 3 | ||||
-rwxr-xr-x | bin/nova-objectstore | 3 | ||||
-rwxr-xr-x | bin/nova-rpc-zmq-receiver | 3 | ||||
-rwxr-xr-x | bin/nova-scheduler | 3 | ||||
-rwxr-xr-x | bin/nova-xvpvncproxy | 3 | ||||
-rw-r--r-- | nova/config.py | 29 | ||||
-rw-r--r-- | nova/flags.py | 7 | ||||
-rw-r--r-- | nova/test.py | 3 | ||||
-rw-r--r-- | nova/tests/test_flags.py | 7 | ||||
-rw-r--r-- | tools/xenserver/destroy_cached_images.py | 3 |
23 files changed, 73 insertions, 30 deletions
diff --git a/bin/nova-all b/bin/nova-all index 2bbc27c82..ce0a459b4 100755 --- a/bin/nova-all +++ b/bin/nova-all @@ -40,6 +40,7 @@ if os.path.exists(os.path.join(possible_topdir, "nova", "__init__.py")): sys.path.insert(0, possible_topdir) +from nova import config from nova import flags from nova.objectstore import s3server from nova.openstack.common import log as logging @@ -51,7 +52,7 @@ from nova.vnc import xvp_proxy LOG = logging.getLogger('nova.all') if __name__ == '__main__': - flags.parse_args(sys.argv) + config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() launcher = service.ProcessLauncher() diff --git a/bin/nova-api b/bin/nova-api index f55eca719..4bcfa7f79 100755 --- a/bin/nova-api +++ b/bin/nova-api @@ -36,13 +36,14 @@ if os.path.exists(os.path.join(possible_topdir, "nova", "__init__.py")): sys.path.insert(0, possible_topdir) +from nova import config from nova import flags from nova.openstack.common import log as logging from nova import service from nova import utils if __name__ == '__main__': - flags.parse_args(sys.argv) + config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() launcher = service.ProcessLauncher() diff --git a/bin/nova-api-ec2 b/bin/nova-api-ec2 index 8e66ab874..f165b5ce9 100755 --- a/bin/nova-api-ec2 +++ b/bin/nova-api-ec2 @@ -32,13 +32,14 @@ if os.path.exists(os.path.join(possible_topdir, "nova", "__init__.py")): sys.path.insert(0, possible_topdir) +from nova import config from nova import flags from nova.openstack.common import log as logging from nova import service from nova import utils if __name__ == '__main__': - flags.parse_args(sys.argv) + config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = service.WSGIService('ec2') diff --git a/bin/nova-api-metadata b/bin/nova-api-metadata index d445a16a9..f50e5ce84 100755 --- a/bin/nova-api-metadata +++ b/bin/nova-api-metadata @@ -32,13 +32,14 @@ if os.path.exists(os.path.join(possible_topdir, "nova", "__init__.py")): sys.path.insert(0, possible_topdir) +from nova import config from nova import flags from nova.openstack.common import log as logging from nova import service from nova import utils if __name__ == '__main__': - flags.parse_args(sys.argv) + config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = service.WSGIService('metadata') diff --git a/bin/nova-api-os-compute b/bin/nova-api-os-compute index 529d58821..5cf5f6910 100755 --- a/bin/nova-api-os-compute +++ b/bin/nova-api-os-compute @@ -32,13 +32,14 @@ if os.path.exists(os.path.join(possible_topdir, "nova", "__init__.py")): sys.path.insert(0, possible_topdir) +from nova import config from nova import flags from nova.openstack.common import log as logging from nova import service from nova import utils if __name__ == '__main__': - flags.parse_args(sys.argv) + config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = service.WSGIService('osapi_compute') diff --git a/bin/nova-cert b/bin/nova-cert index ebdd0e0b9..317739329 100755 --- a/bin/nova-cert +++ b/bin/nova-cert @@ -32,13 +32,14 @@ if os.path.exists(os.path.join(POSSIBLE_TOPDIR, 'nova', '__init__.py')): sys.path.insert(0, POSSIBLE_TOPDIR) +from nova import config from nova import flags from nova.openstack.common import log as logging from nova import service from nova import utils if __name__ == '__main__': - flags.parse_args(sys.argv) + config.parse_args(sys.argv) FLAGS = flags.FLAGS logging.setup("nova") utils.monkey_patch() diff --git a/bin/nova-clear-rabbit-queues b/bin/nova-clear-rabbit-queues index 0cbf5ab19..05531de9b 100755 --- a/bin/nova-clear-rabbit-queues +++ b/bin/nova-clear-rabbit-queues @@ -42,6 +42,7 @@ gettext.install('nova', unicode=1) from nova import context from nova import exception +from nova import config from nova import flags from nova.openstack.common import cfg from nova.openstack.common import log as logging @@ -69,7 +70,7 @@ def delete_queues(queues): x.queue_delete(q) if __name__ == '__main__': - args = flags.parse_args(sys.argv) + args = config.parse_args(sys.argv) logging.setup("nova") delete_queues(args[1:]) if FLAGS.delete_exchange: diff --git a/bin/nova-compute b/bin/nova-compute index 2a2a0013a..2ff98ccfc 100755 --- a/bin/nova-compute +++ b/bin/nova-compute @@ -34,13 +34,14 @@ if os.path.exists(os.path.join(POSSIBLE_TOPDIR, 'nova', '__init__.py')): sys.path.insert(0, POSSIBLE_TOPDIR) +from nova import config from nova import flags from nova.openstack.common import log as logging from nova import service from nova import utils if __name__ == '__main__': - flags.parse_args(sys.argv) + config.parse_args(sys.argv) FLAGS = flags.FLAGS logging.setup('nova') utils.monkey_patch() diff --git a/bin/nova-console b/bin/nova-console index f664040b7..92b99edfb 100755 --- a/bin/nova-console +++ b/bin/nova-console @@ -33,12 +33,13 @@ if os.path.exists(os.path.join(possible_topdir, 'nova', '__init__.py')): sys.path.insert(0, possible_topdir) +from nova import config from nova import flags from nova.openstack.common import log as logging from nova import service if __name__ == '__main__': - flags.parse_args(sys.argv) + config.parse_args(sys.argv) FLAGS = flags.FLAGS logging.setup("nova") server = service.Service.create(binary='nova-console', diff --git a/bin/nova-consoleauth b/bin/nova-consoleauth index 58ecd37b3..14ef701a7 100755 --- a/bin/nova-consoleauth +++ b/bin/nova-consoleauth @@ -32,13 +32,14 @@ if os.path.exists(os.path.join(possible_topdir, 'nova', '__init__.py')): from nova.consoleauth import manager +from nova import config from nova import flags from nova.openstack.common import log as logging from nova import service if __name__ == "__main__": - flags.parse_args(sys.argv) + config.parse_args(sys.argv) FLAGS = flags.FLAGS logging.setup("nova") server = service.Service.create(binary='nova-consoleauth', diff --git a/bin/nova-dhcpbridge b/bin/nova-dhcpbridge index 0fc7751fc..48639ce87 100755 --- a/bin/nova-dhcpbridge +++ b/bin/nova-dhcpbridge @@ -37,6 +37,7 @@ gettext.install('nova', unicode=1) from nova import context from nova import db +from nova import config from nova import flags from nova.network import linux_net from nova.network import rpcapi as network_rpcapi @@ -94,7 +95,7 @@ def init_leases(network_id): def main(): """Parse environment and arguments and call the approproate action.""" flagfile = os.environ.get('FLAGFILE', FLAGS.dhcpbridge_flagfile) - argv = flags.parse_args(sys.argv, default_config_files=[flagfile]) + argv = config.parse_args(sys.argv, default_config_files=[flagfile]) logging.setup("nova") if int(os.environ.get('TESTING', '0')): diff --git a/bin/nova-manage b/bin/nova-manage index 93b079488..1cb2dabb7 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -73,6 +73,7 @@ gettext.install('nova', unicode=1) from nova.api.ec2 import ec2utils from nova.compute import instance_types from nova.compute import rpcapi as compute_rpcapi +from nova import config from nova import context from nova import db from nova.db import migration @@ -1220,7 +1221,7 @@ def main(): """Parse options and call the appropriate class/method.""" try: - argv = flags.parse_args(sys.argv) + argv = config.parse_args(sys.argv) logging.setup("nova") except cfg.ConfigFilesNotFoundError: cfgfile = FLAGS.config_file[-1] if FLAGS.config_file else None diff --git a/bin/nova-network b/bin/nova-network index 36343bb73..d23d7882c 100755 --- a/bin/nova-network +++ b/bin/nova-network @@ -34,13 +34,14 @@ if os.path.exists(os.path.join(possible_topdir, 'nova', '__init__.py')): sys.path.insert(0, possible_topdir) +from nova import config from nova import flags from nova.openstack.common import log as logging from nova import service from nova import utils if __name__ == '__main__': - flags.parse_args(sys.argv) + config.parse_args(sys.argv) FLAGS = flags.FLAGS logging.setup("nova") utils.monkey_patch() diff --git a/bin/nova-novncproxy b/bin/nova-novncproxy index 483c72e81..d3d9702af 100755 --- a/bin/nova-novncproxy +++ b/bin/nova-novncproxy @@ -28,6 +28,7 @@ import sys import websockify +from nova import config from nova.consoleauth import rpcapi as consoleauth_rpcapi from nova import context from nova import flags @@ -133,7 +134,7 @@ if __name__ == '__main__': parser.error("SSL only and %s not found" % FLAGS.cert) # Setup flags - flags.parse_args(sys.argv) + config.parse_args(sys.argv) # Check to see if novnc html/js/css files are present if not os.path.exists(FLAGS.web): diff --git a/bin/nova-objectstore b/bin/nova-objectstore index 2149b1610..9b9e2b7a7 100755 --- a/bin/nova-objectstore +++ b/bin/nova-objectstore @@ -34,6 +34,7 @@ if os.path.exists(os.path.join(possible_topdir, 'nova', '__init__.py')): sys.path.insert(0, possible_topdir) +from nova import config from nova import flags from nova.objectstore import s3server from nova.openstack.common import log as logging @@ -42,7 +43,7 @@ from nova import utils if __name__ == '__main__': - flags.parse_args(sys.argv) + config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = s3server.get_wsgi_server() diff --git a/bin/nova-rpc-zmq-receiver b/bin/nova-rpc-zmq-receiver index 5636718a2..d63ea108e 100755 --- a/bin/nova-rpc-zmq-receiver +++ b/bin/nova-rpc-zmq-receiver @@ -32,6 +32,7 @@ POSSIBLE_TOPDIR = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), if os.path.exists(os.path.join(POSSIBLE_TOPDIR, 'nova', '__init__.py')): sys.path.insert(0, POSSIBLE_TOPDIR) +from nova import config from nova import exception from nova import flags from nova.openstack.common import log as logging @@ -45,7 +46,7 @@ FLAGS.register_opts(impl_zmq.zmq_opts) def main(): - flags.parse_args(sys.argv) + config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() diff --git a/bin/nova-scheduler b/bin/nova-scheduler index 64dadb9e4..fc345808a 100755 --- a/bin/nova-scheduler +++ b/bin/nova-scheduler @@ -36,13 +36,14 @@ if os.path.exists(os.path.join(possible_topdir, 'nova', '__init__.py')): gettext.install('nova', unicode=1) +from nova import config from nova import flags from nova.openstack.common import log as logging from nova import service from nova import utils if __name__ == '__main__': - flags.parse_args(sys.argv) + config.parse_args(sys.argv) FLAGS = flags.FLAGS logging.setup("nova") utils.monkey_patch() diff --git a/bin/nova-xvpvncproxy b/bin/nova-xvpvncproxy index 5929a33b5..e884b3f52 100755 --- a/bin/nova-xvpvncproxy +++ b/bin/nova-xvpvncproxy @@ -31,6 +31,7 @@ if os.path.exists(os.path.join(possible_topdir, 'nova', '__init__.py')): sys.path.insert(0, possible_topdir) +from nova import config from nova import flags from nova.openstack.common import log as logging from nova.openstack.common import rpc @@ -40,7 +41,7 @@ from nova.vnc import xvp_proxy FLAGS = flags.FLAGS if __name__ == "__main__": - flags.parse_args(sys.argv) + config.parse_args(sys.argv) logging.setup("nova") wsgi_server = xvp_proxy.get_wsgi_server() diff --git a/nova/config.py b/nova/config.py new file mode 100644 index 000000000..608a3ee53 --- /dev/null +++ b/nova/config.py @@ -0,0 +1,29 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2010 United States Government as represented by the +# Administrator of the National Aeronautics and Space Administration. +# All Rights Reserved. +# Copyright 2012 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from nova.openstack.common import cfg + +CONF = cfg.CONF + + +def parse_args(argv, default_config_files=None): + CONF.disable_interspersed_args() + return argv[:1] + CONF(argv[1:], + project='nova', + default_config_files=default_config_files) diff --git a/nova/flags.py b/nova/flags.py index 7d09915a5..a27674472 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -36,13 +36,6 @@ from nova.openstack.common import cfg FLAGS = cfg.CONF -def parse_args(argv, default_config_files=None): - FLAGS.disable_interspersed_args() - return argv[:1] + FLAGS(argv[1:], - project='nova', - default_config_files=default_config_files) - - class UnrecognizedFlag(Exception): pass diff --git a/nova/test.py b/nova/test.py index 911ad1390..cd82d74e2 100644 --- a/nova/test.py +++ b/nova/test.py @@ -32,6 +32,7 @@ import nose.plugins.skip import stubout import testtools +from nova import config from nova import flags from nova.openstack.common import cfg from nova.openstack.common import log as logging @@ -68,7 +69,7 @@ class TestCase(testtools.TestCase): super(TestCase, self).setUp() fake_flags.set_defaults(FLAGS) - flags.parse_args([], default_config_files=[]) + config.parse_args([], default_config_files=[]) # NOTE(vish): We need a better method for creating fixtures for tests # now that we have some required db setup for the system diff --git a/nova/tests/test_flags.py b/nova/tests/test_flags.py index 973d54a1f..15dec56b9 100644 --- a/nova/tests/test_flags.py +++ b/nova/tests/test_flags.py @@ -17,6 +17,7 @@ # License for the specific language governing permissions and limitations # under the License. +from nova import config from nova import flags from nova.openstack.common import cfg from nova import test @@ -44,7 +45,7 @@ class FlagsTestCase(test.TestCase): self.assert_('runtime_answer' not in FLAGS) argv = ['flags_test', 'extra_arg', '--runtime_answer=60'] - args = flags.parse_args(argv, default_config_files=[]) + args = config.parse_args(argv, default_config_files=[]) self.assertEqual(len(args), 3) self.assertEqual(argv, args) @@ -60,7 +61,7 @@ class FlagsTestCase(test.TestCase): default='val', help='desc')) argv = ['flags_test', '--duplicate_answer=60', 'extra_arg'] - args = flags.parse_args(argv, default_config_files=[]) + args = config.parse_args(argv, default_config_files=[]) self.assert_('duplicate_answer' not in FLAGS) self.assert_(FLAGS.duplicate_answer_long, 60) @@ -68,7 +69,7 @@ class FlagsTestCase(test.TestCase): FLAGS.clear() FLAGS.register_cli_opt(cfg.IntOpt('duplicate_answer', default=60, help='desc')) - args = flags.parse_args(argv, default_config_files=[]) + args = config.parse_args(argv, default_config_files=[]) self.assertEqual(FLAGS.duplicate_answer, 60) self.assertEqual(FLAGS.duplicate_answer_long, 'val') diff --git a/tools/xenserver/destroy_cached_images.py b/tools/xenserver/destroy_cached_images.py index dd6e91adc..a9045cd61 100644 --- a/tools/xenserver/destroy_cached_images.py +++ b/tools/xenserver/destroy_cached_images.py @@ -25,6 +25,7 @@ POSSIBLE_TOPDIR = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), if os.path.exists(os.path.join(POSSIBLE_TOPDIR, 'nova', '__init__.py')): sys.path.insert(0, POSSIBLE_TOPDIR) +from nova import config from nova import flags from nova.openstack.common import cfg from nova.openstack.common import log as logging @@ -47,7 +48,7 @@ FLAGS.register_cli_opts(destroy_opts) def main(): - flags.parse_args(sys.argv) + config.parse_args(sys.argv) utils.monkey_patch() xenapi = xenapi_driver.XenAPIDriver() |