[PATCH 13/21] Make it possible to call setUpBootLoader safely at any time.

David Lehman dlehman at redhat.com
Thu Aug 9 19:28:32 UTC 2012


---
 pyanaconda/bootloader.py       |    2 +-
 pyanaconda/storage/__init__.py |   10 +++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py
index 971c0dc..fac9ee8 100644
--- a/pyanaconda/bootloader.py
+++ b/pyanaconda/bootloader.py
@@ -620,6 +620,7 @@ class BootLoader(object):
         return valid
 
     def set_stage1_device(self, devices):
+        self.stage1_device = None
         if not self.stage1_disk:
             raise BootLoaderError("need stage1 disk to set stage1 device")
 
@@ -627,7 +628,6 @@ class BootLoader(object):
             self.stage1_device = self.stage2_device
             return
 
-        self.stage1_device = None
         for device in devices:
             if self.stage1_disk not in device.disks:
                 continue
diff --git a/pyanaconda/storage/__init__.py b/pyanaconda/storage/__init__.py
index 8e57a44..ee4e20c 100644
--- a/pyanaconda/storage/__init__.py
+++ b/pyanaconda/storage/__init__.py
@@ -38,6 +38,7 @@ from pykickstart.constants import *
 from pyanaconda.flags import flags
 from pyanaconda import tsort
 from pyanaconda.errors import *
+from pyanaconda.bootloader import BootLoaderError
 
 from errors import *
 from devices import *
@@ -1746,7 +1747,10 @@ class Storage(object):
 
         self.bootloader.stage1_disk = self.devicetree.resolveDevice(self.data.bootloader.bootDrive)
         self.bootloader.stage2_device = self.bootDevice
-        self.bootloader.set_stage1_device(self.devices)
+        try:
+            self.bootloader.set_stage1_device(self.devices)
+        except BootLoaderError as e:
+            log.debug("failed to set bootloader stage1 device: %s" % e)
 
     @property
     def bootDisk(self):
@@ -1764,6 +1768,10 @@ class Storage(object):
         return dev
 
     @property
+    def bootLoaderDevice(self):
+        return getattr(self.bootloader, "stage1_device", None)
+
+    @property
     def bootFSTypes(self):
         """A list of all valid filesystem types for the boot partition."""
         fstypes = []
-- 
1.7.7.6



More information about the anaconda-patches mailing list