installer: Fix logic of reading option values from cache.

Only options explicitly set must be stored before installer exits first step
of external CA setup. When installer continues all stored option values must
be restored.

https://fedorahosted.org/freeipa/ticket/5556

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
This commit is contained in:
David Kupka authored and Martin Basti committed 2015-12-21 18:37:32 +01:00
1 parent 30fbc7e948
commit f0703d3c2a
1 file changed
+3 -4
+3 -4
View File
@@ -444,9 +444,7 @@ def install_check(installer):
sys.exit("Directory Manager password required")
try:
cache_vars = read_cache(dm_password)
for name, value in cache_vars.items():
if name not in options.__dict__:
options.__dict__[name] = value
options.__dict__.update(cache_vars)
if cache_vars.get('external_ca', False):
options.external_ca = False
options.interactive = False
@@ -867,7 +865,8 @@ def install(installer):
options.admin_password = admin_password
options.host_name = host_name
options.reverse_zones = dns.reverse_zones
cache_vars = {n: getattr(options, n) for o, n in installer.knobs()}
cache_vars = {n: options.__dict__[n] for o, n in installer.knobs()
if n in options.__dict__}
write_cache(cache_vars)
ca.install_step_0(False, None, options)