summaryrefslogtreecommitdiffstats
path: root/iw
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2007-04-02 17:21:37 +0000
committerJeremy Katz <katzj@redhat.com>2007-04-02 17:21:37 +0000
commitf3aa23f58d25ad808094c6df06920558b0e45297 (patch)
treec831cadc50b1c1493f52d329576c93ece225ab2b /iw
parentba6ac3f17370b83a852d5bb392119ea8caaf64bf (diff)
downloadanaconda-f3aa23f58d25ad808094c6df06920558b0e45297.tar.gz
anaconda-f3aa23f58d25ad808094c6df06920558b0e45297.tar.xz
anaconda-f3aa23f58d25ad808094c6df06920558b0e45297.zip
2007-04-02 Jeremy Katz <katzj@redhat.com>
* iw/autopart_type.py (PartitionTypeWindow._fillBootStore): Work to ensure that we don't traceback here in cases where there aren't drives (#234697 and others)
Diffstat (limited to 'iw')
-rw-r--r--iw/autopart_type.py38
1 files changed, 27 insertions, 11 deletions
diff --git a/iw/autopart_type.py b/iw/autopart_type.py
index 2a65924f2..6f3393b50 100644
--- a/iw/autopart_type.py
+++ b/iw/autopart_type.py
@@ -70,6 +70,13 @@ class PartitionTypeWindow(InstallWindow):
# pop the boot device to be first in the drive list
defiter = self.bootcombo.get_active_iter()
+ if defiter is None:
+ self.intf.messageWindow(_("Error"),
+ "Must select a drive to use as "
+ "the bootable device.",
+ type="warning", custom_icon="error")
+ raise gui.StayOnScreen
+
defboot = self.bootcombo.get_model().get_value(defiter, 1)
self.anaconda.id.bootloader.drivelist.remove(defboot)
self.anaconda.id.bootloader.drivelist.insert(0, defboot)
@@ -233,6 +240,25 @@ class PartitionTypeWindow(InstallWindow):
self.partitions.autoClearPartDrives,
self.drivelist,
disallowDrives=[self.anaconda.updateSrc])
+ self._fillBootStore()
+
+ def _fillBootStore(self):
+ bootstore = self.bootcombo.get_model()
+ bootstore.clear()
+ if len(self.anaconda.id.bootloader.drivelist) > 0:
+ defaultBoot = self.anaconda.id.bootloader.drivelist[0]
+ else:
+ defaultBoot = None
+ for disk in self.diskset.disks.values():
+ size = partedUtils.getDeviceSizeMB(disk.dev)
+ dispstr = "%s %8.0f MB %s" %(disk.dev.path[5:], size, disk.dev.model)
+ i = bootstore.append(None)
+ bootstore[i] = (dispstr, disk.dev.path[5:])
+ if disk.dev.path[5:] == defaultBoot:
+ self.bootcombo.set_active_iter(i)
+
+ if len(bootstore) <= 1:
+ self.bootcombo.set_sensitive(False)
def getScreen(self, anaconda):
@@ -283,17 +309,7 @@ class PartitionTypeWindow(InstallWindow):
bootstore = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
self.bootcombo.set_model(bootstore)
- defaultBoot = self.anaconda.id.bootloader.drivelist[0]
- for disk in self.diskset.disks.values():
- size = partedUtils.getDeviceSizeMB(disk.dev)
- dispstr = "%s %8.0f MB %s" %(disk.dev.path[5:], size, disk.dev.model)
- i = bootstore.append(None)
- bootstore[i] = (dispstr, disk.dev.path[5:])
- if disk.dev.path[5:] == defaultBoot:
- self.bootcombo.set_active_iter(i)
-
- if len(bootstore) <= 1:
- self.bootcombo.set_sensitive(False)
+ self._fillBootStore()
self.prevrev = None
self.review = not self.dispatch.stepInSkipList("partition")