Ejemplo n.º 1
0
 def test_hydrate(self):
     fake_network_cache_model.new_network()
     vif = model.VIF.hydrate(fake_network_cache_model.new_vif())
     self.assertEqual(1, vif['id'])
     self.assertEqual('aa:aa:aa:aa:aa:aa', vif['address'])
     self.assertEqual(fake_network_cache_model.new_network(),
                      vif['network'])
Ejemplo n.º 2
0
    def test_ensure_network_metadata(self):
        network_a = fake_network_cache_model.new_network({
            'physical_network': 'foo', 'tunneled': False})
        vif_a = fake_network_cache_model.new_vif({'network': network_a})
        network_b = fake_network_cache_model.new_network({
            'physical_network': 'foo', 'tunneled': False})
        vif_b = fake_network_cache_model.new_vif({'network': network_b})
        network_c = fake_network_cache_model.new_network({
            'physical_network': 'bar', 'tunneled': False})
        vif_c = fake_network_cache_model.new_vif({'network': network_c})
        network_d = fake_network_cache_model.new_network({
            'physical_network': None, 'tunneled': True})
        vif_d = fake_network_cache_model.new_vif({'network': network_d})
        nw_info = network_model.NetworkInfo([vif_a, vif_b, vif_c, vif_d])
        info_cache = objects.InstanceInfoCache(network_info=nw_info,
                                               instance_uuid=uuids.instance)
        instance = objects.Instance(id=3, uuid=uuids.instance,
                                    info_cache=info_cache)

        spec = objects.RequestSpec()
        self.assertNotIn('network_metadata', spec)

        spec.ensure_network_metadata(instance)
        self.assertIn('network_metadata', spec)
        self.assertIsInstance(spec.network_metadata, objects.NetworkMetadata)
        self.assertEqual(spec.network_metadata.physnets, set(['foo', 'bar']))
        self.assertTrue(spec.network_metadata.tunneled)
Ejemplo n.º 3
0
 def test_hydrate_vif_with_type(self):
     vif_dict = dict(
         id=1, address="aa:aa:aa:aa:aa:aa", network=fake_network_cache_model.new_network(), type="bridge"
     )
     vif = model.VIF.hydrate(fake_network_cache_model.new_vif(vif_dict))
     self.assertEqual(vif["id"], 1)
     self.assertEqual(vif["address"], "aa:aa:aa:aa:aa:aa")
     self.assertEqual(vif["type"], "bridge")
     self.assertEqual(vif["network"], fake_network_cache_model.new_network())
Ejemplo n.º 4
0
 def test_hydrate_vif_with_type(self):
     vif_dict = dict(id=1,
                     address='aa:aa:aa:aa:aa:aa',
                     network=fake_network_cache_model.new_network(),
                     type='bridge')
     vif = model.VIF.hydrate(fake_network_cache_model.new_vif(vif_dict))
     self.assertEqual(vif['id'], 1)
     self.assertEqual(vif['address'], 'aa:aa:aa:aa:aa:aa')
     self.assertEqual(vif['type'], 'bridge')
     self.assertEqual(vif['network'],
                      fake_network_cache_model.new_network())
Ejemplo n.º 5
0
 def test_create_vif_with_type(self):
     vif_dict = dict(id=1,
                     address='aa:aa:aa:aa:aa:aa',
                     network=fake_network_cache_model.new_network(),
                     type='bridge')
     vif = fake_network_cache_model.new_vif(vif_dict)
     self.assertEqual(1, vif['id'])
     self.assertEqual('aa:aa:aa:aa:aa:aa', vif['address'])
     self.assertEqual('bridge', vif['type'])
     self.assertEqual(fake_network_cache_model.new_network(),
                      vif['network'])
Ejemplo n.º 6
0
 def test_hydrate_vif_with_type(self):
     vif_dict = dict(id=uuids.vif_id,
                     address='aa:aa:aa:aa:aa:aa',
                     network=fake_network_cache_model.new_network(),
                     type='bridge')
     vif = model.VIF.hydrate(fake_network_cache_model.new_vif(vif_dict))
     self.assertEqual(uuids.vif_id, vif['id'])
     self.assertEqual('aa:aa:aa:aa:aa:aa', vif['address'])
     self.assertEqual('bridge', vif['type'])
     self.assertEqual(fake_network_cache_model.new_network(),
                      vif['network'])
Ejemplo n.º 7
0
 def test_create_vif_with_type(self):
     vif_dict = dict(
         id=1,
         address='aa:aa:aa:aa:aa:aa',
         network=fake_network_cache_model.new_network(),
         type='bridge')
     vif = fake_network_cache_model.new_vif(vif_dict)
     self.assertEqual(vif['id'], 1)
     self.assertEqual(vif['address'], 'aa:aa:aa:aa:aa:aa')
     self.assertEqual(vif['type'], 'bridge')
     self.assertEqual(vif['network'],
             fake_network_cache_model.new_network())
