diff options
author | eb3095 <45504889+eb3095@users.noreply.github.com> | 2023-01-09 16:08:53 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-09 14:08:53 -0700 |
commit | cb128dc1b76bf0a48783ecb815e02ecbc0f1a41f (patch) | |
tree | 801aaec60da99e378f66a8c444cf65db37836b6a | |
parent | f82f18b28b02b6ffa438b43ac16578f05a331565 (diff) | |
download | cloud-init-git-cb128dc1b76bf0a48783ecb815e02ecbc0f1a41f.tar.gz |
vultr: Fix issue regarding cache and region codes (#1938)
-rw-r--r-- | cloudinit/sources/DataSourceVultr.py | 6 | ||||
-rw-r--r-- | cloudinit/sources/helpers/vultr.py | 14 | ||||
-rw-r--r-- | tests/unittests/sources/test_vultr.py | 9 |
3 files changed, 20 insertions, 9 deletions
diff --git a/cloudinit/sources/DataSourceVultr.py b/cloudinit/sources/DataSourceVultr.py index 93b04829..a2c16991 100644 --- a/cloudinit/sources/DataSourceVultr.py +++ b/cloudinit/sources/DataSourceVultr.py @@ -48,12 +48,6 @@ class DataSourceVultr(sources.DataSource): # Fetch metadata self.metadata = self.get_metadata() - self.metadata["instance-id"] = self.metadata["instance-v2-id"] - self.metadata["local-hostname"] = self.metadata["hostname"] - region = self.metadata["region"]["regioncode"] - if "countrycode" in self.metadata["region"]: - region = self.metadata["region"]["countrycode"] - self.metadata["region"] = region.lower() self.userdata_raw = self.metadata["user-data"] # Generate config and process data diff --git a/cloudinit/sources/helpers/vultr.py b/cloudinit/sources/helpers/vultr.py index de2d0eb0..30c8cfee 100644 --- a/cloudinit/sources/helpers/vultr.py +++ b/cloudinit/sources/helpers/vultr.py @@ -37,7 +37,9 @@ def get_metadata(url, timeout, retries, sec_between, agent, tmp_dir=None): # Fetch the metadata v1 = read_metadata(url, timeout, retries, sec_between, agent) - return json.loads(v1) + metadata = json.loads(v1) + refactor_metadata(metadata) + return metadata except ( NoDHCPLeaseError, subp.ProcessExecutionError, @@ -49,6 +51,16 @@ def get_metadata(url, timeout, retries, sec_between, agent, tmp_dir=None): raise exception +# Refactor metadata into acceptable format +def refactor_metadata(metadata): + metadata["instance-id"] = metadata["instance-v2-id"] + metadata["local-hostname"] = metadata["hostname"] + region = metadata["region"]["regioncode"] + if "countrycode" in metadata["region"]: + region = metadata["region"]["countrycode"] + metadata["region"] = region.lower() + + # Get interface list, sort, and clean def get_interface_list(): ifaces = [] diff --git a/tests/unittests/sources/test_vultr.py b/tests/unittests/sources/test_vultr.py index 27481e8e..cfd2f376 100644 --- a/tests/unittests/sources/test_vultr.py +++ b/tests/unittests/sources/test_vultr.py @@ -30,6 +30,9 @@ VULTR_V1_1 = { }, }, "hostname": "CLOUDINIT_1", + "local-hostname": "CLOUDINIT_1", + "instance-v2-id": "29bea708-2e6e-480a-90ad-0e6b5d5ad62f", + "instance-id": "29bea708-2e6e-480a-90ad-0e6b5d5ad62f", "instanceid": "42506325", "interfaces": [ { @@ -50,7 +53,7 @@ VULTR_V1_1 = { } ], "public-keys": ["ssh-rsa AAAAB3NzaC1y...IQQhv5PAOKaIl+mM3c= test3@key"], - "region": {"regioncode": "EWR"}, + "region": "us", "user-defined": [], "startup-script": "echo No configured startup script", "raid1-script": "", @@ -85,7 +88,9 @@ VULTR_V1_2 = { }, }, "hostname": "CLOUDINIT_2", + "local-hostname": "CLOUDINIT_2", "instance-v2-id": "29bea708-2e6e-480a-90ad-0e6b5d5ad62f", + "instance-id": "29bea708-2e6e-480a-90ad-0e6b5d5ad62f", "instanceid": "42872224", "interfaces": [ { @@ -121,7 +126,7 @@ VULTR_V1_2 = { }, ], "public-keys": ["ssh-rsa AAAAB3NzaC1y...IQQhv5PAOKaIl+mM3c= test3@key"], - "region": {"regioncode": "EWR"}, + "region": "us", "user-defined": [], "startup-script": "echo No configured startup script", "user-data": [], |