diff options
author | Chris Patterson <cpatterson@microsoft.com> | 2022-01-20 17:46:49 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-20 16:46:49 -0600 |
commit | 6f0e881847822223fb96925b229322120772fa94 (patch) | |
tree | 8d42fdf8a9de7b88b8f16d27a32e54839ddb3b73 | |
parent | 109c2bbd9eb9a3b0612098bb010317191c436ad2 (diff) | |
download | vyos-cloud-init-6f0e881847822223fb96925b229322120772fa94.tar.gz vyos-cloud-init-6f0e881847822223fb96925b229322120772fa94.zip |
sources/azure: drop unused case in _report_failure() (#1200)
According to the documentation in the tests:
```
We expect 3 calls to report_failure_to_fabric,
because we try 3 different methods of calling report failure.
The different methods are attempted in the following order:
1. Using cached ephemeral dhcp context to report failure to Azure
2. Using new ephemeral dhcp to report failure to Azure
3. Using fallback lease to report failure to Azure
```
Case 1 and 2 make sense. If networking is established, use it.
Should failure occur using current network configuration, retry
with fresh DHCP.
Case 3 suggests that we can fall back to a lease file and retry.
Given that:
1. The wireserver address has never changed to date.
2. The wireserver address should be in the DHCP lease.
3. Parsing the lease file does not improve connectivity over the
prior attempts.
...we can safely remove this case without regression.
Signed-off-by: Chris Patterson <cpatterson@microsoft.com>
-rwxr-xr-x | cloudinit/sources/DataSourceAzure.py | 18 | ||||
-rw-r--r-- | tests/unittests/sources/test_azure.py | 32 |
2 files changed, 5 insertions, 45 deletions
diff --git a/cloudinit/sources/DataSourceAzure.py b/cloudinit/sources/DataSourceAzure.py index 81ab88a9..4e88c22b 100755 --- a/cloudinit/sources/DataSourceAzure.py +++ b/cloudinit/sources/DataSourceAzure.py @@ -14,6 +14,7 @@ from collections import namedtuple from enum import Enum from functools import partial from time import sleep, time +from typing import Optional from xml.dom import minidom import requests @@ -1315,7 +1316,7 @@ class DataSourceAzure(sources.DataSource): return return_val @azure_ds_telemetry_reporter - def _report_failure(self, description=None) -> bool: + def _report_failure(self, description: Optional[str] = None) -> bool: """Tells the Azure fabric that provisioning has failed. @param description: A description of the error encountered. @@ -1364,21 +1365,6 @@ class DataSourceAzure(sources.DataSource): logger_func=LOG.debug, ) - try: - report_diagnostic_event( - "Using fallback lease to report failure to Azure" - ) - report_failure_to_fabric( - fallback_lease_file=self.dhclient_lease_file, - description=description, - ) - return True - except Exception as e: - report_diagnostic_event( - "Failed to report failure using fallback lease: %s" % e, - logger_func=LOG.debug, - ) - return False def _report_ready(self, lease: dict) -> bool: diff --git a/tests/unittests/sources/test_azure.py b/tests/unittests/sources/test_azure.py index d950e156..66169a7a 100644 --- a/tests/unittests/sources/test_azure.py +++ b/tests/unittests/sources/test_azure.py @@ -1737,15 +1737,14 @@ scbus-1 on xpt0 bus 0 test_lease = {"unknown-245": test_lease_dhcp_option_245} m_ephemeral_dhcp_ctx.lease = test_lease - # We expect 3 calls to report_failure_to_fabric, - # because we try 3 different methods of calling report failure. + # We expect 2 calls to report_failure_to_fabric, + # because we try 2 different methods of calling report failure. # The different methods are attempted in the following order: # 1. Using cached ephemeral dhcp context to report failure to Azure # 2. Using new ephemeral dhcp to report failure to Azure - # 3. Using fallback lease to report failure to Azure self.m_report_failure_to_fabric.side_effect = Exception self.assertFalse(dsrc._report_failure()) - self.assertEqual(3, self.m_report_failure_to_fabric.call_count) + self.assertEqual(2, self.m_report_failure_to_fabric.call_count) def test_dsaz_report_failure_description_msg(self): dsrc = self._get_ds({"ovfcontent": construct_valid_ovf_env()}) @@ -1826,31 +1825,6 @@ scbus-1 on xpt0 bus 0 description=mock.ANY, dhcp_opts=test_lease_dhcp_option_245 ) - def test_dsaz_report_failure_no_net_and_no_dhcp_uses_fallback_lease(self): - dsrc = self._get_ds({"ovfcontent": construct_valid_ovf_env()}) - - with mock.patch.object( - dsrc, "crawl_metadata" - ) as m_crawl_metadata, mock.patch.object( - dsrc.distro.networking, "is_up" - ) as m_dsrc_distro_networking_is_up: - # mock crawl metadata failure to cause report failure - m_crawl_metadata.side_effect = Exception - - # net is not up and cannot use cached ephemeral dhcp - m_dsrc_distro_networking_is_up.return_value = False - # ephemeral dhcp discovery failure, - # so cannot use a new ephemeral dhcp - self.m_dhcp.return_value.__enter__.side_effect = Exception - - self.assertTrue(dsrc._report_failure()) - - # ensure called with fallback lease - self.m_report_failure_to_fabric.assert_called_once_with( - description=mock.ANY, - fallback_lease_file=dsrc.dhclient_lease_file, - ) - def test_exception_fetching_fabric_data_doesnt_propagate(self): """Errors communicating with fabric should warn, but return True.""" dsrc = self._get_ds({"ovfcontent": construct_valid_ovf_env()}) |