Merge "nova-manage: Deprecate '--version' parameters"

This commit is contained in:
Jenkins
2017-08-10 21:02:05 +00:00
committed by Gerrit Code Review
3 changed files with 56 additions and 13 deletions

View File

@@ -102,14 +102,20 @@ def add_command_parsers(subparsers, categories):
action_kwargs = []
for args, kwargs in getattr(action_fn, 'args', []):
# FIXME(markmc): hack to assume dest is the arg name without
# the leading hyphens if no dest is supplied
kwargs.setdefault('dest', args[0][2:])
if kwargs['dest'].startswith('action_kwarg_'):
action_kwargs.append(kwargs['dest'][len('action_kwarg_'):])
# we must handle positional parameters (ARG) separately from
# positional parameters (--opt). Detect this by checking for
# the presence of leading '--'
if args[0] != args[0].lstrip('-'):
kwargs.setdefault('dest', args[0].lstrip('-'))
if kwargs['dest'].startswith('action_kwarg_'):
action_kwargs.append(
kwargs['dest'][len('action_kwarg_'):])
else:
action_kwargs.append(kwargs['dest'])
kwargs['dest'] = 'action_kwarg_' + kwargs['dest']
else:
action_kwargs.append(kwargs['dest'])
kwargs['dest'] = 'action_kwarg_' + kwargs['dest']
action_kwargs.append(args[0])
args = ['action_kwarg_' + arg for arg in args]
parser.add_argument(*args, **kwargs)

View File

@@ -54,6 +54,7 @@
from __future__ import print_function
import argparse
import functools
import os
import re
@@ -670,12 +671,20 @@ class DbCommands(object):
def __init__(self):
pass
@args('--version', metavar='<version>', help='Database version')
@args('--version', metavar='<version>', help=argparse.SUPPRESS)
@args('--local_cell', action='store_true',
help='Only sync db in the local cell: do not attempt to fan-out'
'to all cells')
def sync(self, version=None, local_cell=False):
@args('version2', metavar='VERSION', nargs='?', help='Database version')
def sync(self, version=None, local_cell=False, version2=None):
"""Sync the database up to the most recent version."""
if version and not version2:
print(_("DEPRECATED: The '--version' parameter was deprecated in "
"the Pike cycle and will not be supported in future "
"versions of nova. Use the 'VERSION' positional argument "
"instead"))
version2 = version
if not local_cell:
ctxt = context.RequestContext()
# NOTE(mdoff): Multiple cells not yet implemented. Currently
@@ -684,7 +693,7 @@ class DbCommands(object):
cell_mapping = objects.CellMapping.get_by_uuid(ctxt,
objects.CellMapping.CELL0_UUID)
with context.target_cell(ctxt, cell_mapping) as cctxt:
migration.db_sync(version, context=cctxt)
migration.db_sync(version2, context=cctxt)
except exception.CellMappingNotFound:
print(_('WARNING: cell0 mapping not found - not'
' syncing cell0.'))
@@ -853,10 +862,18 @@ class ApiDbCommands(object):
def __init__(self):
pass
@args('--version', metavar='<version>', help='Database version')
def sync(self, version=None):
@args('--version', metavar='<version>', help=argparse.SUPPRESS)
@args('version2', metavar='VERSION', nargs='?', help='Database version')
def sync(self, version=None, version2=None):
"""Sync the database up to the most recent version."""
return migration.db_sync(version, database='api')
if version and not version2:
print(_("DEPRECATED: The '--version' parameter was deprecated in "
"the Pike cycle and will not be supported in future "
"versions of nova. Use the 'VERSION' positional argument "
"instead"))
version2 = version
return migration.db_sync(version2, database='api')
def version(self):
"""Print the current database version."""

View File

@@ -0,0 +1,20 @@
---
upgrade:
- |
The ``nova-manage api_db sync`` and ``nova-manage db sync`` commands
previously took an optional ``--version`` parameter to determine which
version to sync to. For example::
$ nova-manage api_db sync --version some-version
This is now an optional positional argument. For example::
$ nova-manage api_db sync some-version
Aliases are provided but these are marked as deprecated and will be removed
in the next release of nova.
deprecations:
- |
The ``--version`` parameters of the ``nova-manage api_db sync`` and
``nova-manage db sync`` commands has been deprecated in favor of
positional arguments.