diff --git a/openstackclient/shell.py b/openstackclient/shell.py index b7bc7b1..b96fb08 100644 --- a/openstackclient/shell.py +++ b/openstackclient/shell.py @@ -16,6 +16,7 @@ """Command-line interface to the OpenStack APIs""" +import argparse import getpass import logging import sys @@ -131,6 +132,16 @@ class OpenStackShell(app.App): self.log.info("END return value: %s", ret_val) def init_profile(self): + # NOTE(dtroyer): Remove this 'if' block when the --profile global + # option is removed + if osprofiler_profiler and self.options.old_profile: + self.log.warning( + 'The --profile option is deprecated, ' + 'please use --os-profile instead' + ) + if not self.options.profile: + self.options.profile = self.options.old_profile + self.do_profile = osprofiler_profiler and self.options.profile if self.do_profile: osprofiler_profiler.init(self.options.profile) @@ -144,7 +155,7 @@ class OpenStackShell(app.App): # bigger than most big default one (CRITICAL) or something like # that (PROFILE = 60 for instance), but not sure we need it here. self.log.warning("Trace ID: %s" % trace_id) - self.log.warning("To display trace use next command:\n" + self.log.warning("Display trace with command:\n" "osprofiler trace show --html %s " % trace_id) def run_subcommand(self, argv): @@ -242,16 +253,22 @@ class OpenStackShell(app.App): # osprofiler HMAC key argument if osprofiler_profiler: - parser.add_argument('--profile', - metavar='hmac-key', - help='HMAC key to use for encrypting context ' - 'data for performance profiling of operation. ' - 'This key should be the value of one of the ' - 'HMAC keys configured in osprofiler ' - 'middleware in the projects user would like ' - 'to profile. It needs to be specified in ' - 'configuration files of the required ' - 'projects.') + parser.add_argument( + '--os-profile', + metavar='hmac-key', + dest='profile', + help='HMAC key for encrypting profiling context data', + ) + # NOTE(dtroyer): This global option should have been named + # --os-profile as --profile interferes with at + # least one existing command option. Deprecate + # --profile and remove after Apr 2017. + parser.add_argument( + '--profile', + metavar='hmac-key', + dest='old_profile', + help=argparse.SUPPRESS, + ) return clientmanager.build_plugin_option_parser(parser) diff --git a/openstackclient/tests/test_shell.py b/openstackclient/tests/test_shell.py index ab97dd9..90454fc 100644 --- a/openstackclient/tests/test_shell.py +++ b/openstackclient/tests/test_shell.py @@ -112,7 +112,7 @@ global_options = { '--os-default-domain': (DEFAULT_DOMAIN_NAME, True, True), '--os-cacert': ('/dev/null', True, True), '--timing': (True, True, False), - '--profile': ('SECRET_KEY', True, False), + '--os-profile': ('SECRET_KEY', True, False), '--os-interface': (DEFAULT_INTERFACE, True, True) }