Ack. -- Martin Sivák msivak@xxxxxxxxxx Red Hat Czech Anaconda team / Brno, CZ ----- "Hans de Goede" <hdegoede@xxxxxxxxxx> wrote: > --- > bootloader.py | 3 +-- > booty/alpha.py | 14 +++----------- > booty/bootloaderInfo.py | 3 ++- > booty/checkbootloader.py | 12 ++++-------- > booty/sparc.py | 2 +- > booty/util.py | 6 ++---- > booty/x86.py | 42 > ++++++++++++++++++------------------------ > 7 files changed, 31 insertions(+), 51 deletions(-) > > diff --git a/bootloader.py b/bootloader.py > index 83ef5d3..37490ea 100644 > --- a/bootloader.py > +++ b/bootloader.py > @@ -125,8 +125,7 @@ def fixedMdraidGrubTarget(anaconda, grubTarget): > try: > if float(version) < 12: > stage1Devs = > anaconda.bootloader.getPhysicalDevices(grubTarget) > - disk = getDiskPart(stage1Devs[0].name, > anaconda.storage)[0] > - fixedGrubTarget = > anaconda.storage.devicetree.getDeviceByName(disk) > + fixedGrubTarget = getDiskPart(stage1Devs[0])[0] > log.info("Mdraid grub upgrade: %s -> %s" % > (grubTarget.name, > > fixedGrubTarget.name)) > except ValueError: > diff --git a/booty/alpha.py b/booty/alpha.py > index 5f742ed..5e5216a 100644 > --- a/booty/alpha.py > +++ b/booty/alpha.py > @@ -6,14 +6,6 @@ from bootloaderInfo import * > from util import getDiskPart > > class alphaBootloaderInfo(bootloaderInfo): > - def wholeDevice (self, path): > - (device, foo) = getDiskPart(path, self.storage) > - return device > - > - def partitionNum (self, path): > - (foo, partitionNumber) = getDiskPart(path, self.storage) > - return partitionNumber > - > def writeAboot(self, instRoot, bl, kernelList, > chainList, defaultDev): > rootDevice = self.storage.rootDevice > @@ -66,7 +58,7 @@ class alphaBootloaderInfo(bootloaderInfo): > f.write ("# all kernel paths are relative to > /boot/\n") > > # bpn is the boot partition number. > - bpn = self.partitionNum(bootDevice.path) > + bpn = getDiskPart(bootDevice) > lines = 0 > > # We write entries line using the following format: > @@ -101,8 +93,8 @@ class alphaBootloaderInfo(bootloaderInfo): > # Now we're ready to write the relevant boot information. > wbd > # is the whole boot device, bdpn is the boot device > partition > # number. > - wbd = self.wholeDevice (bootDevice.path) > - bdpn = self.partitionNum (bootDevice.path) > + wbd = getDiskPart(bootDevice)[0] > + bdpn = getDiskPart(bootDevice)[1] > > # Calling swriteboot. The first argument is the disk to > write > # to and the second argument is a path to the bootstrap > loader > diff --git a/booty/bootloaderInfo.py b/booty/bootloaderInfo.py > index edce60d..d019edf 100644 > --- a/booty/bootloaderInfo.py > +++ b/booty/bootloaderInfo.py > @@ -346,7 +346,8 @@ class bootloaderInfo(object): > def setDevice(self, device): > self.device = device > > - (dev, part) = getDiskPart(device, self.storage) > + (dev, part) = getDiskPart( > + > self.storage.devicetree.getDeviceByName(device)) > if part is None: > self.defaultDevice = "mbr" > else: > diff --git a/booty/checkbootloader.py b/booty/checkbootloader.py > index b74a59a..ca70405 100644 > --- a/booty/checkbootloader.py > +++ b/booty/checkbootloader.py > @@ -26,7 +26,7 @@ liloConfigFile = "/etc/lilo.conf" > yabootConfigFile = "/etc/yaboot.conf" > siloConfigFile = "/etc/silo.conf" > > -def getRaidDisks(raidDevice, storage, raidLevel=None, stripPart=1): > +def getRaidDisks(raidDevice, storage, raidLevel=None): > rc = [] > if raidLevel is not None: > try: > @@ -52,14 +52,9 @@ def getRaidDisks(raidDevice, storage, > raidLevel=None, stripPart=1): > dev = string.split(field, '[')[0] > if len(dev) == 0: > continue > - if stripPart: > - disk = getDiskPart(dev, storage)[0] > - rc.append(disk) > - else: > - rc.append(dev) > + rc.append(dev) > > return rc > - > > def getBootBlock(bootDev, instRoot, storage, seekBlocks=0): > """Get the boot block from bootDev. Return a 512 byte > string.""" > @@ -199,7 +194,8 @@ def getBootloaderTypeAndBoot(instRoot, storage): > > if bootDev is not None: > # XXX SILO sucks just like grub. > - if getDiskPart(bootDev, storage)[1] != 4: > + dev = storage.devicetree.getDeviceByName(bootDev) > + if getDiskPart(dev)[1] != 4: > block = getBootBlock(bootDev, instRoot, storage, 1) > if block[24:28] == "SILO": > return ("SILO", bootDev) > diff --git a/booty/sparc.py b/booty/sparc.py > index 871506c..645a04e 100644 > --- a/booty/sparc.py > +++ b/booty/sparc.py > @@ -38,7 +38,7 @@ class sparcBootloaderInfo(bootloaderInfo): > f.write("message=%s\n" % (mf,)) > f.write("timeout=%s\n" % (self.timeout or 50)) > > - (name, partNum) = getDiskPart(bootDev.name, self.storage) > + (disk, partNum) = getDiskPart(bootDev) > f.write("partition=%s\n" % (partNum,)) > > if self.password: > diff --git a/booty/util.py b/booty/util.py > index eab6b99..c7a6630 100644 > --- a/booty/util.py > +++ b/booty/util.py > @@ -1,6 +1,4 @@ > -def getDiskPart(dev, storage): > - dev = storage.devicetree.getDeviceByName(dev) > - > +def getDiskPart(dev): > if dev.type == "partition": > partNum = dev.partedPartition.number > disk = dev.disk > @@ -8,4 +6,4 @@ def getDiskPart(dev, storage): > partNum = None > disk = dev > > - return (disk.name, partNum) > + return (disk, partNum) > diff --git a/booty/x86.py b/booty/x86.py > index 038236d..1668c56 100644 > --- a/booty/x86.py > +++ b/booty/x86.py > @@ -107,7 +107,7 @@ class x86BootloaderInfo(efiBootloaderInfo): > matches = [] > for stage1Dev in stage1Devs: > for mdBootPart in bootDevs: > - if getDiskPart(stage1Dev.name, self.storage)[0] == > getDiskPart(mdBootPart.name, self.storage)[0]: > + if getDiskPart(stage1Dev)[0] == > getDiskPart(mdBootPart)[0]: > matches.append((stage1Dev, mdBootPart)) > return matches > > @@ -116,10 +116,7 @@ class x86BootloaderInfo(efiBootloaderInfo): > bootDevsHavingStage1Dev = [match[1] for match in matches] > for mdBootPart in bootDevs: > if mdBootPart not in bootDevsHavingStage1Dev: > - updatedMatches.append(( > - self.storage.devicetree.getDeviceByName( > - getDiskPart(mdBootPart.name, > self.storage)[0]), > - mdBootPart)) > + updatedMatches.append((getDiskPart(mdBootPart)[0], > mdBootPart)) > return updatedMatches > > def installGrub(self, instRoot, bootDev, grubTarget, grubPath, > cfPath): > @@ -151,8 +148,7 @@ class x86BootloaderInfo(efiBootloaderInfo): > self.grubbyPartitionName(stage1Dev), > > self.grubbyPartitionName(mdMemberBootPart))] > firstMdMemberDiskGrubbyName = self.grubbyDiskName( > - self.storage.devicetree.getDeviceByName( > - getDiskPart(mdMemberBootPart.name, > self.storage)[0])) > + > getDiskPart(mdMemberBootPart)[0]) > > # 2) and install stage1 on other members' > disks/partitions too > # NOTES: > @@ -169,21 +165,19 @@ class x86BootloaderInfo(efiBootloaderInfo): > matches = self.addMemberMbrs(matches, bootDevs) > for stage1Target, mdMemberBootPart in matches[1:]: > # prepare special device mapping corresponding to > member removal > - mdMemberBootDisk = > getDiskPart(mdMemberBootPart.name, self.storage)[0] > + mdMemberBootDisk = > getDiskPart(mdMemberBootPart)[0] > # It can happen due to ks --driveorder option, > but is it ok? > - if not mdMemberBootDisk in self.drivelist: > + if not mdMemberBootDisk.name in self.drivelist: > continue > mdRaidDeviceRemap = > (firstMdMemberDiskGrubbyName, > - mdMemberBootDisk) > + mdMemberBootDisk.name) > > stage1TargetGrubbyName = > self.grubbyPartitionName(stage1Target) > rootPartGrubbyName = > self.grubbyPartitionName(mdMemberBootPart) > > # now replace grub disk name part according to > special device > # mapping > - old = self.grubbyDiskName( > - self.storage.devicetree.getDeviceByName( > - mdMemberBootDisk)).strip('() ') > + old = > self.grubbyDiskName(mdMemberBootDisk).strip('() ') > new = firstMdMemberDiskGrubbyName.strip('() ') > rootPartGrubbyName = > rootPartGrubbyName.replace(old, new) > stage1TargetGrubbyName = > stage1TargetGrubbyName.replace(old, new) > @@ -232,10 +226,11 @@ class x86BootloaderInfo(efiBootloaderInfo): > > # keep track of which devices are used for the device.map > usedDevs = set() > - usedDevs.update([d.name for d in self.getPhysicalDevices( > - > self.storage.devicetree.getDeviceByName(grubTarget))]) > - usedDevs.update([d.name for d in > self.getPhysicalDevices(bootDev)]) > - usedDevs.update([dev for (label, longlabel, dev) in chainList > if longlabel]) > + usedDevs.update(self.getPhysicalDevices( > + > self.storage.devicetree.getDeviceByName(grubTarget))) > + usedDevs.update(self.getPhysicalDevices(bootDev)) > + usedDevs.update([self.storage.devicetree.getDeviceByName(dev) > for > + (label, longlabel, dev) in chainList if > longlabel]) > > if not upgrade: > self.writeDeviceMap(instRoot, usedDevs, upgrade) > @@ -415,7 +410,8 @@ class x86BootloaderInfo(efiBootloaderInfo): > (grubdisk, dev) = line.split()[:2] > dev = dev[5:] > if dev in self.drivelist: > - usedDevs.add(dev) > + usedDevs.add( > + > self.storage.devicetree.getDeviceByName(dev)) > f.close() > os.rename(instRoot + "/boot/grub/device.map", > instRoot + "/boot/grub/device.map.rpmsave") > @@ -424,14 +420,13 @@ class x86BootloaderInfo(efiBootloaderInfo): > f.write("# this device map was generated by anaconda\n") > usedDiskDevs = set() > for dev in usedDevs: > - drive = getDiskPart(dev, self.storage)[0] > + drive = getDiskPart(dev)[0] > usedDiskDevs.add(drive) > devs = list(usedDiskDevs) > - devs.sort() > - for drive in devs: > + devs.sort(key=lambda d: d.name) > + for dev in devs: > # XXX hack city. If they're not the sort of thing > that'll > # be in the device map, they shouldn't still be in the > list. > - dev = self.storage.devicetree.getDeviceByName(drive) > if not dev.type == "mdarray": > f.write("(%s) %s\n" % (self.grubbyDiskName(dev), > dev.path)) > f.close() > @@ -460,8 +455,7 @@ class x86BootloaderInfo(efiBootloaderInfo): > return "hd%d" % self.drivelist.index(dev.name) > > def grubbyPartitionName(self, dev): > - (name, partNum) = getDiskPart(dev.name, self.storage) > - disk = self.storage.devicetree.getDeviceByName(name) > + (disk, partNum) = getDiskPart(dev) > if partNum != None: > return "(%s,%d)" % (self.grubbyDiskName(disk), partNum - > 1) > else: > -- > 1.7.0.1 > > _______________________________________________ > Anaconda-devel-list mailing list > Anaconda-devel-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/anaconda-devel-list _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list