Ejemplo n.º 8
0
 def test_hydrate_vif_with_type(self):
     vif_dict = dict(
         id=1,
         address='aa:aa:aa:aa:aa:aa',
         network=fake_network_cache_model.new_network(),
         type='bridge')
     vif = model.VIF.hydrate(fake_network_cache_model.new_vif(vif_dict))
     self.assertEqual(1, vif['id'])
     self.assertEqual('aa:aa:aa:aa:aa:aa', vif['address'])
     self.assertEqual('bridge', vif['type'])
     self.assertEqual(fake_network_cache_model.new_network(),
                      vif['network'])
Ejemplo n.º 9
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([
         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'])
Ejemplo n.º 10
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'))])
Ejemplo n.º 11
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"))],
     )
Ejemplo n.º 12
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'])
Ejemplo n.º 13
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'])
Ejemplo n.º 14
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)
Ejemplo n.º 15
0
    def test_hydrate(self):
        network = model.Network.hydrate(fake_network_cache_model.new_network())

        self.assertEqual(uuids.network_id, 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'])
Ejemplo n.º 16
0
 def test_add_subnet_a_lot(self):
     network = fake_network_cache_model.new_network()
     for i in xrange(10):
         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'))
     ])
Ejemplo n.º 17
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'])
Ejemplo n.º 18
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")),
         ],
     )
Ejemplo n.º 19
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'])
Ejemplo n.º 20
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)
Ejemplo n.º 21
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'))
        ])
Ejemplo n.º 22
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"))],
        )
Ejemplo n.º 23
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)
Ejemplo n.º 24
0
    def test_ensure_network_metadata(self):
        network_a = fake_network_cache_model.new_network({
            'physical_network': 'foo',
            'tunneled': False
        })
        vif_a = fake_network_cache_model.new_vif({'network': network_a})
        network_b = fake_network_cache_model.new_network({
            'physical_network': 'foo',
            'tunneled': False
        })
        vif_b = fake_network_cache_model.new_vif({'network': network_b})
        network_c = fake_network_cache_model.new_network({
            'physical_network': 'bar',
            'tunneled': False
        })
        vif_c = fake_network_cache_model.new_vif({'network': network_c})
        network_d = fake_network_cache_model.new_network({
            'physical_network': None,
            'tunneled': True
        })
        vif_d = fake_network_cache_model.new_vif({'network': network_d})
        nw_info = network_model.NetworkInfo([vif_a, vif_b, vif_c, vif_d])
        info_cache = objects.InstanceInfoCache(network_info=nw_info,
                                               instance_uuid=uuids.instance)
        instance = objects.Instance(id=3,
                                    uuid=uuids.instance,
                                    info_cache=info_cache)

        spec = objects.RequestSpec()
        self.assertNotIn('network_metadata', spec)

        spec.ensure_network_metadata(instance)
        self.assertIn('network_metadata', spec)
        self.assertIsInstance(spec.network_metadata, objects.NetworkMetadata)
        self.assertEqual(spec.network_metadata.physnets, set(['foo', 'bar']))
        self.assertTrue(spec.network_metadata.tunneled)
Ejemplo n.º 25
0
 def test_create_vif(self):
     vif = fake_network_cache_model.new_vif()
     self.assertEqual(vif['id'], 1)
     self.assertEqual(vif['address'], 'aa:aa:aa:aa:aa:aa')
     self.assertEqual(vif['network'],
                      fake_network_cache_model.new_network())
Ejemplo n.º 26
0
 def test_hydrate(self):
     fake_network_cache_model.new_network()
     vif = model.VIF.hydrate(fake_network_cache_model.new_vif())
     self.assertEqual(vif["id"], 1)
     self.assertEqual(vif["address"], "aa:aa:aa:aa:aa:aa")
     self.assertEqual(vif["network"], fake_network_cache_model.new_network())
Ejemplo n.º 27
0
 def test_create_vif(self):
     vif = fake_network_cache_model.new_vif()
     self.assertEqual(1, vif['id'])
     self.assertEqual('aa:aa:aa:aa:aa:aa', vif['address'])
     self.assertEqual(fake_network_cache_model.new_network(),
                      vif['network'])
Ejemplo n.º 28
0
 def test_create_vif(self):
     vif = fake_network_cache_model.new_vif()
     self.assertEqual(vif['id'], 1)
     self.assertEqual(vif['address'], 'aa:aa:aa:aa:aa:aa')
     self.assertEqual(vif['network'],
             fake_network_cache_model.new_network())
Ejemplo n.º 29
0
 def test_create_vif(self):
     vif = fake_network_cache_model.new_vif()
     self.assertEqual(vif["id"], 1)
     self.assertEqual(vif["address"], "aa:aa:aa:aa:aa:aa")
     self.assertEqual(vif["network"], fake_network_cache_model.new_network())
Ejemplo n.º 30
0
 def test_hydrate(self):
     vif = model.VIF.hydrate(fake_network_cache_model.new_vif())
     self.assertEqual(uuids.vif_id, vif['id'])
     self.assertEqual('aa:aa:aa:aa:aa:aa', vif['address'])
     self.assertEqual(fake_network_cache_model.new_network(),
                      vif['network'])
Ejemplo n.º 31
0
 def test_create_vif(self):
     vif = fake_network_cache_model.new_vif()
     self.assertEqual(1, vif['id'])
     self.assertEqual('aa:aa:aa:aa:aa:aa', vif['address'])
     self.assertEqual(fake_network_cache_model.new_network(),
                      vif['network'])