-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Updated patch:
diff --git a/baseudev.py b/baseudev.py
index 0eb66b8..5ba1011 100644
- --- a/baseudev.py
+++ b/baseudev.py
@@ -31,29 +31,19 @@ import logging
log = logging.getLogger("storage")
def udev_enumerate_devices(deviceClass="block"):
- - top_dir = "/sys/class/%s" % deviceClass
- - devices = []
- - for dev_name in os.listdir(top_dir):
- - full_path = os.path.join(top_dir, dev_name)
- - link_ref = os.readlink(full_path)
- - real_path = os.path.join(top_dir, link_ref)
- - sysfs_path = os.path.normpath(real_path)
- - devices.append(sysfs_path[4:])
- - return devices
+ return global_udev.enumerate_devices(subsystem=deviceClass)
def udev_get_device(sysfs_path):
- - if not os.path.exists("/sys%s" % sysfs_path):
+ if not os.path.exists(sysfs_path):
log.debug("%s does not exist" % sysfs_path)
return None
- - # XXX we remove the /sys part when enumerating devices,
- - # so we have to prepend it when creating the device
- - dev = global_udev.create_device("/sys" + sysfs_path)
+ dev = global_udev.create_device(sysfs_path)
if dev:
dev["name"] = dev.sysname
dev["symlinks"] = dev["DEVLINKS"]
- - dev["sysfs_path"] = sysfs_path
+ dev["sysfs_path"] = sysfs_path[4:]
On Thu, 28 Jan 2010, David Lehman wrote:
On Thu, 2010-01-28 at 13:31 -1000, David Cantrell wrote:
From: Martin Gracik <mgracik@xxxxxxxxxx>
Do not list the directories in sys, but use the libudev's
enumerate_devices function to get the sysfs paths. Run /sbin/udevadm
rather than just udevadm to ensure baseudev.py in an updates.img works.
---
baseudev.py | 20 +++++---------------
1 files changed, 5 insertions(+), 15 deletions(-)
diff --git a/baseudev.py b/baseudev.py
index 0eb66b8..8a23825 100644
--- a/baseudev.py
+++ b/baseudev.py
@@ -31,24 +31,14 @@ import logging
log = logging.getLogger("storage")
def udev_enumerate_devices(deviceClass="block"):
- top_dir = "/sys/class/%s" % deviceClass
- devices = []
- for dev_name in os.listdir(top_dir):
- full_path = os.path.join(top_dir, dev_name)
- link_ref = os.readlink(full_path)
- real_path = os.path.join(top_dir, link_ref)
- sysfs_path = os.path.normpath(real_path)
- devices.append(sysfs_path[4:])
- return devices
+ return global_udev.enumerate_devices(subsystem=deviceClass)
This part looks great.
def udev_get_device(sysfs_path):
- if not os.path.exists("/sys%s" % sysfs_path):
+ if not os.path.exists(sysfs_path):
log.debug("%s does not exist" % sysfs_path)
return None
- # XXX we remove the /sys part when enumerating devices,
- # so we have to prepend it when creating the device
- dev = global_udev.create_device("/sys" + sysfs_path)
+ dev = global_udev.create_device(sysfs_path)
if dev:
dev["name"] = dev.sysname
This is going to cause lots of problems. You're changing the
'sysfs_path' value in the info dict to include the '/sys' prefix, which
is not what is expected by the devicetree and devices modules. Stuff
like this is all over the place:
storage/devicetree.py:1314: _p = "/sys/%s/%s" % (sysfs_path, protected)
So you'll want to hack it off when setting dev['sysfs_path'].
@@ -90,11 +80,11 @@ def udev_settle():
# lots of disks, or with slow disks
argv = ["settle", "--timeout=300"]
- iutil.execWithRedirect("udevadm", argv, stderr="/dev/null")
+ iutil.execWithRedirect("/sbin/udevadm", argv, stderr="/dev/null")
def udev_trigger(subsystem=None, action="add"):
argv = ["trigger", "--action=%s" % action]
if subsystem:
argv.append("--subsystem-match=%s" % subsystem)
- iutil.execWithRedirect("udevadm", argv, stderr="/dev/null")
+ iutil.execWithRedirect("/sbin/udevadm", argv, stderr="/dev/null")
Why are these necessary? Is there also a /usr/bin/udevadm somewhere? We
want the benefit of $PATH so we don't have to change our code if
something moves in the udev packaging.
Dave
_______________________________________________
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.10 (GNU/Linux)
iEYEARECAAYFAktiJ7oACgkQ5hsjjIy1VkluUACghUu+kSiLdDSGoNAAK8/NMwTG
vREAnj4AL71628BtjEiB9lW1/+EoU/iK
=vDla
-----END PGP SIGNATURE-----
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list