diff --git a/rally_openstack/verification/tempest/config.py b/rally_openstack/verification/tempest/config.py index 7c9016fc..62f79759 100644 --- a/rally_openstack/verification/tempest/config.py +++ b/rally_openstack/verification/tempest/config.py @@ -152,8 +152,19 @@ class TempestConfigfileManager(object): if net["status"] == "ACTIVE" and net["router:external"] is True ] if public_nets: + rbac_list = neutronclient.list_rbac_policies()["rbac_policies"] + rbac_all_list = [] + for rbac in rbac_list: + if rbac["target_tenant"] == "*" and \ + rbac["object_type"] == "network": + rbac_all_list.append(rbac["object_id"]) net_id = public_nets[0]["id"] net_name = public_nets[0]["name"] + for public_net in public_nets: + if public_net["id"] in rbac_all_list: + net_id = public_net["id"] + net_name = public_net["name"] + break self.conf.set(section_name, "public_network_id", net_id) self.conf.set(section_name, "floating_network_name", net_name) else: diff --git a/tests/unit/verification/tempest/test_config.py b/tests/unit/verification/tempest/test_config.py index 9c0c2dda..bc08e3c8 100644 --- a/tests/unit/verification/tempest/test_config.py +++ b/tests/unit/verification/tempest/test_config.py @@ -158,6 +158,17 @@ class TempestConfigfileManagerTestCase(test.TestCase): def test__configure_network_if_neutron(self): self.tempest.available_services = ["neutron"] client = self.tempest.clients.neutron() + client.list_rbac_policies.return_value = { + "rbac_policies": [ + { + "target_tenant": "*", + "object_type": "network", + "object_id": "test_id", + "action": "access_as_shared", + "id": "test_id" + } + ] + } client.list_networks.return_value = { "networks": [ {