summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark McLoughlin <markmc@redhat.com>2012-10-15 01:40:25 +0100
committerMark McLoughlin <markmc@redhat.com>2012-11-04 21:37:39 +0000
commitefede80046e0504dc8a68ab5447f97b05c02dd7a (patch)
tree91d38f5b23a25efc321b6df8e038444e07347bad
parentdd086638b8c6e43f275fc45b3fc7df2de90bb2c2 (diff)
downloadnova-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-xbin/nova-all3
-rwxr-xr-xbin/nova-api3
-rwxr-xr-xbin/nova-api-ec23
-rwxr-xr-xbin/nova-api-metadata3
-rwxr-xr-xbin/nova-api-os-compute3
-rwxr-xr-xbin/nova-cert3
-rwxr-xr-xbin/nova-clear-rabbit-queues3
-rwxr-xr-xbin/nova-compute3
-rwxr-xr-xbin/nova-console3
-rwxr-xr-xbin/nova-consoleauth3
-rwxr-xr-xbin/nova-dhcpbridge3
-rwxr-xr-xbin/nova-manage3
-rwxr-xr-xbin/nova-network3
-rwxr-xr-xbin/nova-novncproxy3
-rwxr-xr-xbin/nova-objectstore3
-rwxr-xr-xbin/nova-rpc-zmq-receiver3
-rwxr-xr-xbin/nova-scheduler3
-rwxr-xr-xbin/nova-xvpvncproxy3
-rw-r--r--nova/config.py29
-rw-r--r--nova/flags.py7
-rw-r--r--nova/test.py3
-rw-r--r--nova/tests/test_flags.py7
-rw-r--r--tools/xenserver/destroy_cached_images.py3
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()