[PATCH] Sync up step counts in install.py with reality.
Chris Lumens
clumens at redhat.com
Fri Mar 21 20:45:17 UTC 2014
Our counts were off, plus a lot of steps are conditionalized which was not
being reflected in the count we established beforehand.
---
pyanaconda/install.py | 44 ++++++++++++++++++++++++++++++++++----------
1 file changed, 34 insertions(+), 10 deletions(-)
diff --git a/pyanaconda/install.py b/pyanaconda/install.py
index be2e1a5..a7e9d38 100644
--- a/pyanaconda/install.py
+++ b/pyanaconda/install.py
@@ -52,12 +52,22 @@ def _writeKS(ksdata):
def doConfiguration(storage, payload, ksdata, instClass):
from pyanaconda.kickstart import runPostScripts
- step_count = 6
+ willWriteNetwork = not flags.flags.imageInstall and not flags.flags.dirInstall
+ willRunRealmd = ksdata.realm.discovered
+
+ # configure base, create users, configure addons, initramfs, post-install
+ step_count = 5
+
+ # network, maybe
+ if willWriteNetwork:
+ step_count += 1
+
# if a realm was discovered,
# increment the counter as the
# real joining step will be executed
- if ksdata.realm.discovered:
+ if willRunRealmd:
step_count += 1
+
progressQ.send_init(step_count)
# Now run the execute methods of ksdata that require an installed system
@@ -74,7 +84,7 @@ def doConfiguration(storage, payload, ksdata, instClass):
ksdata.xconfig.execute(storage, ksdata, instClass)
ksdata.skipx.execute(storage, ksdata, instClass)
- if not flags.flags.imageInstall and not flags.flags.dirInstall:
+ if willWriteNetwork:
with progress_report(_("Writing network configuration")):
ksdata.network.execute(storage, ksdata, instClass)
@@ -93,7 +103,7 @@ def doConfiguration(storage, payload, ksdata, instClass):
with progress_report(_("Generating initramfs")):
payload.recreateInitrds(force=True)
- if ksdata.realm.discovered:
+ if willRunRealmd:
with progress_report(_("Joining realm: %s") % ksdata.realm.discovered):
ksdata.realm.execute(storage, ksdata, instClass)
@@ -112,6 +122,9 @@ def doInstall(storage, payload, ksdata, instClass):
The two main tasks for this are putting filesystems onto disks and
installing packages onto those filesystems.
"""
+ willRunRealmd = ksdata.realm.join_realm
+ willInstallBootloader = not flags.flags.dirInstall and not ksdata.bootloader.disabled
+
# First save system time to HW clock.
if flags.can_touch_runtime_system("save system time to HW clock"):
timezone.save_hw_clock(ksdata.timezone)
@@ -120,16 +133,27 @@ def doInstall(storage, payload, ksdata, instClass):
# those are the ones that take the most time.
steps = len(storage.devicetree.findActions(type="create", object="format")) + \
len(storage.devicetree.findActions(type="resize", object="format"))
- steps += 6
- # pre setup phase, packages setup, packages, bootloader, realmd,
- # post install
- progressQ.send_init(steps)
+
+ # pre setup phase, post install
+ steps += 2
+
+ # realmd, maybe
+ if willRunRealmd:
+ steps += 1
+
+ # bootloader, maybe
+ if willInstallBootloader:
+ steps += 1
# This should be the only thread running, wait for the others to finish if not.
if threadMgr.running > 1:
+ progressQ.send_init(steps+1)
+
with progress_report(_("Waiting for %s threads to finish") % (threadMgr.running-1)):
map(log.debug, ("Thread %s is running" % n for n in threadMgr.names))
threadMgr.wait_all()
+ else:
+ progressQ.send_init(steps)
with progress_report(_("Setting up the installation environment")):
ksdata.firstboot.setup(storage, ksdata, instClass)
@@ -148,7 +172,7 @@ def doInstall(storage, payload, ksdata, instClass):
# Discover information about realms to join,
# to determine additional packages
- if ksdata.realm.join_realm:
+ if willRunRealmd:
with progress_report(_("Discovering realm to join")):
ksdata.realm.setup()
@@ -171,7 +195,7 @@ def doInstall(storage, payload, ksdata, instClass):
payload.postInstall()
# Do bootloader.
- if not flags.flags.dirInstall and not ksdata.bootloader.disabled:
+ if willInstallBootloader:
with progress_report(_("Installing bootloader")):
writeBootLoader(storage, payload, instClass, ksdata)
--
1.8.3.1
More information about the anaconda-patches
mailing list