summaryrefslogtreecommitdiff
path: root/cloudinit/sources
diff options
context:
space:
mode:
authorScott Moser <smoser@brickies.net>2019-10-11 14:54:49 +0000
committerServer Team CI Bot <josh.powers+server-team-bot@canonical.com>2019-10-11 14:54:49 +0000
commit7d5d34f3643a2108d667759f57a5ab63d0affadd (patch)
tree4ec5678e67e6100cd9863e344b98664bf95caa4d /cloudinit/sources
parentd3b1c4ae6bd237a04ba5df4306ff38f752f72132 (diff)
downloadvyos-cloud-init-7d5d34f3643a2108d667759f57a5ab63d0affadd.tar.gz
vyos-cloud-init-7d5d34f3643a2108d667759f57a5ab63d0affadd.zip
Add Support for e24cloud to Ec2 datasource.
e24cloud provides an EC2 compatible datasource. This just identifies their platform based on dmi 'system-vendor' having 'e24cloud'. https://www.e24cloud.com/en/ . Updated chassis typo in zstack unit test docstring. LP: #1696476
Diffstat (limited to 'cloudinit/sources')
-rw-r--r--cloudinit/sources/DataSourceEc2.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/cloudinit/sources/DataSourceEc2.py b/cloudinit/sources/DataSourceEc2.py
index 6c72ace2..1d88c9b1 100644
--- a/cloudinit/sources/DataSourceEc2.py
+++ b/cloudinit/sources/DataSourceEc2.py
@@ -34,6 +34,7 @@ class CloudNames(object):
AWS = "aws"
BRIGHTBOX = "brightbox"
ZSTACK = "zstack"
+ E24CLOUD = "e24cloud"
# UNKNOWN indicates no positive id. If strict_id is 'warn' or 'false',
# then an attempt at the Ec2 Metadata service will be made.
UNKNOWN = "unknown"
@@ -483,11 +484,16 @@ def identify_zstack(data):
return CloudNames.ZSTACK
+def identify_e24cloud(data):
+ if data['vendor'] == 'e24cloud':
+ return CloudNames.E24CLOUD
+
+
def identify_platform():
# identify the platform and return an entry in CloudNames.
data = _collect_platform_data()
checks = (identify_aws, identify_brightbox, identify_zstack,
- lambda x: CloudNames.UNKNOWN)
+ identify_e24cloud, lambda x: CloudNames.UNKNOWN)
for checker in checks:
try:
result = checker(data)
@@ -506,6 +512,7 @@ def _collect_platform_data():
uuid_source: 'hypervisor' (/sys/hypervisor/uuid) or 'dmi'
serial: dmi 'system-serial-number' (/sys/.../product_serial)
asset_tag: 'dmidecode -s chassis-asset-tag'
+ vendor: dmi 'system-manufacturer' (/sys/.../sys_vendor)
On Ec2 instances experimentation is that product_serial is upper case,
and product_uuid is lower case. This returns lower case values for both.
@@ -534,6 +541,9 @@ def _collect_platform_data():
data['asset_tag'] = asset_tag.lower()
+ vendor = util.read_dmi_data('system-manufacturer')
+ data['vendor'] = (vendor if vendor else '').lower()
+
return data