[Freeipa-devel] [PATCH] 0018 Unroll StrEnum values when displaying help
Alexander Bokovoy
abokovoy at redhat.com
Tue Oct 4 12:29:21 UTC 2011
Hi,
when help is displayed, for options that require values we show their
type. With string enumerations this does not really help to the user
as it is unclear what are the values of the enumeration.
Attached patch fixes it by providing nicer list of possible values.
https://fedorahosted.org/freeipa/ticket/1848
As result, instead of what is shown in the ticket:
------------------------------------------------------------
[root at kungfupanda ~]# ipa help hbacrule-add
Purpose: Create a new HBAC rule.
Usage: ipa [global-options] hbacrule-add NAME [options]
Options:
-h, --help show this help message and exit
--usercat=STRENUM User category the rule applies to
--hostcat=STRENUM Host category the rule applies to
--srchostcat=STRENUM Source host category the rule applies to
--servicecat=STRENUM Service category the rule applies to
-------------------------------------------------------------
one would get following:
------------------------------------------------------------
[root at kungfupanda ~]# ipa help hbacrule-add
Purpose: Create a new HBAC rule.
Usage: ipa [global-options] hbacrule-add NAME [options]
Options:
-h, --help show this help message and exit
--usercat=['all'] User category the rule applies to
--hostcat=['all'] Host category the rule applies to
--srchostcat=['all'] Source host category the rule applies to
--servicecat=['all'] Service category the rule applies to
------------------------------------------------------------
It becomes even more reasonable with type or class options -- overall
we have 65 StrEnums in current set of options.
For example, in dnsrecord-add --class option was shown as
--class=STRENUM DNS class
With the patch attached it will be more understandable:
------------------------------------------------------------
[root at host3 ~]# ipa help dnsrecord-add
Purpose: Add new DNS resource record.
Usage: ipa [global-options] dnsrecord-add DNSZONE NAME [options]
Options:
-h, --help show this help message and exit
--ttl=INT Time to live
--class=['IN', 'CS', 'CH', 'HS']
DNS class
--addattr=STR Add an attribute/value pair. Format is attr=value. The
attribute must be part of the schema.
--setattr=STR Set an attribute to a name/value pair. Format is
attr=value. For multi-valued attributes, the command
replaces the values already present.
------------------------------------------------------------
--
/ Alexander Bokovoy
-------------- next part --------------
>From 911c0bbdbd137347e62e72384f1cd516d29dfec3 Mon Sep 17 00:00:00 2001
From: Alexander Bokovoy <abokovoy at redhat.com>
Date: Tue, 4 Oct 2011 15:17:58 +0300
Subject: [PATCH] Unroll StrEnum values when displaying help
https://fedorahosted.org/freeipa/ticket/1848
---
ipalib/cli.py | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/ipalib/cli.py b/ipalib/cli.py
index 0a7d1a4cf30352198eebcc7ff65bcc16f948cda7..1c34d6939285b2dcae522c13be13dc4d9f23dc57 100644
--- a/ipalib/cli.py
+++ b/ipalib/cli.py
@@ -48,7 +48,7 @@ import plugable
import util
from errors import PublicError, CommandError, HelpError, InternalError, NoSuchNamespaceError, ValidationError, NotFound, NotConfiguredError
from constants import CLI_TAB
-from parameters import Password, Bytes, File, Str
+from parameters import Password, Bytes, File, Str, StrEnum
from text import _
from ipapython.version import API_VERSION
@@ -1008,8 +1008,11 @@ class cli(backend.Executioner):
kw['action'] = 'store_false'
else:
kw['action'] = 'store_true'
+ elif isinstance(option, StrEnum):
+ kw['metavar'] = metavar=map(lambda x: str(x), option.values)
else:
kw['metavar'] = metavar=option.__class__.__name__.upper()
+
if option.cli_short_name:
o = optparse.make_option('-%s' % option.cli_short_name, '--%s' % to_cli(option.cli_name), **kw)
else:
--
1.7.6.4
More information about the Freeipa-devel
mailing list