shebags mention python2 explicitly
[bootmanager.git] / source / steps / CheckForNewDisks.py
index 223c3ae..1c171a3 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python2
 #
 # Copyright (c) 2003 Intel Corporation
 # All rights reserved.
@@ -58,6 +58,8 @@ def Run(vars, log):
     # total amount of new space in gb
     extended_gb_size = 0
     
+    utils.display_disks_status(PARTITIONS, "In CheckForNewDisks", log)
+
     for device, details in devices_dict.items():
 
         (major, minor, blocks, gb_size, readonly) = details
@@ -78,10 +80,17 @@ def Run(vars, log):
         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"\
@@ -92,7 +101,7 @@ def Run(vars, log):
         # 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