diff --git a/rally/plugins/openstack/wrappers/network.py b/rally/plugins/openstack/wrappers/network.py index 2d1e35dc..f28c41f4 100644 --- a/rally/plugins/openstack/wrappers/network.py +++ b/rally/plugins/openstack/wrappers/network.py @@ -427,10 +427,10 @@ class NeutronWrapper(NetworkWrapper): "no external networks found") net_id = ext_networks[0]["id"] - kwargs = {"floatingip": {"floating_network_id": net_id}, - "tenant_id": tenant_id} + kwargs = {"floatingip": {"floating_network_id": net_id, + "tenant_id": tenant_id}} if port_id: - kwargs["port_id"] = port_id + kwargs["floatingip"]["port_id"] = port_id fip = self.client.create_floatingip(kwargs)["floatingip"] return {"id": fip["id"], "ip": fip["floating_ip_address"]} diff --git a/tests/unit/plugins/openstack/wrappers/test_network.py b/tests/unit/plugins/openstack/wrappers/test_network.py index af10582b..ca235f4a 100644 --- a/tests/unit/plugins/openstack/wrappers/test_network.py +++ b/tests/unit/plugins/openstack/wrappers/test_network.py @@ -461,16 +461,18 @@ class NeutronWrapperTestCase(test.TestCase): mock_neutron_wrapper_external_networks.__get__ = ( lambda *args: [{"id": "ext_id"}] ) - fip = wrap.create_floating_ip(tenant_id="foo_tenant") + fip = wrap.create_floating_ip(tenant_id="foo_tenant", + port_id="port_id") self.assertEqual(fip, {"id": "fip_id", "ip": "fip_ip"}) wrap.get_network = mock.Mock( return_value={"id": "foo_net", "external": True}) - wrap.create_floating_ip(tenant_id="foo_tenant", ext_network="ext_net") + wrap.create_floating_ip(tenant_id="foo_tenant", ext_network="ext_net", + port_id="port_id") wrap.get_network = mock.Mock( return_value={"id": "foo_net", "external": False}) - wrap.create_floating_ip(tenant_id="foo_tenant") + wrap.create_floating_ip(tenant_id="foo_tenant", port_id="port_id") self.assertRaises(network.NetworkWrapperException, wrap.create_floating_ip, tenant_id="foo_tenant",