Esempio n. 1
0
    def test_get_network_metadata_json_dhcp(self):
        ipv4_subnet = fake_network_cache_model.new_subnet(
            subnet_dict=dict(dhcp_server='1.1.1.1'), version=4)
        ipv6_subnet = fake_network_cache_model.new_subnet(
            subnet_dict=dict(dhcp_server='1234:567::'), version=6)

        self.netinfo[0]['network']['subnets'][0] = ipv4_subnet
        self.netinfo[0]['network']['subnets'][1] = ipv6_subnet
        net_metadata = netutils.get_network_metadata(self.netinfo,
                                                     use_ipv6=True)

        # IPv4 Network
        self.assertEqual(
            {
                'id': 'network0',
                'link': 'interface0',
                'type': 'ipv4_dhcp',
                'network_id': 1
            },
            net_metadata['networks'][0])

        # IPv6 Network
        self.assertEqual(
            {
                'id': 'network1',
                'link': 'interface0',
                'type': 'ipv6_dhcp',
                'network_id': 1
            },
            net_metadata['networks'][1])
Esempio n. 2
0
 def test_create_network(self):
     network = fake_network_cache_model.new_network()
     self.assertEqual(1, network['id'])
     self.assertEqual('br0', network['bridge'])
     self.assertEqual('public', network['label'])
     self.assertEqual(
             [fake_network_cache_model.new_subnet(),
              fake_network_cache_model.new_subnet(
                     dict(cidr='255.255.255.255'))], network['subnets'])
Esempio n. 3
0
 def test_add_subnet(self):
     network = fake_network_cache_model.new_network()
     network.add_subnet(fake_network_cache_model.new_subnet(
                 dict(cidr='0.0.0.0')))
     self.assertEqual(network['subnets'],
             [fake_network_cache_model.new_subnet(),
              fake_network_cache_model.new_subnet(
                     dict(cidr='255.255.255.255')),
              fake_network_cache_model.new_subnet(dict(cidr='0.0.0.0'))])
Esempio n. 4
0
 def test_create_network(self):
     network = fake_network_cache_model.new_network()
     self.assertEqual(network["id"], 1)
     self.assertEqual(network["bridge"], "br0")
     self.assertEqual(network["label"], "public")
     self.assertEqual(
         network["subnets"],
         [fake_network_cache_model.new_subnet(), fake_network_cache_model.new_subnet(dict(cidr="255.255.255.255"))],
     )
Esempio n. 5
0
 def test_add_subnet(self):
     network = fake_network_cache_model.new_network()
     network.add_subnet(fake_network_cache_model.new_subnet(dict(cidr="0.0.0.0")))
     self.assertEqual(
         network["subnets"],
         [
             fake_network_cache_model.new_subnet(),
             fake_network_cache_model.new_subnet(dict(cidr="255.255.255.255")),
             fake_network_cache_model.new_subnet(dict(cidr="0.0.0.0")),
         ],
     )
Esempio n. 6
0
 def test_add_subnet_a_lot(self):
     network = fake_network_cache_model.new_network()
     for i in range(10):
         network.add_subnet(fake_network_cache_model.new_subnet(
                 dict(cidr='0.0.0.0')))
     self.assertEqual(
             [fake_network_cache_model.new_subnet(),
              fake_network_cache_model.new_subnet(
                     dict(cidr='255.255.255.255')),
              fake_network_cache_model.new_subnet(dict(cidr='0.0.0.0'))],
             network['subnets'])
Esempio n. 7
0
    def _new_netinfo(self, vif_type='ethernet'):
        netinfo = model.NetworkInfo([fake_network_cache_model.new_vif(
            {'type': vif_type})])

        # Give this vif ipv4 and ipv6 dhcp subnets
        ipv4_subnet = fake_network_cache_model.new_subnet(version=4)
        ipv6_subnet = fake_network_cache_model.new_subnet(version=6)

        netinfo[0]['network']['subnets'][0] = ipv4_subnet
        netinfo[0]['network']['subnets'][1] = ipv6_subnet
        netinfo[0]['network']['meta']['mtu'] = 1500
        return netinfo
    def _new_netinfo(self, vif_type='ethernet'):
        netinfo = model.NetworkInfo([fake_network_cache_model.new_vif(
            {'type': vif_type})])

        # Give this vif ipv4 and ipv6 dhcp subnets
        ipv4_subnet = fake_network_cache_model.new_subnet(version=4)
        ipv6_subnet = fake_network_cache_model.new_subnet(version=6)

        netinfo[0]['network']['subnets'][0] = ipv4_subnet
        netinfo[0]['network']['subnets'][1] = ipv6_subnet
        netinfo[0]['network']['meta']['mtu'] = 1500
        return netinfo
