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)
            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)
            self.assertEqual(net.gen_conf(), expected)
Beispiel #2
0
    def test_gen_conf_ipv6address(self, m_get_phys_by_mac):
        """Test rendering with/without IPv6 address"""
        self.maxDiff = None
        # empty ETH0_IP6, ETH0_IP6_ULA, ETH0_IP6_PREFIX_LENGTH
        context = {
            'ETH0_MAC': '02:00:0a:12:01:01',
            'ETH0_IP6': '',
            'ETH0_IP6_ULA': '',
            'ETH0_IP6_PREFIX_LENGTH': '',
        }
        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_IP6, ETH0_IP6_ULA, ETH0_IP6_PREFIX_LENGTH
        context = {
            'ETH0_MAC': '02:00:0a:12:01:01',
            'ETH0_IP6': IP6_GLOBAL,
            'ETH0_IP6_PREFIX_LENGTH': IP6_PREFIX,
            'ETH0_IP6_ULA': IP6_ULA,
        }
        for nic in self.system_nics:
            expected = {
                'version': 2,
                'ethernets': {
                    nic: {
                        'match': {
                            'macaddress': MACADDR
                        },
                        'addresses': [
                            IP_BY_MACADDR + '/' + IP4_PREFIX,
                            IP6_GLOBAL + '/' + IP6_PREFIX,
                            IP6_ULA + '/' + IP6_PREFIX
                        ]
                    }
                }
            }
            m_get_phys_by_mac.return_value = {MACADDR: nic}
            net = ds.OpenNebulaNetwork(context, mock.Mock())
            self.assertEqual(net.gen_conf(), expected)
