Example #1
0
    def _apply_network_setup(self, m_macs):
        old_instance_id = os.path.join(self.init.paths.get_cpath("data"),
                                       "instance-id")
        write_file(old_instance_id, TEST_INSTANCE_ID)
        net_cfg = {
            "version":
            1,
            "config": [{
                "subnets": [{
                    "type": "dhcp"
                }],
                "type": "physical",
                "name": "eth9",
                "mac_address": "42:42:42:42:42:42",
            }],
        }

        def fake_network_config():
            return net_cfg, NetworkConfigSource.fallback

        m_macs.return_value = {"42:42:42:42:42:42": "eth9"}

        self.init._find_networking_config = fake_network_config
        self.init.datasource = FakeDataSource(paths=self.init.paths)
        self.init.is_new_instance = mock.Mock(return_value=False)
        return net_cfg
Example #2
0
    def _apply_network_setup(self, m_macs):
        old_instance_id = os.path.join(self.init.paths.get_cpath('data'),
                                       'instance-id')
        write_file(old_instance_id, TEST_INSTANCE_ID)
        net_cfg = {
            'version':
            1,
            'config': [{
                'subnets': [{
                    'type': 'dhcp'
                }],
                'type': 'physical',
                'name': 'eth9',
                'mac_address': '42:42:42:42:42:42'
            }]
        }

        def fake_network_config():
            return net_cfg, NetworkConfigSource.fallback

        m_macs.return_value = {'42:42:42:42:42:42': 'eth9'}

        self.init._find_networking_config = fake_network_config
        self.init.datasource = FakeDataSource(paths=self.init.paths)
        self.init.is_new_instance = mock.Mock(return_value=False)
        return net_cfg
Example #3
0
 def test_get_mask(self):
     """
     Verify get_mask('device') correctly returns IPv4 subnet mask.
     """
     context = {"ETH0_MASK": "255.255.0.0"}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_mask("eth0")
     self.assertEqual("255.255.0.0", val)
Example #4
0
 def test_get_network(self):
     """
     Verify get_network('device') correctly returns IPv4 network address.
     """
     context = {"ETH0_NETWORK": "1.2.3.0"}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_network("eth0", MACADDR)
     self.assertEqual("1.2.3.0", val)
Example #5
0
    def test_user_data_plain(self):
        for k in ("USER_DATA", "USERDATA"):
            my_d = os.path.join(self.tmp, k)
            populate_context_dir(my_d, {k: USER_DATA, "USERDATA_ENCODING": ""})
            results = ds.read_context_disk_dir(my_d, mock.Mock())

            self.assertTrue("userdata" in results)
            self.assertEqual(USER_DATA, results["userdata"])
Example #6
0
 def test_get_field(self):
     """
     Verify get_field('device', 'name') returns *context* value.
     """
     context = {'ETH9_DUMMY': 'DUMMY_VALUE'}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_field('eth9', 'dummy')
     self.assertEqual('DUMMY_VALUE', val)
Example #7
0
 def test_get_mask(self):
     """
     Verify get_mask('device') correctly returns IPv4 subnet mask.
     """
     context = {'ETH0_MASK': '255.255.0.0'}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_mask('eth0')
     self.assertEqual('255.255.0.0', val)
Example #8
0
 def test_get_field(self):
     """
     Verify get_field('device', 'name') returns *context* value.
     """
     context = {"ETH9_DUMMY": "DUMMY_VALUE"}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_field("eth9", "dummy")
     self.assertEqual("DUMMY_VALUE", val)
Example #9
0
    def test_user_data_plain(self):
        for k in ('USER_DATA', 'USERDATA'):
            my_d = os.path.join(self.tmp, k)
            populate_context_dir(my_d, {k: USER_DATA, 'USERDATA_ENCODING': ''})
            results = ds.read_context_disk_dir(my_d, mock.Mock())

            self.assertTrue('userdata' in results)
            self.assertEqual(USER_DATA, results['userdata'])
Example #10
0
 def test_get_ip6_prefix(self):
     """
     Verify get_ip6_prefix('device') correctly returns IPv6 prefix.
     """
     context = {"ETH0_IP6_PREFIX_LENGTH": IP6_PREFIX}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_ip6_prefix("eth0")
     self.assertEqual(IP6_PREFIX, val)