Esempio n. 9
0
    def setUp(self):
        super(TestNetworkMetadata, self).setUp()
        self.netinfo = model.NetworkInfo([fake_network_cache_model.new_vif(
            {'type': 'ethernet'})])

        # Give this vif ipv4 and ipv6 dhcp subnets
        ipv4_subnet = fake_network_cache_model.new_subnet(version=4)
        ipv6_subnet = fake_network_cache_model.new_subnet(version=6)

        self.netinfo[0]['network']['subnets'][0] = ipv4_subnet
        self.netinfo[0]['network']['subnets'][1] = ipv6_subnet
        self.netinfo[0]['network']['mtu'] = 1500
Esempio n. 10
0
    def _setup_injected_network_scenario(
        self,
        should_inject=True,
        use_ipv4=True,
        use_ipv6=False,
        gateway=True,
        dns=True,
        two_interfaces=False,
        libvirt_virt_type=None,
    ):
        """Check that netutils properly decides whether to inject based on
           whether the supplied subnet is static or dynamic.
        """
        network = fake_network_cache_model.new_network({"subnets": []})

        subnet_dict = {}
        if not gateway:
            subnet_dict["gateway"] = None

        if not dns:
            subnet_dict["dns"] = None

        if not should_inject:
            subnet_dict["dhcp_server"] = "10.10.0.1"

        if use_ipv4:
            network.add_subnet(fake_network_cache_model.new_subnet(subnet_dict))

        if should_inject and use_ipv6:
            gateway_ip = fake_network_cache_model.new_ip(dict(address="1234:567::1"))
            ip = fake_network_cache_model.new_ip(dict(address="1234:567::2"))
            ipv6_subnet_dict = dict(
                cidr="1234:567::/48",
                gateway=gateway_ip,
                dns=[
                    fake_network_cache_model.new_ip(dict(address="2001:4860:4860::8888")),
                    fake_network_cache_model.new_ip(dict(address="2001:4860:4860::8844")),
                ],
                ips=[ip],
            )
            if not gateway:
                ipv6_subnet_dict["gateway"] = None
            network.add_subnet(fake_network_cache_model.new_subnet(ipv6_subnet_dict))

        # Behave as though CONF.flat_injected is True
        network["meta"]["injected"] = True
        vif = fake_network_cache_model.new_vif({"network": network})
        vifs = [vif]
        if two_interfaces:
            vifs.append(vif)

        nwinfo = model.NetworkInfo(vifs)
        return netutils.get_injected_network_template(nwinfo, use_ipv6=use_ipv6, libvirt_virt_type=libvirt_virt_type)
Esempio n. 11
0
    def _setup_injected_network_scenario(self, should_inject=True,
                                        use_ipv4=True, use_ipv6=False,
                                        gateway=True, dns=True,
                                        two_interfaces=False,
                                        libvirt_virt_type=None):
        """Check that netutils properly decides whether to inject based on
           whether the supplied subnet is static or dynamic.
        """
        network = fake_network_cache_model.new_network({'subnets': []})

        subnet_dict = {}
        if not gateway:
            subnet_dict['gateway'] = None

        if not dns:
            subnet_dict['dns'] = None

        if not should_inject:
            subnet_dict['dhcp_server'] = '10.10.0.1'

        if use_ipv4:
            network.add_subnet(
                fake_network_cache_model.new_subnet(subnet_dict))

        if should_inject and use_ipv6:
            gateway_ip = fake_network_cache_model.new_ip(dict(
                address='1234:567::1'))
            ip = fake_network_cache_model.new_ip(dict(
                address='1234:567::2'))
            ipv6_subnet_dict = dict(
                cidr='1234:567::/48',
                gateway=gateway_ip,
                dns=[fake_network_cache_model.new_ip(
                        dict(address='2001:4860:4860::8888')),
                     fake_network_cache_model.new_ip(
                         dict(address='2001:4860:4860::8844'))],
                ips=[ip])
            if not gateway:
                ipv6_subnet_dict['gateway'] = None
            network.add_subnet(fake_network_cache_model.new_subnet(
                ipv6_subnet_dict))

        # Behave as though CONF.flat_injected is True
        network['meta']['injected'] = True
        vif = fake_network_cache_model.new_vif({'network': network})
        vifs = [vif]
        if two_interfaces:
            vifs.append(vif)

        nwinfo = model.NetworkInfo(vifs)
        return netutils.get_injected_network_template(
            nwinfo, use_ipv6=use_ipv6, libvirt_virt_type=libvirt_virt_type)