Beispiel #3
0
    def test_gen_conf_dns(self, m_get_phys_by_mac):
        """Test rendering with/without DNS server, search domain"""
        self.maxDiff = None
        # empty DNS, ETH0_DNS, ETH0_SEARCH_DOMAIN
        context = {
            'ETH0_MAC': '02:00:0a:12:01:01',
            'DNS': '',
            'ETH0_DNS': '',
            'ETH0_SEARCH_DOMAIN': '',
        }
        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 DNS, ETH0_DNS, ETH0_SEARCH_DOMAIN
        context = {
            'ETH0_MAC': '02:00:0a:12:01:01',
            'DNS': '1.2.3.8',
            'ETH0_DNS': '1.2.3.6 1.2.3.7',
            'ETH0_SEARCH_DOMAIN': 'example.com example.org',
        }
        for nic in self.system_nics:
            expected = {
                'version': 2,
                'ethernets': {
                    nic: {
                        'nameservers': {
                            'addresses': ['1.2.3.6', '1.2.3.7', '1.2.3.8'],
                            'search': ['example.com', 'example.org']
                        },
                        '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)
Beispiel #4
0
    def test_gen_conf_dns(self, m_get_phys_by_mac):
        """Test rendering with/without DNS server, search domain"""
        self.maxDiff = None
        # empty DNS, ETH0_DNS, ETH0_SEARCH_DOMAIN
        context = {
            "ETH0_MAC": "02:00:0a:12:01:01",
            "DNS": "",
            "ETH0_DNS": "",
            "ETH0_SEARCH_DOMAIN": "",
        }
        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 DNS, ETH0_DNS, ETH0_SEARCH_DOMAIN
        context = {
            "ETH0_MAC": "02:00:0a:12:01:01",
            "DNS": "1.2.3.8",
            "ETH0_DNS": "1.2.3.6 1.2.3.7",
            "ETH0_SEARCH_DOMAIN": "example.com example.org",
        }
        for nic in self.system_nics:
            expected = {
                "version": 2,
                "ethernets": {
                    nic: {
                        "nameservers": {
                            "addresses": ["1.2.3.6", "1.2.3.7", "1.2.3.8"],
                            "search": ["example.com", "example.org"],
                        },
                        "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)
Beispiel #5
0
    def test_gen_conf_ipv6address(self, m_get_phys_by_mac):
        """Test rendering with/without IPv6 address"""
        self.maxDiff = None
        # empty ETH0_IP6, ETH0_IP6_ULA, ETH0_IP6_PREFIX_LENGTH
        context = {
            "ETH0_MAC": "02:00:0a:12:01:01",
            "ETH0_IP6": "",
            "ETH0_IP6_ULA": "",
            "ETH0_IP6_PREFIX_LENGTH": "",
        }
        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_IP6, ETH0_IP6_ULA, ETH0_IP6_PREFIX_LENGTH
        context = {
            "ETH0_MAC": "02:00:0a:12:01:01",
            "ETH0_IP6": IP6_GLOBAL,
            "ETH0_IP6_PREFIX_LENGTH": IP6_PREFIX,
            "ETH0_IP6_ULA": IP6_ULA,
        }
        for nic in self.system_nics:
            expected = {
                "version": 2,
                "ethernets": {
                    nic: {
                        "match": {"macaddress": MACADDR},
                        "addresses": [
                            IP_BY_MACADDR + "/" + IP4_PREFIX,
                            IP6_GLOBAL + "/" + IP6_PREFIX,
                            IP6_ULA + "/" + IP6_PREFIX,
                        ],
                    }
                },
            }
            m_get_phys_by_mac.return_value = {MACADDR: nic}
            net = ds.OpenNebulaNetwork(context, mock.Mock())
            self.assertEqual(net.gen_conf(), expected)
Beispiel #6
0
    def test_eth0_override(self):
        context = {
            'DNS': '1.2.3.8',
            'ETH0_IP': '10.18.1.1',
            'ETH0_NETWORK': '10.18.0.0',
            'ETH0_MASK': '255.255.0.0',
            'ETH0_GATEWAY': '1.2.3.5',
            'ETH0_DOMAIN': 'example.com',
            'ETH0_DNS': '1.2.3.6 1.2.3.7',
            'ETH0_MAC': '02:00:0a:12:01:01'
        }
        for nic in self.system_nics:
            expected = dedent("""\
                auto lo
                iface lo inet loopback

                auto {dev}
                iface {dev} inet static
                  #hwaddress {macaddr}
                  address 10.18.1.1
                  network 10.18.0.0
                  netmask 255.255.0.0
                  gateway 1.2.3.5
                  dns-search example.com
                  dns-nameservers 1.2.3.8 1.2.3.6 1.2.3.7
                  """).format(dev=nic, macaddr=MACADDR)
            net = ds.OpenNebulaNetwork(context,
                                       system_nics_by_mac={MACADDR: nic})
            self.assertEqual(expected, net.gen_conf())
Beispiel #7
0
    def test_network_interfaces(self, m_get_phys_by_mac):
        m_get_phys_by_mac.return_value = {'02:00:0a:12:01:01': 'eth0'}
        populate_context_dir(self.seed_dir, {'ETH0_IP': '1.2.3.4'})
        results = ds.read_context_disk_dir(self.seed_dir)

        self.assertTrue('network-interfaces' in results)
        self.assertTrue('1.2.3.4' in results['network-interfaces'])
    def test_eth0_override(self):
        self.maxDiff = None
        context = {
            'DNS': '1.2.3.8',
            'ETH0_DNS': '1.2.3.6 1.2.3.7',
            'ETH0_GATEWAY': '1.2.3.5',
            'ETH0_GATEWAY6': '',
            'ETH0_IP': IP_BY_MACADDR,
            'ETH0_IP6': '',
            'ETH0_IP6_PREFIX_LENGTH': '',
            'ETH0_IP6_ULA': '',
            'ETH0_MAC': '02:00:0a:12:01:01',
            'ETH0_MASK': '255.255.0.0',
            'ETH0_MTU': '',
            'ETH0_NETWORK': '10.18.0.0',
            'ETH0_SEARCH_DOMAIN': '',
        }
        for nic in self.system_nics:
            net = ds.OpenNebulaNetwork(context,
                                       system_nics_by_mac={MACADDR: nic})
            expected = {
                'version': 2,
                'ethernets': {
                    nic: {
                        'match': {'macaddress': MACADDR},
                        'addresses': [IP_BY_MACADDR + '/16'],
                        'gateway4': '1.2.3.5',
                        'nameservers': {
                            'addresses': ['1.2.3.6', '1.2.3.7', '1.2.3.8']}}}}

            self.assertEqual(expected, net.gen_conf())
Beispiel #9
0
    def test_eth0_override(self):
        context = {
            'DNS': '1.2.3.8',
            'ETH0_IP': '1.2.3.4',
            'ETH0_NETWORK': '1.2.3.0',
            'ETH0_MASK': '255.255.0.0',
            'ETH0_GATEWAY': '1.2.3.5',
            'ETH0_DOMAIN': 'example.com',
            'ETH0_DNS': '1.2.3.6 1.2.3.7'
        }

        net = ds.OpenNebulaNetwork(context,
                                   system_nics_by_mac=self.system_nics)
        self.assertEqual(
            net.gen_conf(), u'''\
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 1.2.3.4
  network 1.2.3.0
  netmask 255.255.0.0
  gateway 1.2.3.5
  dns-search example.com
  dns-nameservers 1.2.3.8 1.2.3.6 1.2.3.7
''')
    def test_user_data(self):
        for k in ('USER_DATA', 'USERDATA'):
            my_d = os.path.join(self.tmp, k)
            populate_context_dir(my_d, {k: USER_DATA})
            results = ds.read_context_disk_dir(my_d)

            self.assertTrue('userdata' in results)
            self.assertEqual(USER_DATA, results['userdata'])
Beispiel #11
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)
Beispiel #12
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)
Beispiel #13
0
    def test_user_data_base64_encoding(self):
        for k in ("USER_DATA", "USERDATA"):
            my_d = os.path.join(self.tmp, k)
            populate_context_dir(my_d, {k: util.b64e(USER_DATA), "USERDATA_ENCODING": "base64"})
            results = ds.read_context_disk_dir(my_d)

            self.assertTrue("userdata" in results)
            self.assertEqual(USER_DATA, results["userdata"])
Beispiel #14
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"])
Beispiel #15
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'])
Beispiel #16
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)

            self.assertTrue("userdata" in results)
            self.assertEqual(USER_DATA, results["userdata"])
Beispiel #17
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)
Beispiel #18
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)
Beispiel #19
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)
Beispiel #20
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)
 def test_get_field_withdefaultvalue(self):
     """
     Verify get_field('device', 'name', 'default value') returns *context*
     value.
     """
     context = {'ETH9_DUMMY': 'DUMMY_VALUE'}
     net = ds.OpenNebulaNetwork(context)
     val = net.get_field('eth9', 'dummy', 'DEFAULT_VALUE')
     self.assertEqual('DUMMY_VALUE', val)
    def test_user_data_base64_encoding(self):
        for k in ('USER_DATA', 'USERDATA'):
            my_d = os.path.join(self.tmp, k)
            populate_context_dir(my_d, {k: util.b64e(USER_DATA),
                                        'USERDATA_ENCODING': 'base64'})
            results = ds.read_context_disk_dir(my_d)

            self.assertTrue('userdata' in results)
            self.assertEqual(USER_DATA, results['userdata'])