Example #11
0
    def test_gen_conf_mtu(self, m_get_phys_by_mac):
        """Test rendering with/without MTU"""
        self.maxDiff = None
        # empty ETH0_MTU
        context = {
            'ETH0_MAC': '02:00:0a:12:01:01',
            'ETH0_MTU': '',
        }
        for nic in self.system_nics:
            expected = {
                'version': 2,
                'ethernets': {
                    nic: {
                        'match': {
                            'macaddress': MACADDR
                        },
                        'addresses': [IP_BY_MACADDR + '/' + IP4_PREFIX]
                    }
                }
            }
            m_get_phys_by_mac.return_value = {MACADDR: nic}
            net = ds.OpenNebulaNetwork(context, mock.Mock())
            self.assertEqual(net.gen_conf(), expected)

        # set ETH0_MTU
        context = {
            'ETH0_MAC': '02:00:0a:12:01:01',
            'ETH0_MTU': '1280',
        }
        for nic in self.system_nics:
            expected = {
                'version': 2,
                'ethernets': {
                    nic: {
                        'mtu': '1280',
                        'match': {
                            'macaddress': MACADDR
                        },
                        'addresses': [IP_BY_MACADDR + '/' + IP4_PREFIX]
                    }
                }
            }
            m_get_phys_by_mac.return_value = {MACADDR: nic}
            net = ds.OpenNebulaNetwork(context, mock.Mock())
            self.assertEqual(net.gen_conf(), expected)
Example #12
0
    def test_user_data_encoding_required_for_decode(self):
        b64userdata = util.b64e(USER_DATA)
        for k in ("USER_DATA", "USERDATA"):
            my_d = os.path.join(self.tmp, k)
            populate_context_dir(my_d, {k: b64userdata})
            results = ds.read_context_disk_dir(my_d, mock.Mock())

            self.assertTrue("userdata" in results)
            self.assertEqual(b64userdata, results["userdata"])
Example #13
0
    def test_seed_dir_broken_context(self):
        populate_dir(self.seed_dir, {"context.sh": INVALID_CONTEXT})

        self.assertRaises(
            ds.BrokenContextDiskDir,
            ds.read_context_disk_dir,
            self.seed_dir,
            mock.Mock(),
        )
Example #14
0
 def test_get_field_emptycontext(self):
     """
     Verify get_field('device', 'name') returns None if context value is
     empty string.
     """
     context = {'ETH9_DUMMY': ''}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_field('eth9', 'dummy')
     self.assertEqual(None, val)
Example #15
0
 def test_get_field_withdefaultvalue_emptycontext(self):
     """
     Verify get_field('device', 'name', 'default value') returns *default*
     value if context value is empty string.
     """
     context = {'ETH9_DUMMY': ''}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_field('eth9', 'dummy', 'DEFAULT_VALUE')
     self.assertEqual('DEFAULT_VALUE', val)
Example #16
0
 def test(self, interfaces_by_mac, physical_devs, expected_return):
     distro = mock.Mock()
     distro.networking.is_physical.side_effect = (
         lambda devname: devname in physical_devs)
     with mock.patch(
             DS_PATH + ".net.get_interfaces_by_mac",
             return_value=interfaces_by_mac,
     ):
         assert expected_return == ds.get_physical_nics_by_mac(distro)
Example #17
0
 def test_get_field_nonecontext(self):
     """
     Verify get_field('device', 'name') returns None if context value is
     None.
     """
     context = {"ETH9_DUMMY": None}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_field("eth9", "dummy")
     self.assertEqual(None, val)
Example #18
0
 def test_get_mask_emptystring(self):
     """
     Verify get_mask('device') correctly returns IPv4 subnet mask.
     It returns default value '255.255.255.0' if ETH0_MASK has empty string.
     """
     context = {"ETH0_MASK": ""}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_mask("eth0")
     self.assertEqual("255.255.255.0", val)
Example #19
0
 def test_get_field_withdefaultvalue_emptycontext(self):
     """
     Verify get_field('device', 'name', 'default value') returns *default*
     value if context value is empty string.
     """
     context = {"ETH9_DUMMY": ""}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_field("eth9", "dummy", "DEFAULT_VALUE")
     self.assertEqual("DEFAULT_VALUE", val)
Example #20
0
 def test_get_gateway(self):
     """
     Verify get_gateway('device') correctly returns IPv4 default gateway
     address.
     """
     context = {"ETH0_GATEWAY": "1.2.3.5"}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_gateway("eth0")
     self.assertEqual("1.2.3.5", val)
Example #21
0
 def test_get_network_emptystring(self):
     """
     Verify get_network('device') correctly returns IPv4 network address.
     It returns network address created by MAC address if ETH0_NETWORK has
     empty string.
     """
     context = {"ETH0_NETWORK": ""}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_network("eth0", MACADDR)
     self.assertEqual("10.18.1.0", val)
Example #22
0
 def test_get_ip_emptystring(self):
     """
     Verify get_ip('device') correctly returns IPv4 address.
     It returns IP address created by MAC address if ETH0_IP has empty
     string.
     """
     context = {"ETH0_IP": ""}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_ip("eth0", MACADDR)
     self.assertEqual(IP_BY_MACADDR, val)
