Get the patrole gate working due to Nova category changes in Victoria
for floating IP. per [1] the action or category has changed in Nova
on a deprecated method per [2].
Used the exisintg nova victoria conf setting to support different
action or category for the floating ip apis
[1] https://github.com/openstack/nova/blob/master/nova/policies/floating_ips.py#L21
[2] https://docs.openstack.org/api-ref/compute/#floating-ips-os-floating-ips-deprecated
Change-Id: I0318aa910eb865171afb935aaf26a97182b6f381
diff --git a/patrole_tempest_plugin/tests/api/compute/test_floating_ips_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_floating_ips_rbac.py
index d313494..ed3691e 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_floating_ips_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_floating_ips_rbac.py
@@ -23,6 +23,21 @@
CONF = config.CONF
+# RBAC category or action was changed in Victoria release per
+# https://docs.openstack.org/api-ref/compute/#floating-ips-os-floating-ips-deprecated
+# and
+# https://github.com/openstack/nova/blob/master/nova/policies/floating_ips.py#L21
+if CONF.policy_feature_enabled.changed_nova_policies_victoria:
+ _FIP_GET = "os_compute_api:os-floating-ips:list"
+ _FIP_SHOW = "os_compute_api:os-floating-ips:show"
+ _FIP_CREATE = "os_compute_api:os-floating-ips:create"
+ _FIP_DELETE = "os_compute_api:os-floating-ips:delete"
+else:
+ _FIP_GET = "os_compute_api:os-floating-ips"
+ _FIP_SHOW = "os_compute_api:os-floating-ips"
+ _FIP_CREATE = "os_compute_api:os-floating-ips"
+ _FIP_DELETE = "os_compute_api:os-floating-ips"
+
class FloatingIpsRbacTest(rbac_base.BaseV2ComputeRbacTest):
@@ -44,7 +59,7 @@
@decorators.idempotent_id('ac1b3053-f755-4cda-85a0-30e88b88d7ba')
@rbac_rule_validation.action(
service="nova",
- rules=["os_compute_api:os-floating-ips"])
+ rules=[_FIP_GET])
def test_list_floating_ips(self):
with self.override_role():
self.floating_ips_client.list_floating_ips()
@@ -52,7 +67,7 @@
@decorators.idempotent_id('bebe52b3-5269-4e72-80c8-5a4a39c3bfa6')
@rbac_rule_validation.action(
service="nova",
- rules=["os_compute_api:os-floating-ips"])
+ rules=[_FIP_SHOW])
def test_show_floating_ip(self):
body = self.floating_ips_client.create_floating_ip(
pool=CONF.network.floating_network_name)['floating_ip']
@@ -64,7 +79,7 @@
@decorators.idempotent_id('2bfb8745-c329-4ee9-95f6-c165a1989dbf')
@rbac_rule_validation.action(
service="nova",
- rules=["os_compute_api:os-floating-ips"])
+ rules=[_FIP_CREATE])
def test_create_floating_ips(self):
with self.override_role():
body = self.floating_ips_client.create_floating_ip(
@@ -75,7 +90,7 @@
@decorators.idempotent_id('d3028373-5027-4e7a-b761-01c515403ecb')
@rbac_rule_validation.action(
service="nova",
- rules=["os_compute_api:os-floating-ips"])
+ rules=[_FIP_DELETE])
def test_delete_floating_ip(self):
body = self.floating_ips_client.create_floating_ip(
pool=CONF.network.floating_network_name)['floating_ip']