Beispiel #23
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)
Beispiel #24
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)
Beispiel #25
0
    def test_hostname(self):
        for k in ("HOSTNAME", "PUBLIC_IP", "IP_PUBLIC", "ETH0_IP"):
            my_d = os.path.join(self.tmp, k)
            populate_context_dir(my_d, {k: PUBLIC_IP})
            results = ds.read_context_disk_dir(my_d)

            self.assertTrue("metadata" in results)
            self.assertTrue("local-hostname" in results["metadata"])
            self.assertEqual(PUBLIC_IP, results["metadata"]["local-hostname"])
 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)
     val = net.get_field('eth9', 'dummy')
     self.assertEqual(None, val)
Beispiel #27
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)
Beispiel #28
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'])
Beispiel #29
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)
Beispiel #30
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)
Beispiel #31
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)
Beispiel #32
0
 def test_get_gateway6(self):
     """
     Verify get_gateway6('device') correctly returns IPv6 default gateway
     address.
     """
     context = {'ETH0_GATEWAY6': IP6_GW}
     net = ds.OpenNebulaNetwork(context, mock.Mock())
     val = net.get_gateway6('eth0')
     self.assertEqual(IP6_GW, val)
    def test_hostname(self):
        for k in ('HOSTNAME', 'PUBLIC_IP', 'IP_PUBLIC', 'ETH0_IP'):
            my_d = os.path.join(self.tmp, k)
            populate_context_dir(my_d, {k: PUBLIC_IP})
            results = ds.read_context_disk_dir(my_d)

            self.assertTrue('metadata' in results)
            self.assertTrue('local-hostname' in results['metadata'])
            self.assertEqual(PUBLIC_IP, results['metadata']['local-hostname'])
    def test_user_data_base64_encoding(self):
        for k in ('USER_DATA', 'USERDATA'):
            my_d = os.path.join(self.tmp, k)
            populate_context_dir(my_d, {k: b64encode(USER_DATA),
                                        'USERDATA_ENCODING': 'base64'})
            results = ds.read_context_disk_dir(my_d)

            self.assertTrue('userdata' in results)
            self.assertEqual(USER_DATA, results['userdata'])
    def test_user_data_encoding_required_for_decode(self):
        b64userdata = b64encode(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)

            self.assertTrue('userdata' in results)
            self.assertEqual(b64userdata, results['userdata'])
