Add support for client failover to the ipa command-line.

This adds a new global option to the ipa command, -f/--no-fallback. If this
is included then just the server configured in /etc/ipa/default.conf is used.
Otherwise that is tried first then all servers in DNS with the ldap SRV record
are tried.

Create a new Local() Command class for local-only commands. The help
command is one of these. It shouldn't need a remote connection to execute.

ticket #15
This commit is contained in:
Rob Crittenden
2010-07-26 17:54:38 -04:00
parent 3e6f0f5721
commit 1df10a88cd
11 changed files with 172 additions and 20 deletions

View File

@@ -572,7 +572,7 @@ class textui(backend.Backend):
self.print_line('')
return selection
class help(frontend.Command):
class help(frontend.Local):
"""
Display help for a command or topic.
"""
@@ -778,12 +778,13 @@ class cli(backend.Executioner):
if len(argv) == 0:
self.Command.help()
return
self.create_context()
(key, argv) = (argv[0], argv[1:])
name = from_cli(key)
if name not in self.Command or self.Command[name].INTERNAL:
raise CommandError(name=key)
cmd = self.Command[name]
if not isinstance(cmd, frontend.Local):
self.create_context()
kw = self.parse(cmd, argv)
if self.env.interactive:
self.prompt_interactively(cmd, kw)