Example #1
0
    def setUp(self):
        super(TestDNATApp, self).setUp()

        self.topology = None
        self.topology = app_testing_objects.Topology(self.neutron, self.nb_api)
        self.addCleanup(self.topology.close)
        self.subnet = self.topology.create_subnet()
        self.port = self.subnet.create_port()
        self.router = self.topology.create_router([self.subnet.subnet_id])
        ext_net_id = self.topology.create_external_network(
            [self.router.router_id])
        self.fip = objects.FloatingipTestObj(self.neutron, self.nb_api)
        self.addCleanup(self.fip.close)
        self.fip.create({
            'floating_network_id': ext_net_id,
            'port_id': self.port.port.port_id
        })
Example #2
0
    def test_floatingip_version(self):
        with self._prepare_ext_net() as external_network_id:
            private_network = self.store(
                objects.NetworkTestObj(self.neutron, self.nb_api))
            private_network_id = private_network.create(
                network={'name': 'private'})
            self.assertTrue(private_network.exists())
            priv_subnet = self.store(
                objects.SubnetTestObj(
                    self.neutron,
                    self.nb_api,
                    private_network_id,
                ))
            router = self.store(
                objects.RouterTestObj(self.neutron, self.nb_api))
            port = self.store(
                objects.PortTestObj(self.neutron, self.nb_api,
                                    private_network_id))
            fip = self.store(
                objects.FloatingipTestObj(self.neutron, self.nb_api))

            router_para = {
                'name': 'myrouter1',
                'admin_state_up': True,
                'external_gateway_info': {
                    "network_id": external_network_id
                }
            }
            router.create(router=router_para)
            self.assertTrue(router.exists())

            private_subnet_para = {
                'cidr': '10.0.0.0/24',
                'ip_version': 4,
                'network_id': private_network_id
            }
            priv_subnet_id = priv_subnet.create(private_subnet_para)
            self.assertTrue(priv_subnet.exists())
            router_interface = router.add_interface(subnet_id=priv_subnet_id)
            router_lport = self.nb_api.get_logical_port(
                router_interface['port_id'])
            self.assertIsNotNone(router_lport)

            port_id = port.create()
            self.assertIsNotNone(port.get_logical_port())

            fip_para = {'floating_network_id': external_network_id}
            # create
            new_fip = fip.create(fip_para)
            self.assertTrue(fip.exists())
            fip_id = new_fip['id']
            prev_version = self.nb_api.get_floatingip(fip_id).get_version()

            # associate with port
            fip.update({'port_id': port_id})
            fip_obj = fip.get_floatingip()
            self.assertEqual(fip_obj.get_lport_id(), port_id)
            version = self.nb_api.get_floatingip(fip_id).get_version()
            self.assertGreater(version, prev_version)
            prev_version = version

            fip.update({})
            fip_obj = fip.get_floatingip()
            self.assertIsNone(fip_obj.get_lport_id())
            version = self.nb_api.get_floatingip(fip_id).get_version()
            self.assertGreater(version, prev_version)

            fip.close()
            self.assertFalse(fip.exists())
            port.close()
            self.assertFalse(port.exists())
            router.close()
            self.assertFalse(router.exists())
            priv_subnet.close()
            self.assertFalse(priv_subnet.exists())