summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pyanaconda/ui/gui/spokes/software.py54
1 files changed, 30 insertions, 24 deletions
diff --git a/pyanaconda/ui/gui/spokes/software.py b/pyanaconda/ui/gui/spokes/software.py
index 080d7da36..2083b5371 100644
--- a/pyanaconda/ui/gui/spokes/software.py
+++ b/pyanaconda/ui/gui/spokes/software.py
@@ -32,6 +32,7 @@ from pyanaconda.ui.gui.utils import enlightbox, gdk_threaded
from pyanaconda.ui.gui.categories.software import SoftwareCategory
from .source import AdditionalReposDialog
+from pyanaconda.kickstart import packagesSeen
from pykickstart.parser import Group
import sys
@@ -67,15 +68,13 @@ class SoftwareSelectionSpoke(NormalSpoke):
from pyanaconda.threads import threadMgr, AnacondaThread
row = self._get_selected_environment()
- if not row:
- return
-
- self._selectFlag = False
- self.payload.data.packages.groupList = []
- self.payload.selectEnvironment(row[2])
- self.environment = row[2]
- for group in self.selectedGroups:
- self.payload.selectGroup(group)
+ if row:
+ self._selectFlag = False
+ self.payload.data.packages.groupList = []
+ self.payload.selectEnvironment(row[2])
+ self.environment = row[2]
+ for group in self.selectedGroups:
+ self.payload.selectGroup(group)
communication.send_not_ready(self.__class__.__name__)
threadMgr.add(AnacondaThread(name="AnaCheckSoftwareThread",
@@ -101,7 +100,6 @@ class SoftwareSelectionSpoke(NormalSpoke):
@property
def completed(self):
from pyanaconda.threads import threadMgr
- from pyanaconda.kickstart import packagesSeen
processingDone = not threadMgr.get("AnaCheckSoftwareThread") and \
not self._errorMsgs and \
@@ -130,7 +128,6 @@ class SoftwareSelectionSpoke(NormalSpoke):
@property
def status(self):
- from pyanaconda.kickstart import packagesSeen
from pyanaconda.threads import threadMgr
if self._errorMsgs:
@@ -169,19 +166,28 @@ class SoftwareSelectionSpoke(NormalSpoke):
communication.send_message(self.__class__.__name__, _("Downloading group metadata..."))
- with gdk_threaded():
- # Grabbing the list of groups could potentially take a long time the
- # first time (yum does a lot of magic property stuff, some of which
- # involves side effects like network access) so go ahead and grab
- # them once now.
- try:
- self.refresh()
- except MetadataError:
- communication.send_message(self.__class__.__name__,
- _("No installation source available"))
- return
-
- self.payload.release()
+ # we have no way to select environments with kickstart right now
+ # so don't try.
+ if flags.automatedInstall and packagesSeen:
+ # We don't want to do a full refresh, just
+ # join the metadata thread
+ mdGatherThread = threadMgr.get("AnaPayloadMDThread")
+ if mdGatherThread:
+ mdGatherThread.join()
+ else:
+ with gdk_threaded():
+ # Grabbing the list of groups could potentially take a long time the
+ # first time (yum does a lot of magic property stuff, some of which
+ # involves side effects like network access) so go ahead and grab
+ # them once now.
+ try:
+ self.refresh()
+ except MetadataError:
+ communication.send_message(self.__class__.__name__,
+ _("No installation source available"))
+ return
+
+ self.payload.release()
communication.send_ready(self.__class__.__name__)