Apparently I smashed "delete" a couple of times while modifying
checkStorage for use as an abstract base class. Also, StorageChecker
really does need to send messages for StorageSpoke and not whatever
class is implementing it, since CustomPartitioningSpoke is not on a hub.
Added a constructor parameter for the spoke name so StorageChecker isn't
totally GUI specific.
Also also I completely misinterpreted how CustomPartitioningSpoke and
StorageSpoke communicate errors via StorageChecker, so reverted that
part and made errors and warnings class attributes on StorageChecker
again.
---
pyanaconda/ui/gui/spokes/storage.py | 8 ++++----
pyanaconda/ui/helpers.py | 20 +++++++++++---------
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py
index d205f6b..177282b 100644
--- a/pyanaconda/ui/gui/spokes/storage.py
+++ b/pyanaconda/ui/gui/spokes/storage.py
@@ -405,7 +405,7 @@ class StorageSpoke(NormalSpoke, StorageChecker):
doKickstartStorage(self.storage, self.data, self.instclass)
except (StorageError, KickstartValueError) as e:
log.error("storage configuration failed: %s", e)
- self.errors = str(e).split("\n")
+ StorageChecker.errors = str(e).split("\n")
hubQ.send_message(self.__class__.__name__, _("Failed to save storage
configuration..."))
self.data.bootloader.bootDrive = ""
self.data.ignoredisk.drives = []
@@ -417,14 +417,14 @@ class StorageSpoke(NormalSpoke, StorageChecker):
self._applyDiskSelection(self.selected_disks)
except BootLoaderError as e:
log.error("BootLoader setup failed: %s", e)
- self.errors = str(e).split("\n")
+ StorageChecker.errors = str(e).split("\n")
hubQ.send_message(self.__class__.__name__, _("Failed to save storage
configuration..."))
self.data.bootloader.bootDrive = ""
else:
if self.autopart:
# this was already run as part of doAutoPartition. dumb.
- self.errors = []
- self.warnings = []
+ StorageChecker.errors = []
+ StorageChecker.warnings = []
self.run()
finally:
self._ready = True
diff --git a/pyanaconda/ui/helpers.py b/pyanaconda/ui/helpers.py
index decc6cf..b517412 100644
--- a/pyanaconda/ui/helpers.py
+++ b/pyanaconda/ui/helpers.py
@@ -69,10 +69,11 @@ class StorageChecker(object):
__metaclass__ = ABCMeta
log = logging.getLogger("anaconda")
+ errors = []
+ warnings = []
- def __init__(self):
- self.errors = []
- self.warnings = []
+ def __init__(self, mainSpokeClass="StorageSpoke"):
+ self._mainSpokeClass = mainSpokeClass
@abstractproperty
def storage(self):
@@ -85,13 +86,14 @@ class StorageChecker(object):
def checkStorage(self):
threadMgr.wait(constants.THREAD_EXECUTE_STORAGE)
- hubQ.send_not_read(self.__class__.__name__)
- hubQ.send_message(self.__class__.__name__, _("Check storage
configuration..."))
- (self.errors,
- self.warnings) = self.storage.sanityCheck()
- for e in self.errors:
+ hubQ.send_not_ready(self._mainSpokeClass)
+ hubQ.send_message(self._mainSpokeClass, _("Checking storage
configuration..."))
+ (StorageChecker.errors,
+ StorageChecker.warnings) = self.storage.sanityCheck()
+ hubQ.send_ready(self._mainSpokeClass, True)
+ for e in StorageChecker.errors:
self.log.error(e)
- for w in self.warnings:
+ for w in StorageChecker.warnings:
self.log.warn(w)
class SourceSwitchHandler(object):
--
1.8.4.2