Beispiel #36
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)
Beispiel #37
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)

            self.assertTrue("userdata" in results)
            self.assertEqual(b64userdata, results["userdata"])
    def test_hostname(self, m_get_phys_by_mac):
        for dev in ('eth0', 'ens3'):
            m_get_phys_by_mac.return_value = {MACADDR: dev}
            for k in ('HOSTNAME', 'PUBLIC_IP', 'IP_PUBLIC', 'ETH0_IP'):
                my_d = os.path.join(self.tmp, k)
                populate_context_dir(my_d, {k: PUBLIC_IP})
                results = ds.read_context_disk_dir(my_d)

                self.assertTrue('metadata' in results)
                self.assertTrue('local-hostname' in results['metadata'])
                self.assertEqual(
                    PUBLIC_IP, results['metadata']['local-hostname'])
Beispiel #39
0
    def test_find_candidates(self):
        def my_devs_with(criteria):
            return {"LABEL=CONTEXT": ["/dev/sdb"], "LABEL=CDROM": ["/dev/sr0"], "TYPE=iso9660": ["/dev/vdb"]}.get(
                criteria, []
            )

        orig_find_devs_with = util.find_devs_with
        try:
            util.find_devs_with = my_devs_with
            self.assertEqual(["/dev/sdb", "/dev/sr0", "/dev/vdb"], ds.find_candidate_devs())
        finally:
            util.find_devs_with = orig_find_devs_with
Beispiel #40
0
    def test_ssh_key(self):
        public_keys = ["first key", "second key"]
        for c in range(4):
            for k in ("SSH_KEY", "SSH_PUBLIC_KEY"):
                my_d = os.path.join(self.tmp, "%s-%i" % (k, c))
                populate_context_dir(my_d, {k: "\n".join(public_keys)})
                results = ds.read_context_disk_dir(my_d)

                self.assertTrue("metadata" in results)
                self.assertTrue("public-keys" in results["metadata"])
                self.assertEqual(public_keys, results["metadata"]["public-keys"])

            public_keys.append(SSH_KEY % (c + 1,))
    def test_ssh_key(self):
        public_keys = ['first key', 'second key']
        for c in range(4):
            for k in ('SSH_KEY', 'SSH_PUBLIC_KEY'):
                my_d = os.path.join(self.tmp, "%s-%i" % (k, c))
                populate_context_dir(my_d, {k: '\n'.join(public_keys)})
                results = ds.read_context_disk_dir(my_d)

                self.assertTrue('metadata' in results)
                self.assertTrue('public-keys' in results['metadata'])
                self.assertEqual(public_keys,
                                 results['metadata']['public-keys'])

            public_keys.append(SSH_KEY % (c + 1,))
Beispiel #42
0
    def test_network_interfaces(self):
        populate_context_dir(self.seed_dir, {"ETH0_IP": "1.2.3.4"})
        results = ds.read_context_disk_dir(self.seed_dir)

        self.assertTrue("network-interfaces" in results)
    def test_network_interfaces(self):
        populate_context_dir(self.seed_dir, {'ETH0_IP': '1.2.3.4'})
        results = ds.read_context_disk_dir(self.seed_dir)

        self.assertTrue('network-interfaces' in results)
 def test_no_seconds(self):
     cfg = '\n'.join(["foo=bar", "SECONDS=2", "xx=foo"])
     # we could test 'sleep 2', but that would make the test run slower.
     ret = ds.parse_shell_config(cfg)
     self.assertEqual(ret, {"foo": "bar", "xx": "foo"})
