FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > CentOS > CentOS Docs

 
 
LinkBack Thread Tools
 
Old 05-28-2010, 03:58 PM
Hans de Goede
 
Default booty: make getPhysicalDevices take and return Devices rather then device names

---
bootloader.py | 17 +++++++++--------
booty/x86.py | 32 +++++++++++++++++---------------
2 files changed, 26 insertions(+), 23 deletions(-)

diff --git a/bootloader.py b/bootloader.py
index 30912e7..83ef5d3 100644
--- a/bootloader.py
+++ b/bootloader.py
@@ -125,9 +125,10 @@ def fixedMdraidGrubTarget(anaconda, grubTarget):
try:
if float(version) < 12:
stage1Devs = anaconda.bootloader.getPhysicalDevices(grubTarget)
- fixedGrubTarget = getDiskPart(stage1Devs[0], anaconda.storage)[0]
- log.info("Mdraid grub upgrade: %s -> %s" % (grubTarget,
- fixedGrubTarget))
+ disk = getDiskPart(stage1Devs[0].name, anaconda.storage)[0]
+ fixedGrubTarget = anaconda.storage.devicetree.getDeviceByName(disk)
+ log.info("Mdraid grub upgrade: %s -> %s" % (grubTarget.name,
+ fixedGrubTarget.name))
except ValueError:
log.warning("Can't decide mdraid grub upgrade fix, product: %s, version: %s" % (product, version))

@@ -147,13 +148,13 @@ def writeBootloader(anaconda):

anaconda.bootloader.doUpgradeonly = 1
if bootType == "GRUB":
- if theDev.startswith('/dev/md'):
- theDev = fixedMdraidGrubTarget(anaconda,
- devicePathToName(theDev))
+ grubTarget = anaconda.storage.devicetree.getDeviceByPath(theDev )
+ if grubTarget.type == "mdarray":
+ grubTarget = fixedMdraidGrubTarget(anaconda, grubTarget)
anaconda.bootloader.useGrubVal = 1
- anaconda.bootloader.setDevice(devicePathToName(the Dev))
+ anaconda.bootloader.setDevice(grubTarget.name)
else:
- anaconda.bootloader.doUpgradeOnly = 0
+ anaconda.bootloader.doUpgradeOnly = 0

w = anaconda.intf.waitWindow(_("Bootloader"), _("Installing bootloader."))

diff --git a/booty/x86.py b/booty/x86.py
index 3544736..9c176d0 100644
--- a/booty/x86.py
+++ b/booty/x86.py
@@ -41,12 +41,11 @@ class x86BootloaderInfo(efiBootloaderInfo):
def setUseGrub(self, val):
self.useGrubVal = val

- def getPhysicalDevices(self, device):
+ def getPhysicalDevices(self, dev):
# This finds a list of devices on which the given device name resides.
# Accepted values for "device" are raid1 md devices (i.e. "md0"),
# physical disks ("hda"), and real partitions on physical disks
# ("hda1"). Anything else gets ignored.
- dev = self.storage.devicetree.getDeviceByName(device)
if dev.type == "mdarray":
if dev.level != 1:
log.error("x86BootloaderInfo.getPhysicalDevices ignoring non "
@@ -59,7 +58,7 @@ class x86BootloaderInfo(efiBootloaderInfo):
physicalDevices = []
for dev in devs:
if dev in self.storage.disks or dev.type == "partition":
- physicalDevices.append(dev.name)
+ physicalDevices.append(dev)
else:
log.error("x86BootloaderInfo.getPhysicalDevices ignoring %s" %
dev.name)
@@ -127,16 +126,18 @@ class x86BootloaderInfo(efiBootloaderInfo):

args = "--stage2=/boot/grub/stage2 "

- stage1Devs = self.getPhysicalDevices(grubTarget)
- bootDevs = self.getPhysicalDevices(bootDev.name)
+ stage1Devs = self.getPhysicalDevices(
+ self.storage.devicetree.getDeviceByName(grubTarget ))
+ bootDevs = self.getPhysicalDevices(bootDev)

installs = [(None,
- self.grubbyPartitionName(stage1Devs[0]),
- self.grubbyPartitionName(bootDevs[0]))]
+ self.grubbyPartitionName(stage1Devs[0].name),
+ self.grubbyPartitionName(bootDevs[0].name))]

if bootDev.type == "mdarray":

- matches = self.matchingBootTargets(stage1Devs, bootDevs)
+ matches = self.matchingBootTargets([d.name for d in stage1Devs],
+ [d.name for d in bootDevs])

# If the stage1 target disk contains member of boot raid array (mbr
# case) or stage1 target partition is member of boot raid array
@@ -161,7 +162,7 @@ class x86BootloaderInfo(efiBootloaderInfo):

# if target is mbr, we want to install also to mbr of other
# members, so extend the matching list
- matches = self.addMemberMbrs(matches, bootDevs)
+ matches = self.addMemberMbrs(matches, [d.name for d in bootDevs])
for stage1Target, mdMemberBootPart in matches[1:]:
# prepare special device mapping corresponding to member removal
mdMemberBootDisk = getDiskPart(mdMemberBootPart, self.storage)[0]
@@ -225,8 +226,9 @@ class x86BootloaderInfo(efiBootloaderInfo):

# keep track of which devices are used for the device.map
usedDevs = set()
- usedDevs.update(self.getPhysicalDevices(grubTarget ))
- usedDevs.update(self.getPhysicalDevices(bootDev.na me))
+ 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])

if not upgrade:
@@ -238,7 +240,7 @@ class x86BootloaderInfo(efiBootloaderInfo):
def writeGrubConf(self, instRoot, bootDev, rootDev, defaultDev, kernelList,
chainList, grubTarget, grubPath, cfPath):

- bootDevs = self.getPhysicalDevices(bootDev.name)
+ bootDevs = self.getPhysicalDevices(bootDev)

# XXX old config file should be read here for upgrade

@@ -266,7 +268,7 @@ class x86BootloaderInfo(efiBootloaderInfo):
f.write("# all kernel and initrd paths are relative "
"to /, eg.
")

- f.write('# root %s
' % self.grubbyPartitionName(bootDevs[0]))
+ f.write('# root %s
' % self.grubbyPartitionName(bootDevs[0].name))
f.write("# kernel %svmlinuz-version ro root=%s
" % (cfPath, rootDev.path))
f.write("# initrd %sinitrd-[generic-]version.img
" % (cfPath))
f.write("#boot=/dev/%s
" % (grubTarget))
@@ -309,7 +311,7 @@ class x86BootloaderInfo(efiBootloaderInfo):
# we only want splashimage if they're not using a serial console
if os.access("%s/boot/grub/splash.xpm.gz" %(instRoot,), os.R_OK):
f.write('splashimage=%s%sgrub/splash.xpm.gz
'
- % (self.grubbyPartitionName(bootDevs[0]), cfPath))
+ % (self.grubbyPartitionName(bootDevs[0].name), cfPath))
f.write("hiddenmenu
")


@@ -323,7 +325,7 @@ class x86BootloaderInfo(efiBootloaderInfo):
initrd = self.makeInitrd(kernelTag, instRoot)

f.write('title %s (%s)
' % (longlabel, version))
- f.write(' root %s
' % self.grubbyPartitionName(bootDevs[0]))
+ f.write(' root %s
' % self.grubbyPartitionName(bootDevs[0].name))

realroot = " root=%s" % rootDev.fstabSpec

--
1.7.0.1

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 09:35 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org