Port to argparse based cfg
Import latest cfg from oslo-incubator with these changes: Add deprecated --logdir common opt Add deprecated --logfile common opt. Allow nova and others to override some logging defaults Fixing the trim for ListOp when reading from config file Fix set_default() with boolean CLI options Improve cfg's argparse sub-parsers support Hide the GroupAttr conf and group attributes Fix regression with cfg CLI arguments Fix broken --help with CommonConfigOpts Fix ListOpt to trim whitespace updating sphinx documentation Don't reference argparse._StoreAction Fix minor coding style issue Remove ConfigCliParser class Add support for positional arguments Use stock argparse behaviour for optional args Use stock argparse --usage behaviour Use stock argparse --version behaviour Remove add_option() method Completely remove cfg's disable_interspersed_args() argparse support for cfg The main cfg API change is that CONF() no longer returns the un-parsed CLI arguments. To handle these args, you need to use the support for positional arguments or sub-parsers. Switching nova-manage to use sub-parser based CLI arguments means the following changes in behaviour: - no more lazy matching of commands - e.g. 'nova-manage proj q' will no longer work. If we find out about common abbreviations used in peoples' scripts, we can easily add those. - the help output displayed if you run nova-manage without any args (or just a category) has changed - 'nova-manage version list' is no longer equivalent to 'nova-manage version' Change-Id: I19ef3a1c00e97af64d199e27cb1cdc5c63b46a82
This commit is contained in:
@@ -48,12 +48,18 @@ from nova.openstack.common import log as logging
|
||||
from nova.openstack.common import rpc
|
||||
|
||||
|
||||
delete_exchange_opt = cfg.BoolOpt('delete_exchange',
|
||||
default=False,
|
||||
help='delete nova exchange too.')
|
||||
opts = [
|
||||
cfg.MultiStrOpt('queues',
|
||||
default=[],
|
||||
positional=True,
|
||||
help='Queues to delete'),
|
||||
cfg.BoolOpt('delete_exchange',
|
||||
default=False,
|
||||
help='delete nova exchange too.'),
|
||||
]
|
||||
|
||||
CONF = cfg.CONF
|
||||
CONF.register_cli_opt(delete_exchange_opt)
|
||||
CONF.register_cli_opts(opts)
|
||||
|
||||
|
||||
def delete_exchange(exch):
|
||||
@@ -69,8 +75,8 @@ def delete_queues(queues):
|
||||
x.queue_delete(q)
|
||||
|
||||
if __name__ == '__main__':
|
||||
args = config.parse_args(sys.argv)
|
||||
config.parse_args(sys.argv)
|
||||
logging.setup("nova")
|
||||
delete_queues(args[1:])
|
||||
delete_queues(CONF.queues)
|
||||
if CONF.delete_exchange:
|
||||
delete_exchange(CONF.control_exchange)
|
||||
|
||||
Reference in New Issue
Block a user