Consider partitions as sources for configdrive if labelled correctly
This change removes the filtering of partitions from potential ConfigDrive sources, if the LABEL of the partition is set to "config-2". This is useful for a bare metal device. It may not have a separate device for ConfigDrive, but instead have a ConfigDrive available on a partition.
This commit is contained in:
		@@ -19,6 +19,8 @@
 | 
			
		||||
   'Recommends' in the debian/control.in [Vlastimil Holer]
 | 
			
		||||
 - if mount_info reports /dev/root is a device path for /, then convert
 | 
			
		||||
   that to a device via help of kernel cmdline.
 | 
			
		||||
 - configdrive: consider partitions as possible datasources if they have
 | 
			
		||||
   theh correct filesystem label. [Paul Querna]
 | 
			
		||||
0.7.4:
 | 
			
		||||
 - fix issue mounting 'ephemeral0' if ephemeral0 was an alias for a
 | 
			
		||||
   partitioned block device with target filesystem on ephemeral0.1.
 | 
			
		||||
 
 | 
			
		||||
@@ -284,8 +284,10 @@ def find_candidate_devs():
 | 
			
		||||
    # followed by fstype items, but with dupes removed
 | 
			
		||||
    combined = (by_label + [d for d in by_fstype if d not in by_label])
 | 
			
		||||
 | 
			
		||||
    # We are looking for block device (sda, not sda1), ignore partitions
 | 
			
		||||
    combined = [d for d in combined if not util.is_partition(d)]
 | 
			
		||||
    # We are looking for a block device or partition with necessary label or
 | 
			
		||||
    # an unpartitioned block device.
 | 
			
		||||
    combined = [d for d in combined
 | 
			
		||||
                    if d in by_label or not util.is_partition(d)]
 | 
			
		||||
 | 
			
		||||
    return combined
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -285,10 +285,11 @@ class TestConfigDriveDataSource(MockerTestCase):
 | 
			
		||||
            self.assertEqual(["/dev/vdb", "/dev/zdd"],
 | 
			
		||||
                             ds.find_candidate_devs())
 | 
			
		||||
 | 
			
		||||
            # verify that partitions are not considered
 | 
			
		||||
            # verify that partitions are considered, but only if they have a label.
 | 
			
		||||
            devs_with_answers = {"TYPE=vfat": ["/dev/sda1"],
 | 
			
		||||
                "TYPE=iso9660": [], "LABEL=config-2": ["/dev/vdb3"]}
 | 
			
		||||
            self.assertEqual([], ds.find_candidate_devs())
 | 
			
		||||
            self.assertEqual(["/dev/vdb3"],
 | 
			
		||||
                              ds.find_candidate_devs())
 | 
			
		||||
 | 
			
		||||
        finally:
 | 
			
		||||
            util.find_devs_with = orig_find_devs_with
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user