Description of problem:
running ipa-server-install fails, reporting a error that Env._bootstrap() already called
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. install ipa-server rpm's
2. ipa-server-install -N -U --hostname=iparhel5-vma.dsdev.sjc.redhat.com -r DSDEV.SJC.REDHAT.COM -p pw -P pw -a pw -u root --setup-dns --forwarder 10.14.63.2
done configuring httpd.
Applying LDAP updates
restarting the directory server
restarting the KDC
Unexpected error - see ipaserver-install.log for details:
Env._bootstrap() already called
Starting Kerberos 5 KDC: [ OK ]
2009-09-23 13:32:17,570 INFO
2009-09-23 13:32:17,571 DEBUG Loading StateFile from '/var/lib/ipa/sysrestore/sysrestore.state'
2009-09-23 13:32:17,575 DEBUG Env._bootstrap() already called
File "/usr/sbin/ipa-server-install", line 775, in ?
File "/usr/sbin/ipa-server-install", line 716, in main
File "/usr/lib/python2.4/site-packages/ipalib/plugable.py", line 432, in bootstrap
File "/usr/lib/python2.4/site-packages/ipalib/config.py", line 443, in _bootstrap
File "/usr/lib/python2.4/site-packages/ipalib/config.py", line 408, in __doing
This is caused by both Martin and I initializing the ipalib environment (and for different reasons) when doing a DNS install.
I think we can move the initialization earlier if we can:
- make loading the schema in ldap2 non-fatal
- load the schema later (like in connect) if it isn't already set
- ensure that I can still override some things in the env before finalize(). I think that by definition I can, just haven't tried yet
I have somewhat of a fix but one thing is killing me.
When the plugin is loaded it attempts to fetch the schema from the LDAP server. Since this is the installer we don't have a server to connect to.
I made the ldap2 plugin handle it but then there is no way to later load the schema because the class gets locked once it is finalized.
I think we need to be able to define a set of class variables that may be modified at runtime. That or _schema is going to need to be a global variable.
Created attachment 362684 [details]
only initialize the API once in the installer, make plugins startable w/o LDAP server
Verified to not be happening 12-8-2010