summaryrefslogtreecommitdiff
path: root/tests/unittests/sources/test_vultr.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unittests/sources/test_vultr.py')
-rw-r--r--tests/unittests/sources/test_vultr.py375
1 files changed, 163 insertions, 212 deletions
diff --git a/tests/unittests/sources/test_vultr.py b/tests/unittests/sources/test_vultr.py
index 40594b95..21d5bc17 100644
--- a/tests/unittests/sources/test_vultr.py
+++ b/tests/unittests/sources/test_vultr.py
@@ -7,255 +7,204 @@
import json
-from cloudinit import helpers
-from cloudinit import settings
+from cloudinit import helpers, settings
from cloudinit.sources import DataSourceVultr
from cloudinit.sources.helpers import vultr
-
-from tests.unittests.helpers import mock, CiTestCase
+from tests.unittests.helpers import CiTestCase, mock
# Vultr metadata test data
VULTR_V1_1 = {
- 'bgp': {
- 'ipv4': {
- 'my-address': '',
- 'my-asn': '',
- 'peer-address': '',
- 'peer-asn': ''
+ "bgp": {
+ "ipv4": {
+ "my-address": "",
+ "my-asn": "",
+ "peer-address": "",
+ "peer-asn": "",
+ },
+ "ipv6": {
+ "my-address": "",
+ "my-asn": "",
+ "peer-address": "",
+ "peer-asn": "",
},
- 'ipv6': {
- 'my-address': '',
- 'my-asn': '',
- 'peer-address': '',
- 'peer-asn': ''
- }
},
- 'hostname': 'CLOUDINIT_1',
- 'instanceid': '42506325',
- 'interfaces': [
+ "hostname": "CLOUDINIT_1",
+ "instanceid": "42506325",
+ "interfaces": [
{
- 'ipv4': {
- 'additional': [
- ],
- 'address': '108.61.89.242',
- 'gateway': '108.61.89.1',
- 'netmask': '255.255.255.0'
+ "ipv4": {
+ "additional": [],
+ "address": "108.61.89.242",
+ "gateway": "108.61.89.1",
+ "netmask": "255.255.255.0",
},
- 'ipv6': {
- 'additional': [
- ],
- 'address': '2001:19f0:5:56c2:5400:03ff:fe15:c465',
- 'network': '2001:19f0:5:56c2::',
- 'prefix': '64'
+ "ipv6": {
+ "additional": [],
+ "address": "2001:19f0:5:56c2:5400:03ff:fe15:c465",
+ "network": "2001:19f0:5:56c2::",
+ "prefix": "64",
},
- 'mac': '56:00:03:15:c4:65',
- 'network-type': 'public'
+ "mac": "56:00:03:15:c4:65",
+ "network-type": "public",
}
],
- 'public-keys': [
- 'ssh-rsa AAAAB3NzaC1y...IQQhv5PAOKaIl+mM3c= test3@key'
- ],
- 'region': {
- 'regioncode': 'EWR'
- },
- 'user-defined': [
- ],
- 'startup-script': 'echo No configured startup script',
- 'raid1-script': '',
- 'user-data': [
- ],
- 'vendor-data': [
+ "public-keys": ["ssh-rsa AAAAB3NzaC1y...IQQhv5PAOKaIl+mM3c= test3@key"],
+ "region": {"regioncode": "EWR"},
+ "user-defined": [],
+ "startup-script": "echo No configured startup script",
+ "raid1-script": "",
+ "user-data": [],
+ "vendor-data": [
{
- 'package_upgrade': 'true',
- 'disable_root': 0,
- 'ssh_pwauth': 1,
- 'chpasswd': {
- 'expire': False,
- 'list': [
- 'root:$6$S2Smuj.../VqxmIR9Urw0jPZ88i4yvB/'
- ]
+ "package_upgrade": "true",
+ "disable_root": 0,
+ "ssh_pwauth": 1,
+ "chpasswd": {
+ "expire": False,
+ "list": ["root:$6$S2Smuj.../VqxmIR9Urw0jPZ88i4yvB/"],
},
- 'system_info': {
- 'default_user': {
- 'name': 'root'
- }
- }
+ "system_info": {"default_user": {"name": "root"}},
}
- ]
+ ],
}
VULTR_V1_2 = {
- 'bgp': {
- 'ipv4': {
- 'my-address': '',
- 'my-asn': '',
- 'peer-address': '',
- 'peer-asn': ''
+ "bgp": {
+ "ipv4": {
+ "my-address": "",
+ "my-asn": "",
+ "peer-address": "",
+ "peer-asn": "",
+ },
+ "ipv6": {
+ "my-address": "",
+ "my-asn": "",
+ "peer-address": "",
+ "peer-asn": "",
},
- 'ipv6': {
- 'my-address': '',
- 'my-asn': '',
- 'peer-address': '',
- 'peer-asn': ''
- }
},
- 'hostname': 'CLOUDINIT_2',
- 'instance-v2-id': '29bea708-2e6e-480a-90ad-0e6b5d5ad62f',
- 'instanceid': '42872224',
- 'interfaces': [
+ "hostname": "CLOUDINIT_2",
+ "instance-v2-id": "29bea708-2e6e-480a-90ad-0e6b5d5ad62f",
+ "instanceid": "42872224",
+ "interfaces": [
{
- 'ipv4': {
- 'additional': [
- ],
- 'address':'45.76.7.171',
- 'gateway':'45.76.6.1',
- 'netmask':'255.255.254.0'
+ "ipv4": {
+ "additional": [],
+ "address": "45.76.7.171",
+ "gateway": "45.76.6.1",
+ "netmask": "255.255.254.0",
},
- 'ipv6':{
- 'additional': [
- ],
- 'address':'2001:19f0:5:28a7:5400:03ff:fe1b:4eca',
- 'network':'2001:19f0:5:28a7::',
- 'prefix':'64'
+ "ipv6": {
+ "additional": [],
+ "address": "2001:19f0:5:28a7:5400:03ff:fe1b:4eca",
+ "network": "2001:19f0:5:28a7::",
+ "prefix": "64",
},
- 'mac':'56:00:03:1b:4e:ca',
- 'network-type':'public'
+ "mac": "56:00:03:1b:4e:ca",
+ "network-type": "public",
},
{
- 'ipv4': {
- 'additional': [
- ],
- 'address':'10.1.112.3',
- 'gateway':'',
- 'netmask':'255.255.240.0'
- },
- 'ipv6':{
- 'additional': [
- ],
- 'network':'',
- 'prefix':''
+ "ipv4": {
+ "additional": [],
+ "address": "10.1.112.3",
+ "gateway": "",
+ "netmask": "255.255.240.0",
},
- 'mac':'5a:00:03:1b:4e:ca',
- 'network-type':'private',
- 'network-v2-id':'fbbe2b5b-b986-4396-87f5-7246660ccb64',
- 'networkid':'net5e7155329d730'
- }
- ],
- 'public-keys': [
- 'ssh-rsa AAAAB3NzaC1y...IQQhv5PAOKaIl+mM3c= test3@key'
- ],
- 'region': {
- 'regioncode': 'EWR'
- },
- 'user-defined': [
- ],
- 'startup-script': 'echo No configured startup script',
- 'user-data': [
+ "ipv6": {"additional": [], "network": "", "prefix": ""},
+ "mac": "5a:00:03:1b:4e:ca",
+ "network-type": "private",
+ "network-v2-id": "fbbe2b5b-b986-4396-87f5-7246660ccb64",
+ "networkid": "net5e7155329d730",
+ },
],
-
- 'vendor-data': [
+ "public-keys": ["ssh-rsa AAAAB3NzaC1y...IQQhv5PAOKaIl+mM3c= test3@key"],
+ "region": {"regioncode": "EWR"},
+ "user-defined": [],
+ "startup-script": "echo No configured startup script",
+ "user-data": [],
+ "vendor-data": [
{
- 'package_upgrade': 'true',
- 'disable_root': 0,
- 'ssh_pwauth': 1,
- 'chpasswd': {
- 'expire': False,
- 'list': [
- 'root:$6$SxXx...k2mJNIzZB5vMCDBlYT1'
- ]
+ "package_upgrade": "true",
+ "disable_root": 0,
+ "ssh_pwauth": 1,
+ "chpasswd": {
+ "expire": False,
+ "list": ["root:$6$SxXx...k2mJNIzZB5vMCDBlYT1"],
},
- 'system_info': {
- 'default_user': {
- 'name': 'root'
- }
- }
+ "system_info": {"default_user": {"name": "root"}},
}
- ]
+ ],
}
-SSH_KEYS_1 = [
- "ssh-rsa AAAAB3NzaC1y...IQQhv5PAOKaIl+mM3c= test3@key"
-]
+SSH_KEYS_1 = ["ssh-rsa AAAAB3NzaC1y...IQQhv5PAOKaIl+mM3c= test3@key"]
# Expected generated objects
# Expected config
EXPECTED_VULTR_CONFIG = {
- 'package_upgrade': 'true',
- 'disable_root': 0,
- 'ssh_pwauth': 1,
- 'chpasswd': {
- 'expire': False,
- 'list': [
- 'root:$6$SxXx...k2mJNIzZB5vMCDBlYT1'
- ]
+ "package_upgrade": "true",
+ "disable_root": 0,
+ "ssh_pwauth": 1,
+ "chpasswd": {
+ "expire": False,
+ "list": ["root:$6$SxXx...k2mJNIzZB5vMCDBlYT1"],
},
- 'system_info': {
- 'default_user': {
- 'name': 'root'
- }
- }
+ "system_info": {"default_user": {"name": "root"}},
}
# Expected network config object from generator
EXPECTED_VULTR_NETWORK_1 = {
- 'version': 1,
- 'config': [
+ "version": 1,
+ "config": [
+ {"type": "nameserver", "address": ["108.61.10.10"]},
{
- 'type': 'nameserver',
- 'address': ['108.61.10.10']
- },
- {
- 'name': 'eth0',
- 'type': 'physical',
- 'mac_address': '56:00:03:15:c4:65',
- 'accept-ra': 1,
- 'subnets': [
- {'type': 'dhcp', 'control': 'auto'},
- {'type': 'ipv6_slaac', 'control': 'auto'}
+ "name": "eth0",
+ "type": "physical",
+ "mac_address": "56:00:03:15:c4:65",
+ "accept-ra": 1,
+ "subnets": [
+ {"type": "dhcp", "control": "auto"},
+ {"type": "ipv6_slaac", "control": "auto"},
],
- }
- ]
+ },
+ ],
}
EXPECTED_VULTR_NETWORK_2 = {
- 'version': 1,
- 'config': [
+ "version": 1,
+ "config": [
+ {"type": "nameserver", "address": ["108.61.10.10"]},
{
- 'type': 'nameserver',
- 'address': ['108.61.10.10']
- },
- {
- 'name': 'eth0',
- 'type': 'physical',
- 'mac_address': '56:00:03:1b:4e:ca',
- 'accept-ra': 1,
- 'subnets': [
- {'type': 'dhcp', 'control': 'auto'},
- {'type': 'ipv6_slaac', 'control': 'auto'}
+ "name": "eth0",
+ "type": "physical",
+ "mac_address": "56:00:03:1b:4e:ca",
+ "accept-ra": 1,
+ "subnets": [
+ {"type": "dhcp", "control": "auto"},
+ {"type": "ipv6_slaac", "control": "auto"},
],
},
{
- 'name': 'eth1',
- 'type': 'physical',
- 'mac_address': '5a:00:03:1b:4e:ca',
- 'subnets': [
+ "name": "eth1",
+ "type": "physical",
+ "mac_address": "5a:00:03:1b:4e:ca",
+ "subnets": [
{
"type": "static",
"control": "auto",
"address": "10.1.112.3",
- "netmask": "255.255.240.0"
+ "netmask": "255.255.240.0",
}
],
- }
- ]
+ },
+ ],
}
INTERFACE_MAP = {
- '56:00:03:15:c4:65': 'eth0',
- '56:00:03:1b:4e:ca': 'eth0',
- '5a:00:03:1b:4e:ca': 'eth1'
+ "56:00:03:15:c4:65": "eth0",
+ "56:00:03:1b:4e:ca": "eth0",
+ "5a:00:03:1b:4e:ca": "eth1",
}
@@ -264,41 +213,39 @@ class TestDataSourceVultr(CiTestCase):
super(TestDataSourceVultr, self).setUp()
# Stored as a dict to make it easier to maintain
- raw1 = json.dumps(VULTR_V1_1['vendor-data'][0])
- raw2 = json.dumps(VULTR_V1_2['vendor-data'][0])
+ raw1 = json.dumps(VULTR_V1_1["vendor-data"][0])
+ raw2 = json.dumps(VULTR_V1_2["vendor-data"][0])
# Make expected format
- VULTR_V1_1['vendor-data'] = [raw1]
- VULTR_V1_2['vendor-data'] = [raw2]
+ VULTR_V1_1["vendor-data"] = [raw1]
+ VULTR_V1_2["vendor-data"] = [raw2]
self.tmp = self.tmp_dir()
# Test the datasource itself
- @mock.patch('cloudinit.net.get_interfaces_by_mac')
- @mock.patch('cloudinit.sources.helpers.vultr.is_vultr')
- @mock.patch('cloudinit.sources.helpers.vultr.get_metadata')
- def test_datasource(self,
- mock_getmeta,
- mock_isvultr,
- mock_netmap):
+ @mock.patch("cloudinit.net.get_interfaces_by_mac")
+ @mock.patch("cloudinit.sources.helpers.vultr.is_vultr")
+ @mock.patch("cloudinit.sources.helpers.vultr.get_metadata")
+ def test_datasource(self, mock_getmeta, mock_isvultr, mock_netmap):
mock_getmeta.return_value = VULTR_V1_2
mock_isvultr.return_value = True
mock_netmap.return_value = INTERFACE_MAP
source = DataSourceVultr.DataSourceVultr(
- settings.CFG_BUILTIN, None, helpers.Paths({'run_dir': self.tmp}))
+ settings.CFG_BUILTIN, None, helpers.Paths({"run_dir": self.tmp})
+ )
# Test for failure
self.assertEqual(True, source._get_data())
# Test instance id
- self.assertEqual("42872224", source.metadata['instanceid'])
+ self.assertEqual("42872224", source.metadata["instanceid"])
# Test hostname
- self.assertEqual("CLOUDINIT_2", source.metadata['local-hostname'])
+ self.assertEqual("CLOUDINIT_2", source.metadata["local-hostname"])
# Test ssh keys
- self.assertEqual(SSH_KEYS_1, source.metadata['public-keys'])
+ self.assertEqual(SSH_KEYS_1, source.metadata["public-keys"])
# Test vendor data generation
orig_val = self.maxDiff
@@ -309,7 +256,8 @@ class TestDataSourceVultr(CiTestCase):
# Test vendor config
self.assertEqual(
EXPECTED_VULTR_CONFIG,
- json.loads(vendordata[0].replace("#cloud-config", "")))
+ json.loads(vendordata[0].replace("#cloud-config", "")),
+ )
self.maxDiff = orig_val
@@ -317,21 +265,24 @@ class TestDataSourceVultr(CiTestCase):
self.assertEqual(EXPECTED_VULTR_NETWORK_2, source.network_config)
# Test network config generation
- @mock.patch('cloudinit.net.get_interfaces_by_mac')
+ @mock.patch("cloudinit.net.get_interfaces_by_mac")
def test_network_config(self, mock_netmap):
mock_netmap.return_value = INTERFACE_MAP
- interf = VULTR_V1_1['interfaces']
+ interf = VULTR_V1_1["interfaces"]
- self.assertEqual(EXPECTED_VULTR_NETWORK_1,
- vultr.generate_network_config(interf))
+ self.assertEqual(
+ EXPECTED_VULTR_NETWORK_1, vultr.generate_network_config(interf)
+ )
# Test Private Networking config generation
- @mock.patch('cloudinit.net.get_interfaces_by_mac')
+ @mock.patch("cloudinit.net.get_interfaces_by_mac")
def test_private_network_config(self, mock_netmap):
mock_netmap.return_value = INTERFACE_MAP
- interf = VULTR_V1_2['interfaces']
+ interf = VULTR_V1_2["interfaces"]
+
+ self.assertEqual(
+ EXPECTED_VULTR_NETWORK_2, vultr.generate_network_config(interf)
+ )
- self.assertEqual(EXPECTED_VULTR_NETWORK_2,
- vultr.generate_network_config(interf))
# vi: ts=4 expandtab