except ValueError as var:
raise BootManagerException("Variable in vars, shouldn't be: {}\n".format(var))
- all_devices = systeminfo.get_block_device_list(vars, log)
+ devices_dict = systeminfo.get_block_devices_dict(vars, log)
# will contain the new devices to add to the volume group
new_devices = []
# total amount of new space in gb
extended_gb_size = 0
- for device in all_devices.keys():
+ utils.display_disks_status(PARTITIONS, "In CheckForNewDisks", log)
- (major,minor,blocks,gb_size,readonly) = all_devices[device]
+ for device, details in devices_dict.items():
+
+ (major, minor, blocks, gb_size, readonly) = details
if device[:14] == "/dev/planetlab":
log.write("Skipping device {} in volume group.\n".format(device))
log.write("Checking device {} to see if it is part " \
"of the volume group.\n".format(device))
- # this is the lvm partition, if it exists on that device
- lvm_partition = InstallPartitionDisks.get_partition_path_from_device(device, vars, log)
- cmd = "pvdisplay {} | grep -q 'planetlab'".format(lvm_partition)
- already_added = utils.sysexec_noerr(cmd, log, shell=True)
+ # Thierry - June 2015
+ # when introducing the 'upgrade' verb, we ran into the situation
+ # where 'pvdisplay' at this point displays e.g. /dev/sda, instead
+ # of /dev/sda1
+ # we thus consider that if either of these is known, then
+ # the disk is already part of LVM
+ first_partition = InstallPartitionDisks.get_partition_path_from_device(device, vars, log)
+ probe_first_part = "pvdisplay {} | grep -q planetlab".format(first_partition)
+ probe_device = "pvdisplay {} | grep -q planetlab".format(device)
+ already_added = utils.sysexec_noerr(probe_first_part, log, shell=True) \
+ or utils.sysexec_noerr(probe_device, log, shell=True)
if already_added:
log.write("It appears {} is part of the volume group, continuing.\n"\
# an lvm partition on it (new disks won't have this, and that is
# what this code is for, so it should be ok).
cmd = "parted --script --list {} | grep -q lvm$".format(device)
- has_lvm = utils.sysexec_noerr(cmd, log)
+ has_lvm = utils.sysexec_noerr(cmd, log, shell=True)
if has_lvm:
log.write("It appears {} has lvm already setup on it.\n".format(device))
paranoid = False