From 8b8859ed7d457f88fbf479bcfe164a9fda8eb413 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Fri, 22 Feb 2013 07:25:03 -0500 Subject: cli: Do interactive prompting after a context is created Some commands require a connection for interactive prompting. Prompt after the connection is created. Option parsing is still done before connecting so that help can be printed out without a Kerberos ticket. https://fedorahosted.org/freeipa/ticket/3453 --- ipalib/cli.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'ipalib/cli.py') diff --git a/ipalib/cli.py b/ipalib/cli.py index c3926c36f..e379f073a 100644 --- a/ipalib/cli.py +++ b/ipalib/cli.py @@ -1039,9 +1039,8 @@ class cli(backend.Executioner): cmd = self.Command[name] return cmd - def argv_to_keyword_arguments(self, cmd, argv): + def process_keyword_arguments(self, cmd, kw): """Get the keyword arguments for a Command""" - kw = self.parse(cmd, argv) if self.env.interactive: self.prompt_interactively(cmd, kw) if self.env.interactive: @@ -1061,10 +1060,11 @@ class cli(backend.Executioner): if cmd is None: return name = cmd.name - kw = self.argv_to_keyword_arguments(cmd, argv[1:]) + kw = self.parse(cmd, argv[1:]) if not isinstance(cmd, frontend.Local): self.create_context() try: + kw = self.process_keyword_arguments(cmd, kw) result = self.execute(name, **kw) if callable(cmd.output_for_cli): for param in cmd.params(): -- cgit