diff options
| author | Jan Cholasta <jcholast@redhat.com> | 2015-11-02 15:32:35 +0100 |
|---|---|---|
| committer | Jan Cholasta <jcholast@redhat.com> | 2015-11-05 10:33:01 +0100 |
| commit | 6a55174bb6c24632bbd46c8421399343e1282ce0 (patch) | |
| tree | 9c59548241cd8d1dd0079c37e547a5c22d0b55e7 /ipapython/install/cli.py | |
| parent | 43654c973c5977ae55250a30b5652f160b11d590 (diff) | |
| download | freeipa-6a55174bb6c24632bbd46c8421399343e1282ce0.tar.gz freeipa-6a55174bb6c24632bbd46c8421399343e1282ce0.tar.xz freeipa-6a55174bb6c24632bbd46c8421399343e1282ce0.zip | |
install: fix command line option validation
The code which calls the validators was accidentally removed, re-add it.
https://fedorahosted.org/freeipa/ticket/5386
https://fedorahosted.org/freeipa/ticket/5391
https://fedorahosted.org/freeipa/ticket/5392
Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
Diffstat (limited to 'ipapython/install/cli.py')
| -rw-r--r-- | ipapython/install/cli.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/ipapython/install/cli.py b/ipapython/install/cli.py index 0047eecb0..d2250e516 100644 --- a/ipapython/install/cli.py +++ b/ipapython/install/cli.py @@ -282,7 +282,8 @@ class ConfigureTool(admintool.AdminTool): kwargs = {} transformed_cls = self._transform(self.configurable_class) - for owner_cls, name in transformed_cls.knobs(): + knob_classes = {n: getattr(c, n) for c, n in transformed_cls.knobs()} + for name in knob_classes: value = getattr(self.options, name, None) if value is not None: kwargs[name] = value @@ -294,8 +295,10 @@ class ConfigureTool(admintool.AdminTool): try: cfgr = transformed_cls(**kwargs) except core.KnobValueError as e: - knob_cls = getattr(transformed_cls, e.name) + knob_cls = knob_classes[e.name] try: + if self.positional_arguments is None: + raise IndexError index = self.positional_arguments.index(e.name) except IndexError: cli_name = knob_cls.cli_name or e.name.replace('_', '-') |