Esempio n. 12
0
    def _setup_injected_network_scenario(self, should_inject=True,
                                        use_ipv4=True, use_ipv6=False,
                                        gateway=True, dns=True,
                                        two_interfaces=False,
                                        libvirt_virt_type=None):
        """Check that netutils properly decides whether to inject based on
           whether the supplied subnet is static or dynamic.
        """
        network = fake_network_cache_model.new_network({'subnets': []})

        subnet_dict = {}
        if not gateway:
            subnet_dict['gateway'] = None

        if not dns:
            subnet_dict['dns'] = None

        if not should_inject:
            subnet_dict['dhcp_server'] = '10.10.0.1'

        if use_ipv4:
            network.add_subnet(
                fake_network_cache_model.new_subnet(subnet_dict))

        if should_inject and use_ipv6:
            gateway_ip = fake_network_cache_model.new_ip(dict(
                address='1234:567::1'))
            ip = fake_network_cache_model.new_ip(dict(
                address='1234:567::2'))
            ipv6_subnet_dict = dict(
                cidr='1234:567::/48',
                gateway=gateway_ip,
                dns=[fake_network_cache_model.new_ip(
                        dict(address='2001:4860:4860::8888')),
                     fake_network_cache_model.new_ip(
                         dict(address='2001:4860:4860::8844'))],
                ips=[ip])
            if not gateway:
                ipv6_subnet_dict['gateway'] = None
            network.add_subnet(fake_network_cache_model.new_subnet(
                ipv6_subnet_dict))

        # Behave as though CONF.flat_injected is True
        network['meta']['injected'] = True
        vif = fake_network_cache_model.new_vif({'network': network})
        vifs = [vif]
        if two_interfaces:
            vifs.append(vif)

        nwinfo = model.NetworkInfo(vifs)
        return netutils.get_injected_network_template(
            nwinfo, use_ipv6=use_ipv6, libvirt_virt_type=libvirt_virt_type)
Esempio n. 13
0
    def _test_get_network_metadata_json_ipv6_addr_mode(self, mode):
        ipv6_subnet = fake_network_cache_model.new_subnet(
            subnet_dict=dict(dhcp_server='1234:567::',
                             ipv6_address_mode=mode), version=6)

        self.netinfo[0]['network']['subnets'][1] = ipv6_subnet
        net_metadata = netutils.get_network_metadata(self.netinfo)

        self.assertEqual(
            {
                'id': 'network1',
                'link': 'interface0',
                'ip_address': 'fd00::2',
                'netmask': 'ffff:ffff:ffff::',
                'routes': [
                    {
                        'network': '::',
                        'netmask': '::',
                        'gateway': 'fd00::1'
                    },
                    {
                        'network': '::',
                        'netmask': 'ffff:ffff:ffff::',
                        'gateway': 'fd00::1:1'
                    }
                ],
                'services': [
                    {'address': '1:2:3:4::', 'type': 'dns'},
                    {'address': '2:3:4:5::', 'type': 'dns'}
                ],
                'type': 'ipv6_%s' % mode,
                'network_id': 1
            },
            net_metadata['networks'][1])
Esempio n. 14
0
 def test_add_route_a_lot(self):
     subnet = fake_network_cache_model.new_subnet()
     route1 = fake_network_cache_model.new_route()
     route2 = fake_network_cache_model.new_route({"cidr": "1.1.1.1/24"})
     for i in xrange(10):
         subnet.add_route(route2)
     self.assertEqual(subnet["routes"], [route1, route2])
