[Freeipa-devel] [PATCH] Fix help system

Martin Kosek mkosek at redhat.com
Tue Oct 18 16:36:50 UTC 2011


On Tue, 2011-10-18 at 12:13 -0400, Rob Crittenden wrote:
> Forgive me for not having this in git format. This patch fixes a couple 
> of problems in the help system:
> 
> 1. If all commands in an object are disabled the object is still visible 
> as a topic, see ipa help aci as an example
> 
> 2. ipa help will show you that show-mappings help is broken
> 
> 3. You shouldn't be able to get help on disabled cli.
> 
> diff --git a/ipalib/cli.py b/ipalib/cli.py
> index 06e7b1c..7fe8087 100644
> --- a/ipalib/cli.py
> +++ b/ipalib/cli.py
> @@ -748,6 +748,8 @@ class help(frontend.Local):
>               self.print_commands(name)
>           elif name in self.Command:
>               cmd = self.Command[name]
> +            if cmd.NO_CLI:
> +                raise HelpError(topic=name)
>               print unicode(_('Purpose: %s')) % unicode(_(cmd.doc)).strip()
>               self.Backend.cli.build_parser(cmd).print_help()
>           elif mod_name in sys.modules:
> @@ -805,6 +807,9 @@ class help(frontend.Local):
>               m = '%s.%s' % (self._PLUGIN_BASE_MODULE, topic)
>               doc = (unicode(_(sys.modules[m].__doc__)) or '').strip()
> 
> +            if topic not in self.Command and len(commands) == 0:
> +                raise HelpError(topic=topic)
> +
>               print doc
>               if len(commands) > 1:
>                   print ''
> @@ -814,6 +819,9 @@ class help(frontend.Local):
>               print "\n"
> 
>   class show_mappings(frontend.Command):
> +    """
> +    Show mapping of LDAP attributes to command-line option.
> +    """
>       takes_args = (
>           Str('command_name',
>               label=_('Command name'),
> 

ACK. Works fine.

Please, just format it properly and add a commit message with ticket ID
https://fedorahosted.org/freeipa/ticket/1998 before pushing :-)

Martin




More information about the Freeipa-devel mailing list