]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Add some tests for floating ips
authorAnn Kamyshnikova <akamyshnikova@mirantis.com>
Thu, 30 Apr 2015 11:09:59 +0000 (14:09 +0300)
committerAnn Kamyshnikova <akamyshnikova@mirantis.com>
Thu, 30 Apr 2015 15:41:21 +0000 (15:41 +0000)
* Associate floating ip to port that has already another floating ip
* Associate floating ip with port from another tenant

Change-Id: I8da074e94526c21d4d6a6a7910052cda809a1338

neutron/tests/api/admin/test_floating_ips_admin_actions.py
neutron/tests/api/test_floating_ips_negative.py

index 72abb32b7fc43b36d3368ead2b9542b50028fc0f..39ddbe2a28859ff851f69e30393c3615f0e8d714 100644 (file)
@@ -14,6 +14,7 @@
 #    under the License.
 
 from tempest_lib.common.utils import data_utils
+from tempest_lib import exceptions as lib_exc
 
 from neutron.tests.api import base
 from neutron.tests.api import clients
@@ -33,6 +34,8 @@ class FloatingIPAdminTestJSON(base.BaseAdminNetworkTest):
         cls.ext_net_id = CONF.network.public_network_id
         cls.floating_ip = cls.create_floatingip(cls.ext_net_id)
         cls.alt_manager = clients.Manager(cls.isolated_creds.get_alt_creds())
+        admin_manager = clients.AdminManager()
+        cls.identity_admin_client = admin_manager.identity_client
         cls.alt_client = cls.alt_manager.network_client
         cls.network = cls.create_network()
         cls.subnet = cls.create_subnet(cls.network)
@@ -109,3 +112,23 @@ class FloatingIPAdminTestJSON(base.BaseAdminNetworkTest):
         floating_ips = self.admin_client.list_floatingips()
         floatingip_id_list = [f['id'] for f in floating_ips['floatingips']]
         self.assertIn(created_floating_ip['id'], floatingip_id_list)
+
+    @test.attr(type=['negative', 'smoke'])
+    @test.idempotent_id('11116ee9-4e99-5b15-b8e1-aa7df92ca589')
+    def test_associate_floating_ip_with_port_from_another_tenant(self):
+        body = self.admin_client.create_floatingip(
+            floating_network_id=self.ext_net_id)
+        floating_ip = body['floatingip']
+        test_tenant = data_utils.rand_name('test_tenant_')
+        test_description = data_utils.rand_name('desc_')
+        tenant = self.identity_admin_client.create_tenant(
+            name=test_tenant, description=test_description)
+        tenant_id = tenant['id']
+        self.addCleanup(self.identity_admin_client.delete_tenant, tenant_id)
+
+        port = self.admin_client.create_port(network_id=self.network['id'],
+                                             tenant_id=tenant_id)
+        self.addCleanup(self.admin_client.delete_port, port['port']['id'])
+        self.assertRaises(lib_exc.BadRequest,
+                          self.admin_client.update_floatingip,
+                          floating_ip['id'], port_id=port['port']['id'])
index c7e9e9a9c301234a52c7e4dff1b2e7d7d3bba5d0..0752888376ff0861cfd58128d92505b968f198c9 100644 (file)
@@ -32,6 +32,8 @@ class FloatingIPNegativeTestJSON(base.BaseNetworkTest):
         Create floatingip with a port that is unreachable to external network
         Create floatingip in private network
         Associate floatingip with port that is unreachable to external network
+        Associate floating ip to port that has already another floating ip
+        Associate floating ip with port from another tenant
     """
 
     @classmethod
@@ -80,3 +82,30 @@ class FloatingIPNegativeTestJSON(base.BaseNetworkTest):
                           floating_ip['id'], port_id=self.port['id'],
                           fixed_ip_address=self.port['fixed_ips'][0]
                           ['ip_address'])
+
+    @test.attr(type=['negative', 'smoke'])
+    @test.idempotent_id('0b5b8797-6de7-4191-905c-a48b888eb429')
+    def test_associate_floatingip_with_port_with_floatingip(self):
+        net = self.create_network()
+        subnet = self.create_subnet(net)
+        r = self.create_router('test')
+        self.create_router_interface(r['id'], subnet['id'])
+        self.client.update_router(
+            r['id'],
+            external_gateway_info={
+                'network_id': self.ext_net_id})
+        self.addCleanup(self.client.update_router, self.router['id'],
+                        external_gateway_info={})
+        port = self.create_port(net)
+        body1 = self.client.create_floatingip(
+            floating_network_id=self.ext_net_id)
+        floating_ip1 = body1['floatingip']
+        self.addCleanup(self.client.delete_floatingip, floating_ip1['id'])
+        body2 = self.client.create_floatingip(
+            floating_network_id=self.ext_net_id)
+        floating_ip2 = body2['floatingip']
+        self.addCleanup(self.client.delete_floatingip, floating_ip2['id'])
+        self.client.update_floatingip(floating_ip1['id'],
+                                      port_id=port['id'])
+        self.assertRaises(lib_exc.Conflict, self.client.update_floatingip,
+                          floating_ip2['id'], port_id=port['id'])