summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Patterson <cpatterson@microsoft.com>2022-01-20 17:31:25 -0500
committerGitHub <noreply@github.com>2022-01-20 16:31:25 -0600
commit109c2bbd9eb9a3b0612098bb010317191c436ad2 (patch)
tree50d23617d1e43ca800148bc414f2304edae39ca9
parent2a08d592f7fbdb64452eb2da14592ae5aec806ea (diff)
downloadvyos-cloud-init-109c2bbd9eb9a3b0612098bb010317191c436ad2.tar.gz
vyos-cloud-init-109c2bbd9eb9a3b0612098bb010317191c436ad2.zip
sources/azure: always initialize _ephemeral_dhcp_ctx on unpickle (#1199)
Avoid requirement of getattr() and ensure _ephemeral_dhcp_ctx isn't persisted in the cache. Signed-off-by: Chris Patterson cpatterson@microsoft.com
-rwxr-xr-xcloudinit/sources/DataSourceAzure.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/cloudinit/sources/DataSourceAzure.py b/cloudinit/sources/DataSourceAzure.py
index 9577355c..81ab88a9 100755
--- a/cloudinit/sources/DataSourceAzure.py
+++ b/cloudinit/sources/DataSourceAzure.py
@@ -299,6 +299,8 @@ class DataSourceAzure(sources.DataSource):
def _unpickle(self, ci_pkl_version: int) -> None:
super()._unpickle(ci_pkl_version)
+
+ self._ephemeral_dhcp_ctx = None
if not hasattr(self, "iso_dev"):
self.iso_dev = None
@@ -514,9 +516,11 @@ class DataSourceAzure(sources.DataSource):
if perform_reprovision or perform_reprovision_after_nic_attach:
LOG.info("Reporting ready to Azure after getting ReprovisionData")
- use_cached_ephemeral = self.distro.networking.is_up(
- self.fallback_interface
- ) and getattr(self, "_ephemeral_dhcp_ctx", None)
+ use_cached_ephemeral = (
+ self.distro.networking.is_up(self.fallback_interface)
+ and self._ephemeral_dhcp_ctx
+ and self._ephemeral_dhcp_ctx.lease
+ )
if use_cached_ephemeral:
self._report_ready(lease=self._ephemeral_dhcp_ctx.lease)
self._ephemeral_dhcp_ctx.clean_network() # Teardown ephemeral
@@ -1322,8 +1326,8 @@ class DataSourceAzure(sources.DataSource):
try:
if (
self.distro.networking.is_up(self.fallback_interface)
- and getattr(self, "_ephemeral_dhcp_ctx", None)
- and getattr(self._ephemeral_dhcp_ctx, "lease", None)
+ and self._ephemeral_dhcp_ctx
+ and self._ephemeral_dhcp_ctx.lease
and unknown_245_key in self._ephemeral_dhcp_ctx.lease
):
report_diagnostic_event(