def __init__(self): # Patch command.Command to add a default auth_required = True command.Command.auth_required = True # Some commands do not need authentication help.HelpCommand.auth_required = False complete.CompleteCommand.auth_required = False # Slight change to the meaning of --debug self.DEFAULT_DEBUG_VALUE = None self.DEFAULT_DEBUG_HELP = 'Set debug logging and traceback on errors.' super(OpenStackShell, self).__init__( description=__doc__.strip(), version=openstackclient.__version__, command_manager=commandmanager.CommandManager('openstack.cli'), deferred_help=True) self.api_version = {} # Until we have command line arguments parsed, dump any stack traces self.dump_stack_trace = True # Assume TLS host certificate verification is enabled self.verify = True self.client_manager = None self.command_options = None
def __init__(self): # Patch command.Command to add a default auth_required = True command.Command.auth_required = True command.Command.best_effort = False # But not help help.HelpCommand.auth_required = False complete.CompleteCommand.best_effort = True super(OpenStackShell, self).__init__( description=__doc__.strip(), version=openstackclient.__version__, command_manager=commandmanager.CommandManager('openstack.cli')) # Until we have command line arguments parsed, dump any stack traces self.dump_stack_trace = True # This is instantiated in initialize_app() only when using # password flow auth self.auth_client = None # Assume TLS host certificate verification is enabled self.verify = True # Get list of extension modules self.ext_modules = clientmanager.get_extension_modules( 'openstack.cli.extension', ) # Loop through extensions to get parser additions for mod in self.ext_modules: self.parser = mod.build_option_parser(self.parser) # NOTE(dtroyer): This hack changes the help action that Cliff # automatically adds to the parser so we can defer # its execution until after the api-versioned commands # have been loaded. There doesn't seem to be a # way to edit/remove anything from an existing parser. # Replace the cliff-added help.HelpAction to defer its execution self.DeferredHelpAction = None for a in self.parser._actions: if type(a) == help.HelpAction: # Found it, save and replace it self.DeferredHelpAction = a # These steps are argparse-implementation-dependent self.parser._actions.remove(a) if self.parser._option_string_actions['-h']: del self.parser._option_string_actions['-h'] if self.parser._option_string_actions['--help']: del self.parser._option_string_actions['--help'] # Make a new help option to just set a flag self.parser.add_argument( '-h', '--help', action='store_true', dest='deferred_help', default=False, help="Show this help message and exit", )
def __init__(self): super(OpenStackShell, self).__init__( description=__doc__.strip(), version=openstackclient.__version__, command_manager=commandmanager.CommandManager('openstack.cli'), deferred_help=True) self.api_version = {} # Assume TLS host certificate verification is enabled self.verify = True
def test_get_command_names(self): mock_cmd_one = mock.Mock() mock_cmd_one.name = 'one' mock_cmd_two = mock.Mock() mock_cmd_two.name = 'cmd two' mock_pkg_resources = mock.Mock( return_value=[mock_cmd_one, mock_cmd_two], ) with mock.patch( 'pkg_resources.iter_entry_points', mock_pkg_resources, ) as iter_entry_points: mgr = commandmanager.CommandManager('test') assert iter_entry_points.called_once_with('test') cmds = mgr.get_command_names('test') self.assertEqual(['one', 'cmd two'], cmds)
def __init__(self): super(OpenStackShell, self).__init__( description=__doc__.strip(), version=openstackclient.__version__, command_manager=commandmanager.CommandManager('openstack.cli')) # This is instantiated in initialize_app() only when using # password flow auth self.auth_client = None # NOTE(dtroyer): This hack changes the help action that Cliff # automatically adds to the parser so we can defer # its execution until after the api-versioned commands # have been loaded. There doesn't seem to be a # way to edit/remove anything from an existing parser. # Replace the cliff-added help.HelpAction to defer its execution self.DeferredHelpAction = None for a in self.parser._actions: if type(a) == help.HelpAction: # Found it, save and replace it self.DeferredHelpAction = a # These steps are argparse-implementation-dependent self.parser._actions.remove(a) if self.parser._option_string_actions['-h']: del self.parser._option_string_actions['-h'] if self.parser._option_string_actions['--help']: del self.parser._option_string_actions['--help'] # Make a new help option to just set a flag self.parser.add_argument( '-h', '--help', action='store_true', dest='deferred_help', default=False, help="show this help message and exit", )
def __init__(self): # Patch command.Command to add a default auth_required = True command.Command.auth_required = True # Some commands do not need authentication help.HelpCommand.auth_required = False super(OpenStackShell, self).__init__( description=__doc__.strip(), version=openstackclient.__version__, command_manager=commandmanager.CommandManager('openstack.cli'), deferred_help=True) self.api_version = {} # Until we have command line arguments parsed, dump any stack traces self.dump_stack_trace = True # Assume TLS host certificate verification is enabled self.verify = True self.client_manager = None