Esempio n. 15
0
 def test_add_route_a_lot(self):
     subnet = fake_network_cache_model.new_subnet()
     route1 = fake_network_cache_model.new_route()
     route2 = fake_network_cache_model.new_route({'cidr': '1.1.1.1/24'})
     for i in range(10):
         subnet.add_route(route2)
     self.assertEqual([route1, route2], subnet['routes'])
Esempio n. 16
0
 def test_add_route_a_lot(self):
     subnet = fake_network_cache_model.new_subnet()
     route1 = fake_network_cache_model.new_route()
     route2 = fake_network_cache_model.new_route({'cidr': '1.1.1.1/24'})
     for i in range(10):
         subnet.add_route(route2)
     self.assertEqual([route1, route2], subnet['routes'])
Esempio n. 17
0
    def _test_get_network_metadata_json_ipv6_addr_mode(self, mode):
        ipv6_subnet = fake_network_cache_model.new_subnet(
            subnet_dict=dict(dhcp_server='1234:567::',
                             ipv6_address_mode=mode), version=6)

        self.netinfo[0]['network']['subnets'][1] = ipv6_subnet
        net_metadata = netutils.get_network_metadata(self.netinfo)

        self.assertEqual(
            {
                'id': 'network1',
                'link': 'interface0',
                'ip_address': 'fd00::2',
                'netmask': 'ffff:ffff:ffff::',
                'routes': [
                    {
                        'network': '::',
                        'netmask': '::',
                        'gateway': 'fd00::1'
                    },
                    {
                        'network': '::',
                        'netmask': 'ffff:ffff:ffff::',
                        'gateway': 'fd00::1:1'
                    }
                ],
                'services': [
                    {'address': '1:2:3:4::', 'type': 'dns'},
                    {'address': '2:3:4:5::', 'type': 'dns'}
                ],
                'type': 'ipv6_%s' % mode,
                'network_id': 1
            },
            net_metadata['networks'][1])
Esempio n. 18
0
 def test_add_dns(self):
     subnet = fake_network_cache_model.new_subnet()
     dns = fake_network_cache_model.new_ip(dict(address='9.9.9.9'))
     subnet.add_dns(dns)
     self.assertEqual(subnet['dns'],
             [fake_network_cache_model.new_ip(dict(address='1.2.3.4')),
              fake_network_cache_model.new_ip(dict(address='2.3.4.5')),
              fake_network_cache_model.new_ip(dict(address='9.9.9.9'))])
Esempio n. 19
0
 def test_add_dns(self):
     subnet = fake_network_cache_model.new_subnet()
     dns = fake_network_cache_model.new_ip(dict(address='9.9.9.9'))
     subnet.add_dns(dns)
     self.assertEqual(subnet['dns'],
             [fake_network_cache_model.new_ip(dict(address='1.2.3.4')),
              fake_network_cache_model.new_ip(dict(address='2.3.4.5')),
              fake_network_cache_model.new_ip(dict(address='9.9.9.9'))])
Esempio n. 20
0
 def test_add_dns_a_lot(self):
     subnet = fake_network_cache_model.new_subnet()
     for i in range(10):
         subnet.add_dns(fake_network_cache_model.new_ip(
                 dict(address='9.9.9.9')))
     self.assertEqual(subnet['dns'],
             [fake_network_cache_model.new_ip(dict(address='1.2.3.4')),
              fake_network_cache_model.new_ip(dict(address='2.3.4.5')),
              fake_network_cache_model.new_ip(dict(address='9.9.9.9'))])
Esempio n. 21
0
 def test_add_ip(self):
     subnet = fake_network_cache_model.new_subnet()
     subnet.add_ip(
         fake_network_cache_model.new_ip(dict(address='192.168.1.102')))
     self.assertEqual([
         fake_network_cache_model.new_fixed_ip(dict(address='10.10.0.2')),
         fake_network_cache_model.new_fixed_ip(dict(address='10.10.0.3')),
         fake_network_cache_model.new_ip(dict(address='192.168.1.102'))
     ], subnet['ips'])
Esempio n. 22
0
 def test_add_dns_a_lot(self):
     subnet = fake_network_cache_model.new_subnet()
     for i in xrange(10):
         subnet.add_dns(fake_network_cache_model.new_ip(
                 dict(address='9.9.9.9')))
     self.assertEqual(subnet['dns'],
             [fake_network_cache_model.new_ip(dict(address='1.2.3.4')),
              fake_network_cache_model.new_ip(dict(address='2.3.4.5')),
              fake_network_cache_model.new_ip(dict(address='9.9.9.9'))])
