summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAnh Vo <anhvo@microsoft.com>2021-04-23 10:18:05 -0400
committerGitHub <noreply@github.com>2021-04-23 09:18:05 -0500
commitd5cca27a56145a5eb3d2ebad6749989b2fb7dcd3 (patch)
tree3722759a417229b182ee2a25aa6b0b89736e4771 /tests
parentced836e69274af905bbc1e5f5fde71de4066c86c (diff)
downloadvyos-cloud-init-d5cca27a56145a5eb3d2ebad6749989b2fb7dcd3.tar.gz
vyos-cloud-init-d5cca27a56145a5eb3d2ebad6749989b2fb7dcd3.zip
Azure: eject the provisioning iso before reporting ready (#861)
Due to hyper-v implementations, iso ejection is more efficient if performed from within the guest. The code will attempt to perform a best-effort ejection. Failure during ejection will not prevent reporting ready from happening. If iso ejection is successful, later iso ejection from the platform will be a no-op. In the event the iso ejection from the guest fails, iso ejection will still happen at the platform level.
Diffstat (limited to 'tests')
-rw-r--r--tests/unittests/test_datasource/test_azure_helper.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/tests/unittests/test_datasource/test_azure_helper.py b/tests/unittests/test_datasource/test_azure_helper.py
index 63482c6c..552c7905 100644
--- a/tests/unittests/test_datasource/test_azure_helper.py
+++ b/tests/unittests/test_datasource/test_azure_helper.py
@@ -1009,6 +1009,14 @@ class TestWALinuxAgentShim(CiTestCase):
self.GoalState.return_value.container_id = self.test_container_id
self.GoalState.return_value.instance_id = self.test_instance_id
+ def test_eject_iso_is_called(self):
+ shim = wa_shim()
+ with mock.patch.object(
+ shim, 'eject_iso', autospec=True
+ ) as m_eject_iso:
+ shim.register_with_azure_and_fetch_data(iso_dev="/dev/sr0")
+ m_eject_iso.assert_called_once_with("/dev/sr0")
+
def test_http_client_does_not_use_certificate_for_report_ready(self):
shim = wa_shim()
shim.register_with_azure_and_fetch_data()
@@ -1283,13 +1291,14 @@ class TestGetMetadataGoalStateXMLAndReportReadyToFabric(CiTestCase):
def test_calls_shim_register_with_azure_and_fetch_data(self):
m_pubkey_info = mock.MagicMock()
- azure_helper.get_metadata_from_fabric(pubkey_info=m_pubkey_info)
+ azure_helper.get_metadata_from_fabric(
+ pubkey_info=m_pubkey_info, iso_dev="/dev/sr0")
self.assertEqual(
1,
self.m_shim.return_value
.register_with_azure_and_fetch_data.call_count)
self.assertEqual(
- mock.call(pubkey_info=m_pubkey_info),
+ mock.call(iso_dev="/dev/sr0", pubkey_info=m_pubkey_info),
self.m_shim.return_value
.register_with_azure_and_fetch_data.call_args)