Backport --os-beta-command
Added to OSC in https://review.openstack.org/305436 and updated in https://review.openstack.org/324609 Change-Id: I6613954ed984c4d471fdd8bab8367731215318ec
This commit is contained in:
parent
876d81ef21
commit
263dd52fa9
@ -20,6 +20,9 @@ from cliff import lister
|
|||||||
from cliff import show
|
from cliff import show
|
||||||
import six
|
import six
|
||||||
|
|
||||||
|
from osc_lib import exceptions
|
||||||
|
from osc_lib.i18n import _
|
||||||
|
|
||||||
|
|
||||||
class CommandMeta(abc.ABCMeta):
|
class CommandMeta(abc.ABCMeta):
|
||||||
|
|
||||||
@ -37,6 +40,13 @@ class Command(command.Command):
|
|||||||
self.log.debug('run(%s)', parsed_args)
|
self.log.debug('run(%s)', parsed_args)
|
||||||
return super(Command, self).run(parsed_args)
|
return super(Command, self).run(parsed_args)
|
||||||
|
|
||||||
|
def validate_os_beta_command_enabled(self):
|
||||||
|
if not self.app.options.os_beta_command:
|
||||||
|
msg = _('Caution: This is a beta command and subject to '
|
||||||
|
'change. Use global option --os-beta-command '
|
||||||
|
'to enable this command.')
|
||||||
|
raise exceptions.CommandError(msg)
|
||||||
|
|
||||||
|
|
||||||
class Lister(Command, lister.Lister):
|
class Lister(Command, lister.Lister):
|
||||||
pass
|
pass
|
||||||
|
@ -265,6 +265,11 @@ class OpenStackShell(app.App):
|
|||||||
action='store_true',
|
action='store_true',
|
||||||
help="Print API call timing info",
|
help="Print API call timing info",
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--os-beta-command',
|
||||||
|
action='store_true',
|
||||||
|
help="Enable beta commands which are subject to change",
|
||||||
|
)
|
||||||
|
|
||||||
# osprofiler HMAC key argument
|
# osprofiler HMAC key argument
|
||||||
if osprofiler_profiler:
|
if osprofiler_profiler:
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
import mock
|
import mock
|
||||||
|
|
||||||
from osc_lib.command import command
|
from osc_lib.command import command
|
||||||
|
from osc_lib import exceptions
|
||||||
|
from osc_lib.tests import fakes as test_fakes
|
||||||
from osc_lib.tests import utils as test_utils
|
from osc_lib.tests import utils as test_utils
|
||||||
|
|
||||||
|
|
||||||
@ -33,3 +35,18 @@ class TestCommand(test_utils.TestCase):
|
|||||||
'osc_lib.tests.command.test_command.FakeCommand',
|
'osc_lib.tests.command.test_command.FakeCommand',
|
||||||
cmd.log.name,
|
cmd.log.name,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_validate_os_beta_command_enabled(self):
|
||||||
|
cmd = FakeCommand(mock.Mock(), mock.Mock())
|
||||||
|
cmd.app = mock.Mock()
|
||||||
|
cmd.app.options = test_fakes.FakeOptions()
|
||||||
|
|
||||||
|
# No exception is raised when enabled.
|
||||||
|
cmd.app.options.os_beta_command = True
|
||||||
|
cmd.validate_os_beta_command_enabled()
|
||||||
|
|
||||||
|
cmd.app.options.os_beta_command = False
|
||||||
|
self.assertRaises(
|
||||||
|
exceptions.CommandError,
|
||||||
|
cmd.validate_os_beta_command_enabled,
|
||||||
|
)
|
||||||
|
@ -110,6 +110,11 @@ class FakeApp(object):
|
|||||||
self.log = _log
|
self.log = _log
|
||||||
|
|
||||||
|
|
||||||
|
class FakeOptions(object):
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
self.os_beta_command = False
|
||||||
|
|
||||||
|
|
||||||
class FakeClient(object):
|
class FakeClient(object):
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
|
Loading…
Reference in New Issue
Block a user