Fix ipa command running in server_context=True

Make the LDAP host and port environment variables
More changes so that commands have a shell return value
lite-xmlrpc no longer hardcodes the kerberos credentials cache location
This commit is contained in:
Rob Crittenden
2008-10-23 11:00:50 -04:00
parent f8e8ac8503
commit 06a82bf4b6
3 changed files with 22 additions and 6 deletions

View File

@@ -311,9 +311,25 @@ class CLI(object):
break
except errors.ValidationError, e:
error = e.error
if self.api.env.server_context:
try:
import krbV
import ldap
from ipa_server import conn
from ipa_server.servercore import context
krbccache = krbV.default_context().default_ccache().name
context.conn = conn.IPAConn(self.api.env.ldaphost, self.api.env.ldapport, krbccache)
except ImportError:
print >> sys.stderr, "There was a problem importing a Python module: %s" % sys.exc_value
return 2
except ldap.LDAPError, e:
print >> sys.stderr, "There was a problem connecting to the LDAP server: %s" % e[0].get('desc')
return 2
ret = cmd(**kw)
if callable(cmd.output_for_cli):
cmd.output_for_cli(ret)
return cmd.output_for_cli(ret)
else:
return 0
def parse(self, cmd, argv):
parser = self.build_parser(cmd)

View File

@@ -146,6 +146,8 @@ def set_default_env(env):
server_context = EnvProp(bool, True),
server = LazyIter(basestring, get_servers),
verbose = EnvProp(bool, False),
ldaphost = EnvProp(basestring, 'localhost'),
ldapport = EnvProp(int, 389),
)
env.update(default)