summaryrefslogtreecommitdiff
path: root/cloudinit/util.py
diff options
context:
space:
mode:
authorBen Howard <bh@digitalocean.com>2016-08-01 14:47:39 -0600
committerScott Moser <smoser@ubuntu.com>2016-08-12 16:16:27 -0400
commitbc2c3267549b9067c017a34e22bbee18890aec06 (patch)
treef6c9b69053715b98e99604ccff5b18a103b4bd44 /cloudinit/util.py
parentd9537aaa37f1e17db334c7cf8888ea3c4dcf1436 (diff)
downloadvyos-cloud-init-bc2c3267549b9067c017a34e22bbee18890aec06.tar.gz
vyos-cloud-init-bc2c3267549b9067c017a34e22bbee18890aec06.zip
DigitalOcean: use the v1.json endpoint
Per [1], DigitalOcean provides the metadata in multiple formats. The JSON document is the preferred endpoint. Changes: - Switch to the v1.json meta-data endpoint - Identify droplet identity from SMBIOS - Only poll for metadata when the instance is confirmed to be a droplet - Removal of hard-coded mirrors Additionally, centralize the gates on running 'dmidecode' on arm arches, and update tests to address. [1] https://developers.digitalocean.com/documentation/metadata/
Diffstat (limited to 'cloudinit/util.py')
-rw-r--r--cloudinit/util.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/cloudinit/util.py b/cloudinit/util.py
index e5dd61a0..226628cc 100644
--- a/cloudinit/util.py
+++ b/cloudinit/util.py
@@ -2227,10 +2227,17 @@ def read_dmi_data(key):
If all of the above fail to find a value, None will be returned.
"""
+
syspath_value = _read_dmi_syspath(key)
if syspath_value is not None:
return syspath_value
+ # running dmidecode can be problematic on some arches (LP: #1243287)
+ uname_arch = os.uname()[4]
+ if uname_arch.startswith("arm") or uname_arch == "aarch64":
+ LOG.debug("dmidata is not supported on %s", uname_arch)
+ return None
+
dmidecode_path = which('dmidecode')
if dmidecode_path:
return _call_dmidecode(key, dmidecode_path)