Beispiel #45
0
    def test_seed_dir_empty1_context(self):
        populate_dir(self.seed_dir, {"context.sh": ""})
        results = ds.read_context_disk_dir(self.seed_dir)

        self.assertEqual(results["userdata"], None)
        self.assertEqual(results["metadata"], {})
    def test_seed_dir_empty1_context(self):
        populate_dir(self.seed_dir, {'context.sh': ''})
        results = ds.read_context_disk_dir(self.seed_dir)

        self.assertIsNone(results['userdata'])
        self.assertEqual(results['metadata'], {})
    def test_context_parser(self):
        populate_context_dir(self.seed_dir, TEST_VARS)
        results = ds.read_context_disk_dir(self.seed_dir)

        self.assertTrue('metadata' in results)
        self.assertEqual(TEST_VARS, results['metadata'])
    def test_seed_dir_empty2_context(self):
        populate_context_dir(self.seed_dir, {})
        results = ds.read_context_disk_dir(self.seed_dir)

        self.assertEqual(results['userdata'], None)
        self.assertEqual(results['metadata'], {})
    def test_network_interfaces(self, m_get_phys_by_mac):
        for dev in ('eth0', 'ens3'):
            m_get_phys_by_mac.return_value = {MACADDR: dev}

            # without ETH0_MAC
            # for Older OpenNebula?
            populate_context_dir(self.seed_dir, {'ETH0_IP': IP_BY_MACADDR})
            results = ds.read_context_disk_dir(self.seed_dir)

            self.assertTrue('network-interfaces' in results)
            self.assertTrue(
                IP_BY_MACADDR + '/' + IP4_PREFIX in
                results['network-interfaces']['ethernets'][dev]['addresses'])

            # ETH0_IP and ETH0_MAC
            populate_context_dir(
                self.seed_dir, {'ETH0_IP': IP_BY_MACADDR, 'ETH0_MAC': MACADDR})
            results = ds.read_context_disk_dir(self.seed_dir)

            self.assertTrue('network-interfaces' in results)
            self.assertTrue(
                IP_BY_MACADDR + '/' + IP4_PREFIX in
                results['network-interfaces']['ethernets'][dev]['addresses'])

            # ETH0_IP with empty string and ETH0_MAC
            # in the case of using Virtual Network contains
            # "AR = [ TYPE = ETHER ]"
            populate_context_dir(
                self.seed_dir, {'ETH0_IP': '', 'ETH0_MAC': MACADDR})
            results = ds.read_context_disk_dir(self.seed_dir)

            self.assertTrue('network-interfaces' in results)
            self.assertTrue(
                IP_BY_MACADDR + '/' + IP4_PREFIX in
                results['network-interfaces']['ethernets'][dev]['addresses'])

            # ETH0_MASK
            populate_context_dir(
                self.seed_dir, {
                    'ETH0_IP': IP_BY_MACADDR,
                    'ETH0_MAC': MACADDR,
                    'ETH0_MASK': '255.255.0.0'
                })
            results = ds.read_context_disk_dir(self.seed_dir)

            self.assertTrue('network-interfaces' in results)
            self.assertTrue(
                IP_BY_MACADDR + '/16' in
                results['network-interfaces']['ethernets'][dev]['addresses'])

            # ETH0_MASK with empty string
            populate_context_dir(
                self.seed_dir, {
                    'ETH0_IP': IP_BY_MACADDR,
                    'ETH0_MAC': MACADDR,
                    'ETH0_MASK': ''
                })
            results = ds.read_context_disk_dir(self.seed_dir)

            self.assertTrue('network-interfaces' in results)
            self.assertTrue(
                IP_BY_MACADDR + '/' + IP4_PREFIX in
                results['network-interfaces']['ethernets'][dev]['addresses'])

            # ETH0_IP6
            populate_context_dir(
                self.seed_dir, {
                    'ETH0_IP6': IP6_GLOBAL,
                    'ETH0_MAC': MACADDR,
                })
            results = ds.read_context_disk_dir(self.seed_dir)

            self.assertTrue('network-interfaces' in results)
            self.assertTrue(
                IP6_GLOBAL + '/64' in
                results['network-interfaces']['ethernets'][dev]['addresses'])

            # ETH0_IP6_ULA
            populate_context_dir(
                self.seed_dir, {
                    'ETH0_IP6_ULA': IP6_ULA,
                    'ETH0_MAC': MACADDR,
                })
            results = ds.read_context_disk_dir(self.seed_dir)

            self.assertTrue('network-interfaces' in results)
            self.assertTrue(
                IP6_ULA + '/64' in
                results['network-interfaces']['ethernets'][dev]['addresses'])

            # ETH0_IP6 and ETH0_IP6_PREFIX_LENGTH
            populate_context_dir(
                self.seed_dir, {
                    'ETH0_IP6': IP6_GLOBAL,
                    'ETH0_IP6_PREFIX_LENGTH': IP6_PREFIX,
                    'ETH0_MAC': MACADDR,
                })
            results = ds.read_context_disk_dir(self.seed_dir)

            self.assertTrue('network-interfaces' in results)
            self.assertTrue(
                IP6_GLOBAL + '/' + IP6_PREFIX in
                results['network-interfaces']['ethernets'][dev]['addresses'])

            # ETH0_IP6 and ETH0_IP6_PREFIX_LENGTH with empty string
            populate_context_dir(
                self.seed_dir, {
                    'ETH0_IP6': IP6_GLOBAL,
                    'ETH0_IP6_PREFIX_LENGTH': '',
                    'ETH0_MAC': MACADDR,
                })
            results = ds.read_context_disk_dir(self.seed_dir)

            self.assertTrue('network-interfaces' in results)
            self.assertTrue(
                IP6_GLOBAL + '/64' in
                results['network-interfaces']['ethernets'][dev]['addresses'])