Esempio n. 23
0
 def test_add_ip(self):
     subnet = fake_network_cache_model.new_subnet()
     subnet.add_ip(fake_network_cache_model.new_ip(dict(address="192.168.1.102")))
     self.assertEqual(
         subnet["ips"],
         [
             fake_network_cache_model.new_fixed_ip(dict(address="10.10.0.2")),
             fake_network_cache_model.new_fixed_ip(dict(address="10.10.0.3")),
             fake_network_cache_model.new_ip(dict(address="192.168.1.102")),
         ],
     )
Esempio n. 24
0
 def test__get_dns_services(self):
     expected_dns = [
         {'type': 'dns', 'address': '1.2.3.4'},
         {'type': 'dns', 'address': '2.3.4.5'},
         {'type': 'dns', 'address': '3.4.5.6'}
     ]
     subnet = fake_network_cache_model.new_subnet(version=4)
     subnet['dns'].append(fake_network_cache_model.new_ip(
         {'address': '3.4.5.6'}))
     dns = netutils._get_dns_services(subnet)
     self.assertEqual(expected_dns, dns)
Esempio n. 25
0
 def test__get_dns_services(self):
     expected_dns = [
         {'type': 'dns', 'address': '1.2.3.4'},
         {'type': 'dns', 'address': '2.3.4.5'},
         {'type': 'dns', 'address': '3.4.5.6'}
     ]
     subnet = fake_network_cache_model.new_subnet(version=4)
     subnet['dns'].append(fake_network_cache_model.new_ip(
         {'address': '3.4.5.6'}))
     dns = netutils._get_dns_services(subnet)
     self.assertEqual(expected_dns, dns)
Esempio n. 26
0
 def test_add_ip(self):
     subnet = fake_network_cache_model.new_subnet()
     subnet.add_ip(fake_network_cache_model.new_ip(
             dict(address='192.168.1.102')))
     self.assertEqual(
             [fake_network_cache_model.new_fixed_ip(
                     dict(address='10.10.0.2')),
              fake_network_cache_model.new_fixed_ip(
                     dict(address='10.10.0.3')),
              fake_network_cache_model.new_ip(
                     dict(address='192.168.1.102'))], subnet['ips'])
Esempio n. 27
0
 def test_add_dns(self):
     subnet = fake_network_cache_model.new_subnet()
     dns = fake_network_cache_model.new_ip(dict(address="9.9.9.9"))
     subnet.add_dns(dns)
     self.assertEqual(
         subnet["dns"],
         [
             fake_network_cache_model.new_ip(dict(address="1.2.3.4")),
             fake_network_cache_model.new_ip(dict(address="2.3.4.5")),
             fake_network_cache_model.new_ip(dict(address="9.9.9.9")),
         ],
     )
Esempio n. 28
0
 def test_add_dns_a_lot(self):
     subnet = fake_network_cache_model.new_subnet()
     for i in xrange(10):
         subnet.add_dns(fake_network_cache_model.new_ip(dict(address="9.9.9.9")))
     self.assertEqual(
         subnet["dns"],
         [
             fake_network_cache_model.new_ip(dict(address="1.2.3.4")),
             fake_network_cache_model.new_ip(dict(address="2.3.4.5")),
             fake_network_cache_model.new_ip(dict(address="9.9.9.9")),
         ],
     )
Esempio n. 29
0
 def test_add_ip_a_lot(self):
     subnet = fake_network_cache_model.new_subnet()
     for i in xrange(10):
         subnet.add_ip(fake_network_cache_model.new_fixed_ip(
                     dict(address='192.168.1.102')))
     self.assertEqual(subnet['ips'],
             [fake_network_cache_model.new_fixed_ip(
                     dict(address='10.10.0.2')),
              fake_network_cache_model.new_fixed_ip(
                     dict(address='10.10.0.3')),
              fake_network_cache_model.new_fixed_ip(
                     dict(address='192.168.1.102'))])
