ef hardDriveDict():
import parted
dict = driveDict("disk")
# this is kind of ugly, but it's much easier to do this from python
for (dev, descr) in dict.items():
# the only raid devs like this are ide, so only worry about them
if not dev.startswith("hd"):
continue
ret = _isys.hasIdeRaidMagic(dev)
if ret is None:
continue
found = 0
try:
devName = "/tmp/%s" % dev
makeDevInode(dev, devName)
# ugh, this is basically copy&paste of other anaconda code, but
# it kind of needs to be here and isys should stay isolated
peddev = parted.PedDevice.get(devName)
disk = parted.PedDisk.new(peddev)
part = disk.next_partition()
while part:
if (part.fs_type and
part.fs_type.name in ("FAT", "fat16", "fat32",
"ntfs", "hpfs")):
# this disk has a fat partition on it, we have to use
# it as an ataraid device
found = 1
part = disk.next_partition(part)
del disk
del peddev
os.unlink(devName)
except Exception, e:
print e
# what can I really do here?
pass
if found == 1:
log("%s has a %s raid signature and windows parts" %(dev, ret))
del dict[dev]
else:
log("%s has a %s raid signature but no windows parts" %(dev, ret))
return driveDict("disk")