def test_with_no_userdata(self): props = {"password": "******", "instance-id": "inst-001"} env = fill_properties(props) md, ud, cfg = dsovf.read_ovf_environment(env) self.assertEqual({"instance-id": "inst-001"}, md) self.assertEqual({"password": "******"}, cfg) self.assertIsNone(ud)
def test_with_b64_network_config_disable_read_network(self): network_config = dedent( """\ network: version: 2 ethernets: nics: nameservers: addresses: - 127.0.0.53 search: - eng.vmware.com - vmware.com match: name: eth* gateway4: 10.10.10.253 dhcp4: false addresses: - 10.10.10.1/24 """ ) network_config_b64 = base64.b64encode(network_config.encode()).decode() props = { "network-config": network_config_b64, "password": "******", "instance-id": "inst-001", } env = fill_properties(props) md, ud, cfg = dsovf.read_ovf_environment(env) self.assertEqual({"instance-id": "inst-001"}, md) self.assertEqual({"password": "******"}, cfg) self.assertIsNone(ud)
def test_with_no_userdata(self): props = {"password": "******", "instance-id": "inst-001"} env = fill_properties(props) md, ud, cfg = dsovf.read_ovf_environment(env) self.assertEqual({"instance-id": "inst-001"}, md) self.assertEqual({'password': "******"}, cfg) self.assertEqual(None, ud)
def test_with_non_b64_userdata(self): user_data = "my-user-data" props = {"user-data": user_data, "instance-id": "inst-001"} env = fill_properties(props) md, ud, cfg = dsovf.read_ovf_environment(env) self.assertEqual({"instance-id": "inst-001"}, md) self.assertEqual(user_data.encode(), ud) self.assertEqual({}, cfg)
def test_with_b64_userdata(self): user_data = "#!/bin/sh\necho hello world\n" user_data_b64 = base64.b64encode(user_data.encode()).decode() props = {"user-data": user_data_b64, "password": "******", "instance-id": "inst-001"} env = fill_properties(props) md, ud, cfg = dsovf.read_ovf_environment(env) self.assertEqual({"instance-id": "inst-001"}, md) self.assertEqual(user_data.encode(), ud) self.assertEqual({'password': "******"}, cfg)
def test_with_b64_network_config_enable_read_network(self): network_config = dedent( """\ network: version: 2 ethernets: nics: nameservers: addresses: - 127.0.0.53 search: - eng.vmware.com - vmware.com match: name: eth* gateway4: 10.10.10.253 dhcp4: false addresses: - 10.10.10.1/24 """ ) network_config_b64 = base64.b64encode(network_config.encode()).decode() props = { "network-config": network_config_b64, "password": "******", "instance-id": "inst-001", } env = fill_properties(props) md, ud, cfg = dsovf.read_ovf_environment(env, True) self.assertEqual("inst-001", md["instance-id"]) self.assertEqual({"password": "******"}, cfg) self.assertEqual( { "version": 2, "ethernets": { "nics": { "nameservers": { "addresses": ["127.0.0.53"], "search": ["eng.vmware.com", "vmware.com"], }, "match": {"name": "eth*"}, "gateway4": "10.10.10.253", "dhcp4": False, "addresses": ["10.10.10.1/24"], } }, }, md["network-config"], ) self.assertIsNone(ud)
def test_with_b64_network_config_enable_read_network(self): network_config = dedent("""\ network: version: 2 ethernets: nics: nameservers: addresses: - 127.0.0.53 search: - eng.vmware.com - vmware.com match: name: eth* gateway4: 10.10.10.253 dhcp4: false addresses: - 10.10.10.1/24 """) network_config_b64 = base64.b64encode(network_config.encode()).decode() props = { "network-config": network_config_b64, "password": "******", "instance-id": "inst-001" } env = fill_properties(props) md, ud, cfg = dsovf.read_ovf_environment(env, True) self.assertEqual("inst-001", md["instance-id"]) self.assertEqual({'password': "******"}, cfg) self.assertEqual( { 'version': 2, 'ethernets': { 'nics': { 'nameservers': { 'addresses': ['127.0.0.53'], 'search': ['eng.vmware.com', 'vmware.com'] }, 'match': { 'name': 'eth*' }, 'gateway4': '10.10.10.253', 'dhcp4': False, 'addresses': ['10.10.10.1/24'] } } }, md["network-config"]) self.assertIsNone(ud)