summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJames Falcon <TheRealFalcon@users.noreply.github.com>2020-08-07 10:19:09 -0500
committerGitHub <noreply@github.com>2020-08-07 11:19:09 -0400
commitc068f992c3905d07732dafa6eb61c1ae3aa65916 (patch)
tree6a58935c6660b3446020d205f098f3aeee9377a2 /tests
parentb2bf538b8c355b1bf04657fafc717ad20779e4a4 (diff)
downloadvyos-cloud-init-c068f992c3905d07732dafa6eb61c1ae3aa65916.tar.gz
vyos-cloud-init-c068f992c3905d07732dafa6eb61c1ae3aa65916.zip
Recognize LABEL_FATBOOT labels (#513)
Update DataSourceNoCloud and ds-identify to recognize LABEL_FATBOOT labels from blkid. Also updated associated tests. LP: #1841466
Diffstat (limited to 'tests')
-rw-r--r--tests/unittests/test_ds_identify.py18
-rw-r--r--tests/unittests/test_util.py195
2 files changed, 130 insertions, 83 deletions
diff --git a/tests/unittests/test_ds_identify.py b/tests/unittests/test_ds_identify.py
index cb57f2d0..9314b244 100644
--- a/tests/unittests/test_ds_identify.py
+++ b/tests/unittests/test_ds_identify.py
@@ -577,6 +577,10 @@ class TestDsIdentify(DsIdentifyBase):
"""NoCloud is found with uppercase filesystem label."""
self._test_ds_found('NoCloudUpper')
+ def test_nocloud_fatboot(self):
+ """NoCloud fatboot label - LP: #184166."""
+ self._test_ds_found('NoCloud-fatboot')
+
def test_nocloud_seed(self):
"""Nocloud seed directory."""
self._test_ds_found('NoCloud-seed')
@@ -816,6 +820,20 @@ VALID_CFG = {
'dev/vdb': 'pretend iso content for cidata\n',
}
},
+ 'NoCloud-fatboot': {
+ 'ds': 'NoCloud',
+ 'mocks': [
+ MOCK_VIRT_IS_XEN,
+ {'name': 'blkid', 'ret': 0,
+ 'out': blkid_out(
+ BLKID_UEFI_UBUNTU +
+ [{'DEVNAME': 'xvdb', 'TYPE': 'vfat', 'SEC_TYPE': 'msdos',
+ 'UUID': '355a-4FC2', 'LABEL_FATBOOT': 'cidata'}])},
+ ],
+ 'files': {
+ 'dev/vdb': 'pretend iso content for cidata\n',
+ }
+ },
'NoCloud-seed': {
'ds': 'NoCloud',
'files': {
diff --git a/tests/unittests/test_util.py b/tests/unittests/test_util.py
index 409dba61..72c56967 100644
--- a/tests/unittests/test_util.py
+++ b/tests/unittests/test_util.py
@@ -967,96 +967,125 @@ class TestGetProcEnv(helpers.TestCase):
self.assertEqual(my_ppid, util.get_proc_ppid(my_pid))
-@mock.patch('cloudinit.subp.subp')
-def test_find_devs_with_openbsd(m_subp):
- m_subp.return_value = (
- 'cd0:,sd0:630d98d32b5d3759,sd1:,fd0:', ''
- )
- devlist = util.find_devs_with_openbsd()
- assert devlist == ['/dev/cd0a', '/dev/sd1i']
-
-
-@mock.patch('cloudinit.subp.subp')
-def test_find_devs_with_openbsd_with_criteria(m_subp):
- m_subp.return_value = (
- 'cd0:,sd0:630d98d32b5d3759,sd1:,fd0:', ''
- )
- devlist = util.find_devs_with_openbsd(criteria="TYPE=iso9660")
- assert devlist == ['/dev/cd0a']
-
-
-@mock.patch('glob.glob')
-def test_find_devs_with_freebsd(m_glob):
- def fake_glob(pattern):
- msdos = ["/dev/msdosfs/EFISYS"]
- iso9660 = ["/dev/iso9660/config-2"]
- if pattern == "/dev/msdosfs/*":
- return msdos
- elif pattern == "/dev/iso9660/*":
- return iso9660
- raise Exception
- m_glob.side_effect = fake_glob
-
- devlist = util.find_devs_with_freebsd()
- assert set(devlist) == set([
- '/dev/iso9660/config-2', '/dev/msdosfs/EFISYS'])
- devlist = util.find_devs_with_freebsd(criteria="TYPE=iso9660")
- assert devlist == ['/dev/iso9660/config-2']
- devlist = util.find_devs_with_freebsd(criteria="TYPE=vfat")
- assert devlist == ['/dev/msdosfs/EFISYS']
-
-
-@mock.patch("cloudinit.subp.subp")
-def test_find_devs_with_netbsd(m_subp):
- side_effect_values = [
- ("ld0 dk0 dk1 cd0", ""),
- (
+class TestFindDevs:
+ @mock.patch('cloudinit.subp.subp')
+ def test_find_devs_with(self, m_subp):
+ m_subp.return_value = (
+ '/dev/sda1: UUID="some-uuid" TYPE="ext4" PARTUUID="some-partid"',
+ ''
+ )
+ devlist = util.find_devs_with()
+ assert devlist == [
+ '/dev/sda1: UUID="some-uuid" TYPE="ext4" PARTUUID="some-partid"']
+
+ devlist = util.find_devs_with("LABEL_FATBOOT=A_LABEL")
+ assert devlist == [
+ '/dev/sda1: UUID="some-uuid" TYPE="ext4" PARTUUID="some-partid"']
+
+ @mock.patch('cloudinit.subp.subp')
+ def test_find_devs_with_openbsd(self, m_subp):
+ m_subp.return_value = (
+ 'cd0:,sd0:630d98d32b5d3759,sd1:,fd0:', ''
+ )
+ devlist = util.find_devs_with_openbsd()
+ assert devlist == ['/dev/cd0a', '/dev/sd1i']
+
+ @mock.patch('cloudinit.subp.subp')
+ def test_find_devs_with_openbsd_with_criteria(self, m_subp):
+ m_subp.return_value = (
+ 'cd0:,sd0:630d98d32b5d3759,sd1:,fd0:', ''
+ )
+ devlist = util.find_devs_with_openbsd(criteria="TYPE=iso9660")
+ assert devlist == ['/dev/cd0a']
+
+ # lp: #1841466
+ devlist = util.find_devs_with_openbsd(criteria="LABEL_FATBOOT=A_LABEL")
+ assert devlist == ['/dev/cd0a', '/dev/sd1i']
+
+ @mock.patch('glob.glob')
+ def test_find_devs_with_freebsd(self, m_glob):
+ def fake_glob(pattern):
+ msdos = ["/dev/msdosfs/EFISYS"]
+ iso9660 = ["/dev/iso9660/config-2"]
+ if pattern == "/dev/msdosfs/*":
+ return msdos
+ elif pattern == "/dev/iso9660/*":
+ return iso9660
+ raise Exception
+ m_glob.side_effect = fake_glob
+
+ devlist = util.find_devs_with_freebsd()
+ assert set(devlist) == set([
+ '/dev/iso9660/config-2', '/dev/msdosfs/EFISYS'])
+
+ devlist = util.find_devs_with_freebsd(criteria="TYPE=iso9660")
+ assert devlist == ['/dev/iso9660/config-2']
+
+ devlist = util.find_devs_with_freebsd(criteria="TYPE=vfat")
+ assert devlist == ['/dev/msdosfs/EFISYS']
+
+ # lp: #1841466
+ devlist = util.find_devs_with_freebsd(criteria="LABEL_FATBOOT=A_LABEL")
+ assert devlist == []
+
+ @mock.patch("cloudinit.subp.subp")
+ def test_find_devs_with_netbsd(self, m_subp):
+ side_effect_values = [
+ ("ld0 dk0 dk1 cd0", ""),
(
- "mscdlabel: CDIOREADTOCHEADER: "
- "Inappropriate ioctl for device\n"
- "track (ctl=4) at sector 0\n"
- "disklabel not written\n"
+ (
+ "mscdlabel: CDIOREADTOCHEADER: "
+ "Inappropriate ioctl for device\n"
+ "track (ctl=4) at sector 0\n"
+ "disklabel not written\n"
+ ),
+ "",
),
- "",
- ),
- (
(
- "mscdlabel: CDIOREADTOCHEADER: "
- "Inappropriate ioctl for device\n"
- "track (ctl=4) at sector 0\n"
- "disklabel not written\n"
+ (
+ "mscdlabel: CDIOREADTOCHEADER: "
+ "Inappropriate ioctl for device\n"
+ "track (ctl=4) at sector 0\n"
+ "disklabel not written\n"
+ ),
+ "",
),
- "",
- ),
- (
(
- "mscdlabel: CDIOREADTOCHEADER: "
- "Inappropriate ioctl for device\n"
- "track (ctl=4) at sector 0\n"
- "disklabel not written\n"
+ (
+ "mscdlabel: CDIOREADTOCHEADER: "
+ "Inappropriate ioctl for device\n"
+ "track (ctl=4) at sector 0\n"
+ "disklabel not written\n"
+ ),
+ "",
),
- "",
- ),
- (
(
- "track (ctl=4) at sector 0\n"
- 'ISO filesystem, label "config-2", '
- "creation time: 2020/03/31 17:29\n"
- "adding as 'a'\n"
+ (
+ "track (ctl=4) at sector 0\n"
+ 'ISO filesystem, label "config-2", '
+ "creation time: 2020/03/31 17:29\n"
+ "adding as 'a'\n"
+ ),
+ "",
),
- "",
- ),
- ]
- m_subp.side_effect = side_effect_values
- devlist = util.find_devs_with_netbsd()
- assert set(devlist) == set(
- ["/dev/ld0", "/dev/dk0", "/dev/dk1", "/dev/cd0"]
- )
- m_subp.side_effect = side_effect_values
- devlist = util.find_devs_with_netbsd(criteria="TYPE=iso9660")
- assert devlist == ["/dev/cd0"]
- m_subp.side_effect = side_effect_values
- devlist = util.find_devs_with_netbsd(criteria="TYPE=vfat")
- assert devlist == ["/dev/ld0", "/dev/dk0", "/dev/dk1"]
+ ]
+ m_subp.side_effect = side_effect_values
+ devlist = util.find_devs_with_netbsd()
+ assert set(devlist) == set(
+ ["/dev/ld0", "/dev/dk0", "/dev/dk1", "/dev/cd0"]
+ )
+
+ m_subp.side_effect = side_effect_values
+ devlist = util.find_devs_with_netbsd(criteria="TYPE=iso9660")
+ assert devlist == ["/dev/cd0"]
+
+ m_subp.side_effect = side_effect_values
+ devlist = util.find_devs_with_netbsd(criteria="TYPE=vfat")
+ assert devlist == ["/dev/ld0", "/dev/dk0", "/dev/dk1"]
+
+ # lp: #1841466
+ m_subp.side_effect = side_effect_values
+ devlist = util.find_devs_with_netbsd(criteria="LABEL_FATBOOT=A_LABEL")
+ assert devlist == ['/dev/ld0', '/dev/dk0', '/dev/dk1', '/dev/cd0']
# vi: ts=4 expandtab