Example #23
0
 def test_get_gateway6(self):
     """
     Verify get_gateway6('device') correctly returns IPv6 default gateway
     address.
     """
     for k in ("GATEWAY6", "IP6_GATEWAY"):
         context = {"ETH0_" + k: IP6_GW}
         net = ds.OpenNebulaNetwork(context, mock.Mock())
         val = net.get_gateway6("eth0")
         self.assertEqual(IP6_GW, val)
Example #24
0
 def test_get_ip6_prefix_emptystring(self):
     """
     Verify get_ip6_prefix('device') correctly returns IPv6 prefix.
     It returns default value '64' if ETH0_IP6_PREFIX_LENGTH has empty
     string.
     """
     context = {"ETH0_IP6_PREFIX_LENGTH": ""}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_ip6_prefix("eth0")
     self.assertEqual("64", val)
Example #25
0
    def test_gen_conf_mtu(self, m_get_phys_by_mac):
        """Test rendering with/without MTU"""
        self.maxDiff = None
        # empty ETH0_MTU
        context = {
            "ETH0_MAC": "02:00:0a:12:01:01",
            "ETH0_MTU": "",
        }
        for nic in self.system_nics:
            expected = {
                "version": 2,
                "ethernets": {
                    nic: {
                        "match": {"macaddress": MACADDR},
                        "addresses": [IP_BY_MACADDR + "/" + IP4_PREFIX],
                    }
                },
            }
            m_get_phys_by_mac.return_value = {MACADDR: nic}
            net = ds.OpenNebulaNetwork(context, mock.Mock())
            self.assertEqual(net.gen_conf(), expected)

        # set ETH0_MTU
        context = {
            "ETH0_MAC": "02:00:0a:12:01:01",
            "ETH0_MTU": "1280",
        }
        for nic in self.system_nics:
            expected = {
                "version": 2,
                "ethernets": {
                    nic: {
                        "mtu": "1280",
                        "match": {"macaddress": MACADDR},
                        "addresses": [IP_BY_MACADDR + "/" + IP4_PREFIX],
                    }
                },
            }
            m_get_phys_by_mac.return_value = {MACADDR: nic}
            net = ds.OpenNebulaNetwork(context, mock.Mock())
            self.assertEqual(net.gen_conf(), expected)
Example #26
0
 def test_context_devname(self):
     """Verify context_devname correctly returns mac and name."""
     context = {
         "ETH0_MAC": "02:00:0a:12:01:01",
         "ETH1_MAC": "02:00:0a:12:0f:0f",
     }
     expected = {
         "02:00:0a:12:01:01": "ETH0",
         "02:00:0a:12:0f:0f": "ETH1",
     }
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     self.assertEqual(expected, net.context_devname)
Example #27
0
 def test_context_devname(self):
     """Verify context_devname correctly returns mac and name."""
     context = {
         'ETH0_MAC': '02:00:0a:12:01:01',
         'ETH1_MAC': '02:00:0a:12:0f:0f',
     }
     expected = {
         '02:00:0a:12:01:01': 'ETH0',
         '02:00:0a:12:0f:0f': 'ETH1',
     }
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     self.assertEqual(expected, net.context_devname)
Example #28
0
def common_patches():
    mocks = [
        mock.patch("cloudinit.util.platform.platform", return_value="Linux"),
        mock.patch.multiple(
            "cloudinit.dmi",
            is_container=mock.Mock(return_value=False),
            is_FreeBSD=mock.Mock(return_value=False),
        ),
        mock.patch(
            "cloudinit.sources.DataSourceVMware.netifaces.interfaces",
            return_value=[],
        ),
        mock.patch(
            "cloudinit.sources.DataSourceVMware.getfqdn",
            return_value="host.cloudinit.test",
        ),
    ]
    with ExitStack() as stack:
        for some_mock in mocks:
            stack.enter_context(some_mock)
        yield
Example #29
0
 def test_get_ip6_dual(self):
     """
     Verify get_ip6('device') correctly returns IPv6 address.
     In this case, IPv6 addresses are Given by ETH0_IP6 and ETH0_IP6_ULA.
     """
     context = {
         "ETH0_IP6": IP6_GLOBAL,
         "ETH0_IP6_ULA": IP6_ULA,
     }
     expected = [IP6_GLOBAL, IP6_ULA]
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_ip6("eth0")
     self.assertEqual(expected, val)
 def test_no_handle_when_modfreq_once(self):
     """C{handle_part} is not called if frequency is once."""
     self.frequency = "once"
     mod_mock = mock.Mock(frequency=settings.PER_ONCE)
     handlers.run_part(
         mod_mock,
         self.data,
         self.filename,
         self.payload,
         self.frequency,
         self.headers,
     )
     self.assertEqual(0, mod_mock.handle_part.call_count)