Esempio n. 30
0
 def test_add_ip_a_lot(self):
     subnet = fake_network_cache_model.new_subnet()
     for i in xrange(10):
         subnet.add_ip(
             fake_network_cache_model.new_fixed_ip(
                 dict(address='192.168.1.102')))
     self.assertEqual(subnet['ips'], [
         fake_network_cache_model.new_fixed_ip(dict(address='10.10.0.2')),
         fake_network_cache_model.new_fixed_ip(dict(address='10.10.0.3')),
         fake_network_cache_model.new_fixed_ip(
             dict(address='192.168.1.102'))
     ])
Esempio n. 31
0
    def test_create_subnet_with_attrs(self):
        subnet = fake_network_cache_model.new_subnet()

        route1 = fake_network_cache_model.new_route()

        self.assertEqual('10.10.0.0/24', subnet['cidr'])
        self.assertEqual([
            fake_network_cache_model.new_ip(dict(address='1.2.3.4')),
            fake_network_cache_model.new_ip(dict(address='2.3.4.5'))
        ], subnet['dns'])
        self.assertEqual('10.10.0.1', subnet['gateway']['address'])
        self.assertEqual([
            fake_network_cache_model.new_fixed_ip(dict(address='10.10.0.2')),
            fake_network_cache_model.new_fixed_ip(dict(address='10.10.0.3'))
        ], subnet['ips'])
        self.assertEqual([route1], subnet['routes'])
        self.assertEqual(4, subnet['version'])
Esempio n. 32
0
    def test_create_subnet_with_attrs(self):
        subnet = fake_network_cache_model.new_subnet()

        route1 = fake_network_cache_model.new_route()

        self.assertEqual(subnet['cidr'], '10.10.0.0/24')
        self.assertEqual(subnet['dns'],
                [fake_network_cache_model.new_ip(dict(address='1.2.3.4')),
                 fake_network_cache_model.new_ip(dict(address='2.3.4.5'))])
        self.assertEqual(subnet['gateway']['address'], '10.10.0.1')
        self.assertEqual(subnet['ips'],
                [fake_network_cache_model.new_fixed_ip(
                        dict(address='10.10.0.2')),
                 fake_network_cache_model.new_fixed_ip(
                            dict(address='10.10.0.3'))])
        self.assertEqual(subnet['routes'], [route1])
        self.assertEqual(subnet['version'], 4)
Esempio n. 33
0
    def test_hydrate(self):
        fake_network_cache_model.new_subnet()
        fake_network_cache_model.new_subnet(dict(cidr="255.255.255.255"))
        network = model.Network.hydrate(fake_network_cache_model.new_network())

        self.assertEqual(network["id"], 1)
        self.assertEqual(network["bridge"], "br0")
        self.assertEqual(network["label"], "public")
        self.assertEqual(
            network["subnets"],
            [fake_network_cache_model.new_subnet(), fake_network_cache_model.new_subnet(dict(cidr="255.255.255.255"))],
        )
Esempio n. 34
0
    def test_hydrate(self):
        fake_network_cache_model.new_subnet()
        fake_network_cache_model.new_subnet(dict(cidr='255.255.255.255'))
        network = model.Network.hydrate(fake_network_cache_model.new_network())

        self.assertEqual(1, network['id'])
        self.assertEqual('br0', network['bridge'])
        self.assertEqual('public', network['label'])
        self.assertEqual(
                [fake_network_cache_model.new_subnet(),
                 fake_network_cache_model.new_subnet(
                        dict(cidr='255.255.255.255'))], network['subnets'])
Esempio n. 35
0
    def test_hydrate(self):
        fake_network_cache_model.new_subnet()
        fake_network_cache_model.new_subnet(dict(cidr='255.255.255.255'))
        network = model.Network.hydrate(fake_network_cache_model.new_network())

        self.assertEqual(1, network['id'])
        self.assertEqual('br0', network['bridge'])
        self.assertEqual('public', network['label'])
        self.assertEqual([
            fake_network_cache_model.new_subnet(),
            fake_network_cache_model.new_subnet(dict(cidr='255.255.255.255'))
        ], network['subnets'])
