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
This commit is contained in:
Doug Schveninger 2020-08-24 11:33:42 -05:00
parent 91fd70b98a
commit 2c80e38e7c
1 changed files with 19 additions and 4 deletions

View File

@ -23,6 +23,21 @@ from patrole_tempest_plugin.tests.api.compute import rbac_base
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 @@ class FloatingIpsRbacTest(rbac_base.BaseV2ComputeRbacTest):
@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 @@ class FloatingIpsRbacTest(rbac_base.BaseV2ComputeRbacTest):
@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 @@ class FloatingIpsRbacTest(rbac_base.BaseV2ComputeRbacTest):
@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 @@ class FloatingIpsRbacTest(rbac_base.BaseV2ComputeRbacTest):
@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']