[PATCH 6/9] Don't base StorageSpoke.ready on storage execute thread presence. (#861574)

David Lehman dlehman at redhat.com
Thu Oct 4 14:47:16 UTC 2012


---
 pyanaconda/ui/gui/spokes/storage.py |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py
index bdecc7c..a55eb52 100644
--- a/pyanaconda/ui/gui/spokes/storage.py
+++ b/pyanaconda/ui/gui/spokes/storage.py
@@ -329,11 +329,14 @@ class StorageSpoke(NormalSpoke, StorageChecker):
                                      target=self._doExecute))
 
     def _doExecute(self):
+        self._ready = False
+        communication.send_not_ready(self.__class__.__name__)
+        communication.send_message(self.__class__.__name__,
+                               _("Saving storage configuration..."))
         try:
             doKickstartStorage(self.storage, self.data, self.instclass)
         except StorageError as e:
             log.error("storage configuration failed: %s" % e)
-            communication.send_not_ready(self.__class__.__name__)
             communication.send_message(self.__class__.__name__,
                                    _("Failed to save storage configuration..."))
             self.data.clearpart.type = CLEARPART_TYPE_NONE
@@ -341,11 +344,13 @@ class StorageSpoke(NormalSpoke, StorageChecker):
             self.storage.config.update(self.data)
             self.storage.autoPartType = self.data.clearpart.type
             self.storage.reset()
-            communication.send_ready(self.__class__.__name__)
         else:
             if self.autopart:
                 # this was already run as part of doAutoPartition. dumb.
                 self.run()
+        finally:
+            self._ready = True
+            communication.send_ready(self.__class__.__name__)
 
     @property
     def completed(self):
@@ -357,7 +362,7 @@ class StorageSpoke(NormalSpoke, StorageChecker):
     def ready(self):
         # By default, the storage spoke is not ready.  We have to wait until
         # storageInitialize is done.
-        return self._ready and not threadMgr.get("AnaExecuteStorageThread")
+        return self._ready
 
     @property
     def status(self):
-- 
1.7.7.6



More information about the anaconda-patches mailing list