class Installer(object):
- def __init__(self):
+ def __init__(self, *pargs):
self.name = 'ipa'
self.ptype = 'helper'
self.logger = None
# Check if we already have a keytab for HTTP
if 'krb_httpd_keytab' in opts:
+ msg = "Searching for keytab in: %s" % opts['krb_httpd_keytab']
+ print >> sys.stdout, msg,
if os.path.exists(opts['krb_httpd_keytab']):
+ print >> sys.stdout, "... Found!"
return
+ else:
+ print >> sys.stdout, "... Not found!"
+ msg = "Searching for keytab in: %s" % HTTPD_IPA_KEYTAB
+ print >> sys.stdout, msg,
if os.path.exists(HTTPD_IPA_KEYTAB):
opts['krb_httpd_keytab'] = HTTPD_IPA_KEYTAB
+ print >> sys.stdout, "... Found!"
return
+ else:
+ print >> sys.stdout, "... Not found!"
us = socket.gethostname()
princ = 'HTTP/%s@%s' % (us, self.realm)
from ipalib import errors as ipaerrors
for srv in self.server:
+ msg = "Testing access to server: %s" % srv
+ print >> sys.stdout, msg,
try:
server = srv
c = ipaldap.IPAdmin(host=server)
c.do_sasl_gssapi_bind()
del c
+ print >> sys.stdout, "... Succeeded!"
break
except ipaerrors.ACIError, e:
# usually this error is returned when we have no
logger.info('Cmd> %s\n%s', e.cmd, e.output)
try:
+ msg = "Trying to fetch keytab[%s] for %s" % (
+ opts['krb_httpd_keytab'], princ)
+ print >> sys.stdout, msg,
subprocess.check_output([IPA_GETKEYTAB,
'-s', server, '-p', princ,
'-k', opts['krb_httpd_keytab']],
def configure_server(self, opts):
if opts['ipa'] != 'yes' and opts['ipa'] != 'auto':
return
+ if opts['ipa'] != 'yes' and opts['krb'] == 'no':
+ return
self.logger = logging.getLogger()
self.get_keytab(opts)
# Forcibly use krb then pam modules
- if not 'lm_order' in opts:
+ if 'lm_order' not in opts:
opts['lm_order'] = []
opts['krb'] = 'yes'
if 'krb' not in opts['lm_order']:
opts['lm_order'].insert(0, 'krb')
- opts['pam'] = 'yes'
- if 'pam' not in opts['lm_order']:
- opts['lm_order'].append('pam')
+ opts['form'] = 'yes'
+ if not any(lm in opts['lm_order'] for lm in ('form', 'pam')):
+ opts['lm_order'].append('form')