-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Wed, 2 Sep 2009, David Lehman wrote:
On Tue, 2009-09-01 at 15:25 -1000, David Cantrell wrote:
The devices property in Storage and FSSet were the same. Remove the one
from FSSet and have that class reference the one from Storage.
Here we are are taking the device list from one point in time, before
we've parsed the fstab. More importantly, we're taking the list of
devices from before we've done any partitioning, &c. Since we now have a
list of devices instead of a property in FSSet we will not pick up
changes to the list of devices, which I think is going to be
problematic.
Correct me if I'm wrong, but any access of the 'devices' property on Storage
is going to resort devicetree.devices, right? Isn't devicetree the same
between Storage and FSSet (it looks like FSSet just has a reference to the one
in Storage). In FSSet when 'devices' is accessed, devicetree.devices will be
resorted and a new list returned.
Dave
---
booty/ppc.py | 4 ++--
storage/__init__.py | 17 +++++++----------
upgrade.py | 2 +-
yuminstall.py | 2 +-
4 files changed, 11 insertions(+), 14 deletions(-)
diff --git a/booty/ppc.py b/booty/ppc.py
index 9e43090..42aae57 100644
--- a/booty/ppc.py
+++ b/booty/ppc.py
@@ -14,11 +14,11 @@ class ppcBootloaderInfo(bootloaderInfo):
machine = iutil.getPPCMachine()
if machine == 'pSeries':
- for dev in self.storage.fsset.devices:
+ for dev in self.storage.devices:
if dev.format.type == "prepboot":
retval.append(dev.path)
elif machine == 'PMac':
- for dev in self.storage.fsset.devices:
+ for dev in self.storage.devices:
if dev.format.type == "hfs" and dev.format.bootable:
retval.append(dev.path)
diff --git a/storage/__init__.py b/storage/__init__.py
index 494bef0..10fe07a 100644
--- a/storage/__init__.py
+++ b/storage/__init__.py
@@ -224,7 +224,8 @@ class Storage(object):
passphrase=self.encryptionPassphrase,
luksDict=self.__luksDevs,
iscsi=self.iscsi)
- self.fsset = FSSet(self.devicetree, self.anaconda.rootPath)
+ self.fsset = FSSet(self.devicetree, self.anaconda.rootPath,
+ self.devices)
def doIt(self):
self.devicetree.processActions()
@@ -291,7 +292,8 @@ class Storage(object):
luksDict=self.__luksDevs,
iscsi=self.iscsi)
self.devicetree.populate()
- self.fsset = FSSet(self.devicetree, self.anaconda.rootPath)
+ self.fsset = FSSet(self.devicetree, self.anaconda.rootPath,
+ self.devices)
self.anaconda.id.rootParts = None
self.anaconda.id.upgradeRoot = None
w.pop()
@@ -299,9 +301,7 @@ class Storage(object):
@property
def devices(self):
""" A list of all the devices in the device tree. """
- devices = self.devicetree.devices
- devices.sort(key=lambda d: d.path)
- return devices
+ return sorted(self.devicetree.devices, key=lambda d: d.path)
@property
def disks(self):
@@ -1306,9 +1306,10 @@ def get_containing_device(path, devicetree):
class FSSet(object):
""" A class to represent a set of filesystems. """
- def __init__(self, devicetree, rootpath):
+ def __init__(self, devicetree, rootpath, devices):
self.devicetree = devicetree
self.rootpath = rootpath
+ self.devices = devices
self.cryptTab = None
self.blkidTab = None
self.origFStab = None
@@ -1364,10 +1365,6 @@ class FSSet(object):
return self._devshm
@property
- def devices(self):
- return sorted(self.devicetree.devices, key=lambda d: d.path)
-
- @property
def mountpoints(self):
filesystems = {}
for device in self.devices:
diff --git a/upgrade.py b/upgrade.py
index c751533..1ae9a58 100644
--- a/upgrade.py
+++ b/upgrade.py
@@ -146,7 +146,7 @@ def upgradeSwapSuggestion(anaconda):
fsList = []
- for device in anaconda.id.storage.fsset.devices:
+ for device in anaconda.id.storage.devices:
if not device.format:
continue
if device.format.mountable and device.format.linuxNative:
diff --git a/yuminstall.py b/yuminstall.py
index b247b52..4e13939 100644
--- a/yuminstall.py
+++ b/yuminstall.py
@@ -1295,7 +1295,7 @@ reposdir=/etc/anaconda.repos.d,/tmp/updates/anaconda.repos.d,/tmp/product/anacon
selectKernel("kernel")
def selectFSPackages(self, storage):
- for device in storage.fsset.devices:
+ for device in storage.devices:
# this takes care of device and filesystem packages
map(self.selectPackage, device.packages)
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
- --
David Cantrell <dcantrell@xxxxxxxxxx>
Red Hat / Honolulu, HI
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkqfAM0ACgkQ5hsjjIy1Vkn5TwCfbA6OnrhQJAT8nKGxL5kc0mG0
Xn0An1G7Bi6/zAtHQG/1q01r2SOChPeC
=zv+u
-----END PGP SIGNATURE-----
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list