cloud-init-dev team mailing list archive
-
cloud-init-dev team
-
Mailing list archive
-
Message #02745
[Merge] ~smoser/cloud-init:fix/freebsd-test-failure into cloud-init:master
Scott Moser has proposed merging ~smoser/cloud-init:fix/freebsd-test-failure into cloud-init:master.
Requested reviews:
cloud-init commiters (cloud-init-dev)
For more details, see:
https://code.launchpad.net/~smoser/cloud-init/+git/cloud-init/+merge/325771
--
Your team cloud-init commiters is requested to review the proposed merge of ~smoser/cloud-init:fix/freebsd-test-failure into cloud-init:master.
diff --git a/cloudinit/sources/DataSourceAzure.py b/cloudinit/sources/DataSourceAzure.py
index ebb53d0..e5514ad 100644
--- a/cloudinit/sources/DataSourceAzure.py
+++ b/cloudinit/sources/DataSourceAzure.py
@@ -803,18 +803,22 @@ def encrypt_pass(password, salt_id="$6$"):
return crypt.crypt(password, salt_id + util.rand_str(strlen=16))
+def _check_freebsd_cdrom(cdrom_dev):
+ """Return boolean indicating path to cdrom device has content."""
+ try:
+ with open(cdrom_dev) as fp:
+ fp.read(1024)
+ devlist.append(cdrom_dev)
+ except IOError:
+ LOG.debug("cdrom (%s) is not configured", cdrom_dev)
+
+
def list_possible_azure_ds_devs():
devlist = []
if util.is_FreeBSD():
- # add '/dev/cd0' to devlist if it is configured
- # here wants to test whether '/dev/cd0' is available
cdrom_dev = "/dev/cd0"
- try:
- with open(cdrom_dev) as fp:
- fp.read(1024)
- devlist.append(cdrom_dev)
- except IOError:
- LOG.debug("cdrom (%s) is not configured", cdrom_dev)
+ if _check_freebsd_cdrom(cdrom_dev):
+ return [cdrom_dev]
else:
for fstype in ("iso9660", "udf"):
devlist.extend(util.find_devs_with("TYPE=%s" % fstype))
diff --git a/tests/unittests/test_datasource/test_azure.py b/tests/unittests/test_datasource/test_azure.py
index 114b1a5..8ee07d7 100644
--- a/tests/unittests/test_datasource/test_azure.py
+++ b/tests/unittests/test_datasource/test_azure.py
@@ -544,14 +544,16 @@ fdescfs /dev/fd fdescfs rw 0 0
ds.get_data()
self.assertEqual(self.instance_id, ds.metadata['instance-id'])
- def test_list_possible_azure_ds_devs(self):
+ @patch("cloudinit.sources.DataSourceAzure.util.is_FreeBSD")
+ @patch("cloudinit.sources.DataSourceAzure._check_freebsd_cdrom")
+ def test_list_possible_azure_ds_devs(self, m_check_fbsd_cdrom,
+ m_is_FreeBSD):
devlist = []
- with patch('platform.platform',
- mock.MagicMock(return_value="FreeBSD")):
- name = 'builtins.open' if PY3 else '__builtin__.open'
- with patch(name, mock_open(read_data="data")):
- devlist.extend(dsaz.list_possible_azure_ds_devs())
- self.assertEqual(devlist, ['/dev/cd0'])
+ m_is_FreeBSD.return_value = True
+ m_check_fbsd_cdrom.return_value = True
+ self.assertEqual(dsaz.list_possible_azure_ds_devs(), ['/dev/cd0'])
+ self.assertEqual(
+ [mock.call("/dev/cd0")], m_check_fbsd_cdrom.call_args_list)
class TestAzureBounce(TestCase):
Follow ups