summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreb3095 <45504889+eb3095@users.noreply.github.com>2023-01-09 16:08:53 -0500
committerGitHub <noreply@github.com>2023-01-09 14:08:53 -0700
commitcb128dc1b76bf0a48783ecb815e02ecbc0f1a41f (patch)
tree801aaec60da99e378f66a8c444cf65db37836b6a
parentf82f18b28b02b6ffa438b43ac16578f05a331565 (diff)
downloadcloud-init-git-cb128dc1b76bf0a48783ecb815e02ecbc0f1a41f.tar.gz
vultr: Fix issue regarding cache and region codes (#1938)
-rw-r--r--cloudinit/sources/DataSourceVultr.py6
-rw-r--r--cloudinit/sources/helpers/vultr.py14
-rw-r--r--tests/unittests/sources/test_vultr.py9
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": [],