summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2017-03-08 08:01:50 +0000
committerMartin Basti <mbasti@redhat.com>2017-03-13 10:12:40 +0100
commit774d8d0a5dc0ac175ab0cecc76001632c2a79744 (patch)
tree1e875dd004fb1af9887eabb7b41b6264a7cfaf30
parent1cfe06c79eb0b98a0f4bd663165156596b59e85f (diff)
downloadfreeipa-774d8d0a5dc0ac175ab0cecc76001632c2a79744.tar.gz
freeipa-774d8d0a5dc0ac175ab0cecc76001632c2a79744.tar.xz
freeipa-774d8d0a5dc0ac175ab0cecc76001632c2a79744.zip
install CLI: remove magic option groups
Do not automatically create the "basic options" and "uninstall options" option groups in the CLI code. https://pagure.io/freeipa/issue/6392 Reviewed-By: Stanislav Laznicka <slaznick@redhat.com>
-rw-r--r--ipapython/install/cli.py17
1 files changed, 6 insertions, 11 deletions
diff --git a/ipapython/install/cli.py b/ipapython/install/cli.py
index 741bf9d89..bcee6d725 100644
--- a/ipapython/install/cli.py
+++ b/ipapython/install/cli.py
@@ -136,22 +136,22 @@ class ConfigureTool(admintool.AdminTool):
help="unattended (un)installation never prompts the user",
)
- basic_group = optparse.OptionGroup(parser, "basic options")
-
groups = collections.OrderedDict()
- groups[None] = basic_group
+ # if no group is defined, add the option to the parser top level
+ groups[None] = parser
for owner_cls, name in transformed_cls.knobs():
knob_cls = getattr(owner_cls, name)
if knob_cls.is_cli_positional() is not positional:
continue
- group_cls = owner_cls.group()
+ group_cls = knob_cls.group()
try:
opt_group = groups[group_cls]
except KeyError:
opt_group = groups[group_cls] = optparse.OptionGroup(
- parser, "{0} options".format(group_cls.description))
+ parser, "{0} options".format(group_cls.description))
+ parser.add_option_group(opt_group)
knob_type = knob_cls.type
if issubclass(knob_type, list):
@@ -237,9 +237,6 @@ class ConfigureTool(admintool.AdminTool):
**kwargs
)
- for opt_group in groups.values():
- parser.add_option_group(opt_group)
-
super(ConfigureTool, cls).add_options(parser,
debug_option=cls.debug_option)
@@ -353,8 +350,7 @@ class InstallTool(ConfigureTool):
super(InstallTool, cls).add_options(parser, positional)
if cls.uninstall_kwargs is not None:
- uninstall_group = optparse.OptionGroup(parser, "uninstall options")
- uninstall_group.add_option(
+ parser.add_option(
'--uninstall',
dest='uninstall',
default=False,
@@ -362,7 +358,6 @@ class InstallTool(ConfigureTool):
help=("uninstall an existing installation. The uninstall can "
"be run with --unattended option"),
)
- parser.add_option_group(uninstall_group)
@classmethod
def get_command_class(cls, options, args):