Esempio n. 36
0
    def test_create_subnet_with_attrs(self):
        subnet = fake_network_cache_model.new_subnet()

        route1 = fake_network_cache_model.new_route()

        self.assertEqual(subnet["cidr"], "10.10.0.0/24")
        self.assertEqual(
            subnet["dns"],
            [
                fake_network_cache_model.new_ip(dict(address="1.2.3.4")),
                fake_network_cache_model.new_ip(dict(address="2.3.4.5")),
            ],
        )
        self.assertEqual(subnet["gateway"]["address"], "10.10.0.1")
        self.assertEqual(
            subnet["ips"],
            [
                fake_network_cache_model.new_fixed_ip(dict(address="10.10.0.2")),
                fake_network_cache_model.new_fixed_ip(dict(address="10.10.0.3")),
            ],
        )
        self.assertEqual(subnet["routes"], [route1])
        self.assertEqual(subnet["version"], 4)
Esempio n. 37
0
 def test_add_route(self):
     subnet = fake_network_cache_model.new_subnet()
     route1 = fake_network_cache_model.new_route()
     route2 = fake_network_cache_model.new_route({'cidr': '1.1.1.1/24'})
     subnet.add_route(route2)
     self.assertEqual(subnet['routes'], [route1, route2])
Esempio n. 38
0
 def test_add_route(self):
     subnet = fake_network_cache_model.new_subnet()
     route1 = fake_network_cache_model.new_route()
     route2 = fake_network_cache_model.new_route({'cidr': '1.1.1.1/24'})
     subnet.add_route(route2)
     self.assertEqual(subnet['routes'], [route1, route2])
Esempio n. 39
0
 def test_subnet_equal(self):
     subnet1 = fake_network_cache_model.new_subnet()
     subnet2 = fake_network_cache_model.new_subnet()
     self.assertEqual(subnet1, subnet2)
Esempio n. 40
0
    def test_get_network_metadata(self):
        expected_json = {
            "links": [
                {
                    "ethernet_mac_address": "aa:aa:aa:aa:aa:aa",
                    "id": "interface0",
                    "type": "phy",
                    "vif_id": 1,
                    "mtu": 1500
                },
                {
                    "ethernet_mac_address": "aa:aa:aa:aa:aa:ab",
                    "id": "interface1",
                    "type": "phy",
                    "vif_id": 1,
                    "mtu": 1500
                },
            ],
            "networks": [
                {
                    "id": "network0",
                    "ip_address": "10.10.0.2",
                    "link": "interface0",
                    "netmask": "255.255.255.0",
                    "network_id":
                        "00000000-0000-0000-0000-000000000000",
                    "routes": [
                        {
                            "gateway": "10.10.0.1",
                            "netmask": "0.0.0.0",
                            "network": "0.0.0.0"
                        },
                        {
                            "gateway": "192.168.1.1",
                            "netmask": "255.255.255.0",
                            "network": "0.0.0.0"
                        }
                    ],
                    "type": "ipv4"
                },
                {
                   'id': 'network1',
                   'ip_address': 'fd00::2',
                   'link': 'interface0',
                   'netmask': 'ffff:ffff:ffff::',
                   'network_id': '00000000-0000-0000-0000-000000000000',
                   'routes': [{'gateway': 'fd00::1',
                               'netmask': '::',
                               'network': '::'},
                              {'gateway': 'fd00::1:1',
                               'netmask': 'ffff:ffff:ffff::',
                               'network': '::'}],
                   'type': 'ipv6'
                },
                {
                    "id": "network2",
                    "ip_address": "192.168.0.2",
                    "link": "interface1",
                    "netmask": "255.255.255.0",
                    "network_id":
                        "11111111-1111-1111-1111-111111111111",
                    "routes": [
                        {
                            "gateway": "192.168.0.1",
                            "netmask": "0.0.0.0",
                            "network": "0.0.0.0"
                        }
                    ],
                    "type": "ipv4"
                }
            ],
            'services': [
                {'address': '1.2.3.4', 'type': 'dns'},
                {'address': '2.3.4.5', 'type': 'dns'},
                {'address': '1:2:3:4::', 'type': 'dns'},
                {'address': '2:3:4:5::', 'type': 'dns'}
            ]
        }

        self.netinfo[0]['network']['id'] = (
            '00000000-0000-0000-0000-000000000000')

        # Add a second NIC
        self.netinfo.append(fake_network_cache_model.new_vif({
            'type': 'ethernet', 'address': 'aa:aa:aa:aa:aa:ab'}))

        address = fake_network_cache_model.new_ip({'address': '192.168.0.2'})
        gateway_address = fake_network_cache_model.new_ip(
            {'address': '192.168.0.1'})

        ipv4_subnet = fake_network_cache_model.new_subnet(
            {'cidr': '192.168.0.0/24', 'gateway': gateway_address,
             'ips': [address], 'routes': []})

        self.netinfo[1]['network']['id'] = (
            '11111111-1111-1111-1111-111111111111')

        self.netinfo[1]['network']['subnets'][0] = ipv4_subnet
        self.netinfo[1]['network']['mtu'] = 1500

        network_json = netutils.get_network_metadata(self.netinfo)
        self.assertEqual(expected_json, network_json)
