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 })
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())