Esempio n. 41
0
    def test_get_network_metadata(self):
        expected_json = {
            "links": [
                {
                    "ethernet_mac_address": "aa:aa:aa:aa:aa:aa",
                    "id": "interface0",
                    "type": "phy",
                    "vif_id": 1,
                    "mtu": 1500
                },
                {
                    "ethernet_mac_address": "aa:aa:aa:aa:aa:ab",
                    "id": "interface1",
                    "type": "phy",
                    "vif_id": 1,
                    "mtu": 1500
                },
            ],
            "networks": [{
                "id":
                "network0",
                "ip_address":
                "10.10.0.2",
                "link":
                "interface0",
                "netmask":
                "255.255.255.0",
                "network_id":
                "00000000-0000-0000-0000-000000000000",
                "routes": [{
                    "gateway": "10.10.0.1",
                    "netmask": "0.0.0.0",
                    "network": "0.0.0.0"
                }, {
                    "gateway": "192.168.1.1",
                    "netmask": "255.255.255.0",
                    "network": "0.0.0.0"
                }],
                "type":
                "ipv4"
            }, {
                'id':
                'network1',
                'ip_address':
                'fd00::2',
                'link':
                'interface0',
                'netmask':
                'ffff:ffff:ffff::',
                'network_id':
                '00000000-0000-0000-0000-000000000000',
                'routes': [{
                    'gateway': 'fd00::1',
                    'netmask': '::',
                    'network': '::'
                }, {
                    'gateway': 'fd00::1:1',
                    'netmask': 'ffff:ffff:ffff::',
                    'network': '::'
                }],
                'type':
                'ipv6'
            }, {
                "id":
                "network2",
                "ip_address":
                "192.168.0.2",
                "link":
                "interface1",
                "netmask":
                "255.255.255.0",
                "network_id":
                "11111111-1111-1111-1111-111111111111",
                "routes": [{
                    "gateway": "192.168.0.1",
                    "netmask": "0.0.0.0",
                    "network": "0.0.0.0"
                }],
                "type":
                "ipv4"
            }],
            'services': [{
                'address': '1.2.3.4',
                'type': 'dns'
            }, {
                'address': '2.3.4.5',
                'type': 'dns'
            }, {
                'address': '1:2:3:4::',
                'type': 'dns'
            }, {
                'address': '2:3:4:5::',
                'type': 'dns'
            }]
        }

        self.netinfo[0]['network']['id'] = (
            '00000000-0000-0000-0000-000000000000')

        # Add a second NIC
        self.netinfo.append(
            fake_network_cache_model.new_vif({
                'type': 'ethernet',
                'address': 'aa:aa:aa:aa:aa:ab'
            }))

        address = fake_network_cache_model.new_ip({'address': '192.168.0.2'})
        gateway_address = fake_network_cache_model.new_ip(
            {'address': '192.168.0.1'})

        ipv4_subnet = fake_network_cache_model.new_subnet({
            'cidr': '192.168.0.0/24',
            'gateway': gateway_address,
            'ips': [address],
            'routes': []
        })

        self.netinfo[1]['network']['id'] = (
            '11111111-1111-1111-1111-111111111111')

        self.netinfo[1]['network']['subnets'][0] = ipv4_subnet
        self.netinfo[1]['network']['meta']['mtu'] = 1500

        network_json = netutils.get_network_metadata(self.netinfo)
        self.assertEqual(expected_json, network_json)
Esempio n. 42
0
 def test_subnet_equal(self):
     subnet1 = fake_network_cache_model.new_subnet()
     subnet2 = fake_network_cache_model.new_subnet()
     self.assertEqual(subnet1, subnet2)