Removal of re-switching of rbac-role from tearDown
Currently, for every test case class, we need to add re-switching rbac role in tearDown method. Thus for every testcase using the tearDown method becomes mandatory. This patch removes tearDown dependency for re-switching rbac-role. Co-Authored-By: Mh Raies <mh.raies@ericsson.com> Co-Authored-By: Felipe Monteiro <felipe.monteiro@att.com> Implements: blueprint refactor-teardown-switch-roles Change-Id: I3f0026533255c87b8128f2bf3a4aa488382a2523
This commit is contained in:
parent
3642309e96
commit
8590c0c628
@ -17,6 +17,7 @@ import logging
|
||||
|
||||
from tempest import config
|
||||
from tempest.lib import exceptions
|
||||
from tempest import test
|
||||
|
||||
from patrole_tempest_plugin import rbac_auth
|
||||
from patrole_tempest_plugin import rbac_exceptions
|
||||
@ -29,13 +30,17 @@ def action(service, rule):
|
||||
def decorator(func):
|
||||
def wrapper(*args, **kwargs):
|
||||
try:
|
||||
tenant_id = args[0].auth_provider.credentials.tenant_id
|
||||
user_id = args[0].auth_provider.credentials.user_id
|
||||
except (IndexError, AttributeError) as e:
|
||||
caller_ref = None
|
||||
if args and isinstance(args[0], test.BaseTestCase):
|
||||
caller_ref = args[0]
|
||||
tenant_id = caller_ref.auth_provider.credentials.tenant_id
|
||||
user_id = caller_ref.auth_provider.credentials.user_id
|
||||
except AttributeError as e:
|
||||
msg = ("{0}: tenant_id/user_id not found in "
|
||||
"cls.auth_provider.credentials".format(e))
|
||||
LOG.error(msg)
|
||||
raise rbac_exceptions.RbacResourceSetupFailed(msg)
|
||||
|
||||
authority = rbac_auth.RbacAuthority(tenant_id, user_id, service)
|
||||
allowed = authority.get_permission(rule, CONF.rbac.rbac_test_role)
|
||||
|
||||
@ -70,5 +75,8 @@ def action(service, rule):
|
||||
raise rbac_exceptions.RbacOverPermission(
|
||||
"OverPermission: Role %s was allowed to perform %s" %
|
||||
(CONF.rbac.rbac_test_role, rule))
|
||||
finally:
|
||||
caller_ref.rbac_utils.switch_role(caller_ref,
|
||||
switchToRbacRole=False)
|
||||
return wrapper
|
||||
return decorator
|
||||
|
@ -28,10 +28,6 @@ CONF = config.CONF
|
||||
|
||||
class PasswordAdminRbacTest(rbac_base.BaseV2ComputeAdminRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(PasswordAdminRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(PasswordAdminRbacTest, cls).setup_clients()
|
||||
|
@ -25,10 +25,6 @@ CONF = config.CONF
|
||||
|
||||
class ServersAdminRbacTest(rbac_base.BaseV2ComputeAdminRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ServersAdminRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(ServersAdminRbacTest, cls).setup_clients()
|
||||
|
@ -24,10 +24,6 @@ CONF = config.CONF
|
||||
|
||||
class AgentsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(AgentsRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
super(AgentsRbacTest, cls).skip_checks()
|
||||
|
@ -26,10 +26,6 @@ CONF = config.CONF
|
||||
|
||||
class AggregatesRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(AggregatesRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
super(AggregatesRbacTest, cls).skip_checks()
|
||||
|
@ -32,11 +32,6 @@ class AssistedVolumeSnapshotRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
super(AssistedVolumeSnapshotRbacTest, cls).setup_clients()
|
||||
cls.client = cls.servers_client
|
||||
|
||||
def tearDown(self):
|
||||
"""Cleanup and reset RBAC role."""
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(AssistedVolumeSnapshotRbacTest, self).tearDown()
|
||||
|
||||
def _create_and_attach(self):
|
||||
self.server = self.create_test_server(wait_until='ACTIVE')
|
||||
self.volume = self.create_volume()
|
||||
|
@ -55,10 +55,6 @@ class AttachInterfacesRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
super(AttachInterfacesRbacTest, cls).resource_setup()
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(AttachInterfacesRbacTest, self).tearDown()
|
||||
|
||||
def _attach_interface_to_server(self):
|
||||
interface = self.client.create_interface(
|
||||
self.server['id'])['interfaceAttachment']
|
||||
|
@ -22,10 +22,6 @@ CONF = config.CONF
|
||||
|
||||
class NovaAvailabilityZoneRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(NovaAvailabilityZoneRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
super(NovaAvailabilityZoneRbacTest, cls).skip_checks()
|
||||
|
@ -35,10 +35,6 @@ class ConfigDriveRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
% cls.__name__
|
||||
raise cls.skipException(msg)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ConfigDriveRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('55c62ef7-b72b-4970-acc6-05b0a4316e5d')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -39,10 +39,6 @@ class DeferredDeleteRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
super(DeferredDeleteRbacTest, cls).resource_setup()
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(DeferredDeleteRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-deferred-delete")
|
||||
|
@ -48,10 +48,6 @@ class FlavorAccessAdminRbacTest(rbac_base.BaseV2ComputeAdminRbacTest):
|
||||
cls.flavor_id = cls._create_flavor(is_public=False)['id']
|
||||
cls.tenant_id = cls.auth_provider.credentials.tenant_id
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(FlavorAccessAdminRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('a2bd3740-765d-4c95-ac98-9e027378c75e')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -47,10 +47,6 @@ class FlavorExtraSpecsAdminRbacTest(rbac_base.BaseV2ComputeAdminRbacTest):
|
||||
cls.client.wait_for_resource_deletion(cls.flavor['id'])
|
||||
super(FlavorExtraSpecsAdminRbacTest, cls).resource_cleanup()
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(FlavorExtraSpecsAdminRbacTest, self).tearDown()
|
||||
|
||||
def _set_flavor_extra_spec(self):
|
||||
rand_key = data_utils.rand_name('key')
|
||||
rand_val = data_utils.rand_name('val')
|
||||
|
@ -43,10 +43,6 @@ class FloatingIpPoolsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
% cls.__name__
|
||||
raise cls.skipException(msg)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(FloatingIpPoolsRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('c1a17153-b25d-4444-a721-5897d7737482')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -43,10 +43,6 @@ class FloatingIpsBulkRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
% cls.__name__
|
||||
raise cls.skipException(msg)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(FloatingIpsBulkRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('3b5c8a02-005d-4256-8a95-6fa2f389c6cf')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -43,10 +43,6 @@ class FloatingIpsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
% cls.__name__
|
||||
raise cls.skipException(msg)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(FloatingIpsRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('ac1b3053-f755-4cda-85a0-30e88b88d7ba')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -36,10 +36,6 @@ class HostsAdminRbacTest(rbac_base.BaseV2ComputeAdminRbacTest):
|
||||
raise cls.skipException(
|
||||
'%s skipped as no compute extensions enabled' % cls.__name__)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(HostsAdminRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('035b7935-2fae-4218-8d37-27fa83097494')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -35,10 +35,6 @@ class HypervisorAdminRbacTest(rbac_base.BaseV2ComputeAdminRbacTest):
|
||||
% cls.__name__
|
||||
raise cls.skipException(msg)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(HypervisorAdminRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('17bbeb9a-e73e-445f-a771-c794448ef562')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -40,10 +40,6 @@ class InstanceActionsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
cls.request_id = cls.server.response['x-compute-request-id']
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(InstanceActionsRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('9d1b131d-407e-4fa3-8eef-eb2c4526f1da')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -36,10 +36,6 @@ class InstanceUsagesAuditLogAdminRbacTest(
|
||||
super(InstanceUsagesAuditLogAdminRbacTest, cls).setup_clients()
|
||||
cls.client = cls.instance_usages_audit_log_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(InstanceUsagesAuditLogAdminRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('c80246c0-5c13-4ab0-97ba-91551cd53dc1')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova", rule="os_compute_api:os-instance-usage-audit-log")
|
||||
|
@ -49,10 +49,6 @@ class IpsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
super(IpsRbacTest, cls).resource_setup()
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IpsRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('6886d360-0d86-4760-b1a3-882d81fbebcc')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -28,10 +28,6 @@ class KeypairsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
super(KeypairsRbacTest, cls).setup_clients()
|
||||
cls.client = cls.keypairs_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(KeypairsRbacTest, self).tearDown()
|
||||
|
||||
def _create_keypair(self):
|
||||
key_name = data_utils.rand_name('key')
|
||||
keypair = self.client.create_keypair(name=key_name)
|
||||
|
@ -22,10 +22,6 @@ CONF = config.CONF
|
||||
|
||||
class LimitsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(LimitsRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(LimitsRbacTest, cls).setup_clients()
|
||||
|
@ -36,10 +36,6 @@ class MigrationsAdminRbacTest(rbac_base.BaseV2ComputeAdminRbacTest):
|
||||
raise cls.skipException(
|
||||
'%s skipped as no compute extensions enabled' % cls.__name__)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(MigrationsAdminRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('5795231c-3729-448c-a072-9a225db1a328')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -41,10 +41,6 @@ class RescueRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
super(RescueRbacTest, cls).resource_setup()
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(RescueRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-rescue")
|
||||
|
@ -21,10 +21,6 @@ from patrole_tempest_plugin.tests.api.compute import rbac_base
|
||||
|
||||
class SecurityGroupsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(SecurityGroupsRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-security-groups")
|
||||
|
@ -65,10 +65,6 @@ class ServerActionsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
self.__class__.server_id = self.rebuild_server(
|
||||
self.server_id, validatable=True)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ServerActionsRbacTest, self).tearDown()
|
||||
|
||||
def _test_start_server(self):
|
||||
self.client.start_server(self.server_id)
|
||||
waiters.wait_for_server_status(self.client, self.server_id,
|
||||
|
@ -41,10 +41,6 @@ class ServerDiagnosticsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
super(ServerDiagnosticsRbacTest, cls).resource_setup()
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ServerDiagnosticsRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-server-diagnostics")
|
||||
|
@ -41,10 +41,6 @@ class ServerGroupsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
super(ServerGroupsRbacTest, cls).resource_setup()
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ServerGroupsRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-server-groups:create")
|
||||
|
@ -40,10 +40,6 @@ class ServerPasswordRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
super(ServerPasswordRbacTest, cls).resource_setup()
|
||||
cls.server = cls.create_test_server()
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ServerPasswordRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('43ad7995-2f12-41cd-8ef1-bae9ffc36818')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -43,10 +43,6 @@ class ServerTagsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
super(ServerTagsRbacTest, cls).resource_setup()
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ServerTagsRbacTest, self).tearDown()
|
||||
|
||||
def _add_tag_to_server(self):
|
||||
tag_name = data_utils.rand_name('tag')
|
||||
self.client.update_tag(self.server['id'], tag_name)
|
||||
|
@ -41,10 +41,6 @@ class ServerUsageRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
super(ServerUsageRbacTest, cls).resource_setup()
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ServerUsageRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-server-usage")
|
||||
|
@ -46,10 +46,6 @@ class ServerVolumeAttachmentRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
cls.volume = cls.create_volume()
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ServerVolumeAttachmentRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-volumes-attachments:index")
|
||||
|
@ -36,10 +36,6 @@ class ServicesAdminRbacTest(rbac_base.BaseV2ComputeAdminRbacTest):
|
||||
raise cls.skipException(
|
||||
'%s skipped as no compute extensions enabled' % cls.__name__)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ServicesAdminRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-services")
|
||||
|
@ -24,10 +24,6 @@ CONF = config.CONF
|
||||
|
||||
class SimpleTenantUsageRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(SimpleTenantUsageRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(SimpleTenantUsageRbacTest, cls).setup_clients()
|
||||
|
@ -44,8 +44,6 @@ class SuspendServerRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
|
||||
# Guarantee that the server is active during each test run.
|
||||
vm_state = self.client.show_server(self.server['id'])['server'][
|
||||
'OS-EXT-STS:vm_state'].upper()
|
||||
|
@ -51,10 +51,6 @@ class TenantNetworksRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
cls.set_network_resources(network=True)
|
||||
super(TenantNetworksRbacTest, cls).setup_credentials()
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(TenantNetworksRbacTest, self).tearDown()
|
||||
|
||||
@decorators.idempotent_id('42b39ba1-14aa-4799-9518-34367d0da67a')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
|
@ -39,10 +39,6 @@ class IdentityEndpointsV2AdminRbacTest(rbac_base.BaseIdentityV2AdminRbacTest):
|
||||
cls.admin_url = data_utils.rand_url()
|
||||
cls.internal_url = data_utils.rand_url()
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentityEndpointsV2AdminRbacTest, self).tearDown()
|
||||
|
||||
def _create_endpoint(self):
|
||||
self._create_service()
|
||||
endpoint = self.endpoints_client.create_endpoint(
|
||||
|
@ -24,10 +24,6 @@ CONF = config.CONF
|
||||
|
||||
class IdentityProjectV2AdminRbacTest(rbac_base.BaseIdentityV2AdminRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentityProjectV2AdminRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="keystone",
|
||||
rule="identity:create_project")
|
||||
@decorators.idempotent_id('0f148510-63bf-11e6-b348-080044d0d904')
|
||||
|
@ -26,10 +26,6 @@ CONF = config.CONF
|
||||
|
||||
class IdentityRoleV2AdminRbacTest(rbac_base.BaseIdentityV2AdminRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentityRoleV2AdminRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(IdentityRoleV2AdminRbacTest, cls).setup_clients()
|
||||
|
@ -24,10 +24,6 @@ CONF = config.CONF
|
||||
|
||||
class IdentityServicesV2AdminRbacTest(rbac_base.BaseIdentityV2AdminRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentityServicesV2AdminRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(IdentityServicesV2AdminRbacTest, cls).setup_clients()
|
||||
|
@ -22,10 +22,6 @@ from patrole_tempest_plugin.tests.api.identity.v2 import rbac_base
|
||||
|
||||
class IdentityUserV2AdminRbacTest(rbac_base.BaseIdentityV2AdminRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentityUserV2AdminRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="keystone",
|
||||
rule="identity:create_user")
|
||||
@decorators.idempotent_id('0f148510-63bf-11e6-1342-080044d0d904')
|
||||
|
@ -24,11 +24,6 @@ from patrole_tempest_plugin.tests.api.identity.v3 import rbac_base
|
||||
class IdentityCredentialsV3AdminRbacTest(
|
||||
rbac_base.BaseIdentityV3RbacAdminTest):
|
||||
|
||||
def tearDown(self):
|
||||
"""Reverts user back to admin for cleanup."""
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentityCredentialsV3AdminRbacTest, self).tearDown()
|
||||
|
||||
def _create_credential(self):
|
||||
"""Creates a user, project, and credential for test."""
|
||||
user = self.setup_test_user()
|
||||
|
@ -40,11 +40,6 @@ class IdentityEndpointsV3AdminRbacTest(
|
||||
self.endpoints_client.delete_endpoint, endpoint['id'])
|
||||
return (service, endpoint)
|
||||
|
||||
def tearDown(self):
|
||||
"""Reverts user back to admin for cleanup."""
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentityEndpointsV3AdminRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="keystone",
|
||||
rule="identity:create_endpoint")
|
||||
@decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd127')
|
||||
|
@ -26,11 +26,6 @@ CONF = config.CONF
|
||||
|
||||
class IdentityGroupsV3AdminRbacTest(rbac_base.BaseIdentityV3RbacAdminTest):
|
||||
|
||||
def tearDown(self):
|
||||
"""Reverts user back to admin for cleanup."""
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentityGroupsV3AdminRbacTest, self).tearDown()
|
||||
|
||||
def _create_group(self):
|
||||
"""Creates a group for test."""
|
||||
name = data_utils.rand_name('group')
|
||||
|
@ -26,11 +26,6 @@ CONF = config.CONF
|
||||
|
||||
class IdentityPoliciesV3AdminRbacTest(rbac_base.BaseIdentityV3RbacAdminTest):
|
||||
|
||||
def tearDown(self):
|
||||
"""Reverts user back to admin for cleanup."""
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentityPoliciesV3AdminRbacTest, self).tearDown()
|
||||
|
||||
def _create_policy(self):
|
||||
"""Creates a policy for test."""
|
||||
blob = data_utils.rand_name('BlobName')
|
||||
|
@ -26,11 +26,6 @@ CONF = config.CONF
|
||||
class IdentityProjectV3AdminRbacTest(
|
||||
rbac_base.BaseIdentityV3RbacAdminTest):
|
||||
|
||||
def tearDown(self):
|
||||
"""Reverts user back to admin for cleanup."""
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentityProjectV3AdminRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="keystone",
|
||||
rule="identity:create_project")
|
||||
@decorators.idempotent_id('0f148510-63bf-11e6-1564-080044d0d904')
|
||||
|
@ -25,11 +25,6 @@ CONF = config.CONF
|
||||
|
||||
class IdentitySericesV3AdminRbacTest(rbac_base.BaseIdentityV3RbacAdminTest):
|
||||
|
||||
def tearDown(self):
|
||||
"""Reverts user back to admin for cleanup."""
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentitySericesV3AdminRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="keystone",
|
||||
rule="identity:create_service")
|
||||
@decorators.idempotent_id('9a4bb317-f0bb-4005-8df0-4b672885b7c8')
|
||||
|
@ -26,11 +26,6 @@ CONF = config.CONF
|
||||
class IdentityUserV3AdminRbacTest(
|
||||
rbac_base.BaseIdentityV3RbacAdminTest):
|
||||
|
||||
def tearDown(self):
|
||||
"""Reverts user back to admin for cleanup."""
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(IdentityUserV3AdminRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="keystone",
|
||||
rule="identity:create_user")
|
||||
@decorators.idempotent_id('0f148510-63bf-11e6-4522-080044d0d904')
|
||||
|
@ -37,10 +37,6 @@ class ImagesMemberRbacTest(base.BaseV1ImageRbacTest):
|
||||
super(ImagesMemberRbacTest, cls).resource_setup()
|
||||
cls.alt_tenant_id = cls.alt_image_member_client.tenant_id
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ImagesMemberRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="glance", rule="add_member")
|
||||
@decorators.idempotent_id('bda2bb78-e6ec-4b87-ba6d-1eaf1b28fa8b')
|
||||
def test_add_image_member(self):
|
||||
|
@ -27,10 +27,6 @@ CONF = config.CONF
|
||||
|
||||
class BasicOperationsImagesRbacTest(rbac_base.BaseV1ImageRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(BasicOperationsImagesRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="glance", rule="add_image")
|
||||
@decorators.idempotent_id('33248a04-6527-11e6-be0f-080027d0d606')
|
||||
def test_create_image(self):
|
||||
|
@ -26,10 +26,6 @@ CONF = config.CONF
|
||||
|
||||
class ImageNamespacesObjectsRbacTest(rbac_base.BaseV2ImageRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ImageNamespacesObjectsRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="glance",
|
||||
rule="add_metadef_object")
|
||||
@decorators.idempotent_id("772156f2-e33d-432e-8521-12385746c2f0")
|
||||
|
@ -31,10 +31,6 @@ class NamespacesPropertyRbacTest(rbac_base.BaseV2ImageRbacTest):
|
||||
body = cls.resource_types_client.list_resource_types()
|
||||
cls.resource_name = body['resource_types'][0]['name']
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(NamespacesPropertyRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="glance",
|
||||
rule="add_metadef_property")
|
||||
@decorators.idempotent_id('383555ca-677b-43e9-b809-acc2b5a0176c')
|
||||
|
@ -26,10 +26,6 @@ CONF = config.CONF
|
||||
|
||||
class ImageNamespacesRbacTest(rbac_base.BaseV2ImageRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ImageNamespacesRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="glance",
|
||||
rule="add_metadef_namespace")
|
||||
@decorators.idempotent_id('e0730ead-b824-4ffc-b774-9469df0e4da6')
|
||||
|
@ -26,10 +26,6 @@ CONF = config.CONF
|
||||
|
||||
class ImageNamespacesResourceTypeRbacTest(rbac_base.BaseV2ImageRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ImageNamespacesResourceTypeRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="glance",
|
||||
rule="list_metadef_resource_types")
|
||||
@decorators.idempotent_id('0416fc4d-cfdc-447b-88b6-d9f1dd0382f7')
|
||||
|
@ -44,10 +44,6 @@ class ImagesMemberRbacTest(base.BaseV2ImageRbacTest):
|
||||
cls.image_member_client = cls.os.image_member_client_v2
|
||||
cls.alt_image_member_client = cls.os_alt.image_member_client_v2
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ImagesMemberRbacTest, self).tearDown()
|
||||
|
||||
def setUp(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ImagesMemberRbacTest, self).setUp()
|
||||
|
@ -34,10 +34,6 @@ class BasicOperationsImagesRbacTest(rbac_base.BaseV2ImageRbacTest):
|
||||
super(BasicOperationsImagesRbacTest, cls).setup_clients()
|
||||
cls.client = cls.os.image_client_v2
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(BasicOperationsImagesRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="glance",
|
||||
rule="add_image")
|
||||
@decorators.idempotent_id('0f148510-63bf-11e6-b348-080027d0d606')
|
||||
|
@ -69,10 +69,6 @@ class FloatingIpsRbacTest(base.BaseNetworkRbacTest):
|
||||
|
||||
return floating_ip
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(FloatingIpsRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="neutron",
|
||||
rule="create_floatingip")
|
||||
@decorators.idempotent_id('f8f7474c-b8a5-4174-af84-73097d6ced38')
|
||||
|
@ -44,10 +44,6 @@ class MeteringLabelRulesRbacTest(base.BaseNetworkRbacTest):
|
||||
cls.metering_labels_client = cls.os.metering_labels_client
|
||||
cls.metering_label_rules_client = cls.os.metering_label_rules_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(MeteringLabelRulesRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(MeteringLabelRulesRbacTest, cls).resource_setup()
|
||||
|
@ -41,10 +41,6 @@ class MeteringLabelsRbacTest(base.BaseNetworkRbacTest):
|
||||
super(MeteringLabelsRbacTest, cls).setup_clients()
|
||||
cls.metering_labels_client = cls.os.metering_labels_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(MeteringLabelsRbacTest, self).tearDown()
|
||||
|
||||
def _create_metering_label(self):
|
||||
body = self.metering_labels_client.create_metering_label(
|
||||
name=data_utils.rand_name(self.__class__.__name__))
|
||||
|
@ -35,10 +35,6 @@ class NetworksMultiProviderRbacTest(base.BaseNetworkRbacTest):
|
||||
msg = "multi-provider extension not enabled."
|
||||
raise cls.skipException(msg)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(NetworksMultiProviderRbacTest, self).tearDown()
|
||||
|
||||
def _create_network_segments(self):
|
||||
segments = [{"provider:network_type": "gre"},
|
||||
{"provider:network_type": "gre"}]
|
||||
|
@ -127,10 +127,6 @@ class RbacNetworksTest(base.BaseNetworkRbacTest):
|
||||
updated_network = body['network']
|
||||
return updated_network
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(RbacNetworksTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="neutron",
|
||||
rule="create_network")
|
||||
@decorators.idempotent_id('95b9baab-1ece-4e2b-89c8-8d671d974e54')
|
||||
|
@ -68,10 +68,6 @@ class PortsRbacTest(base.BaseNetworkRbacTest):
|
||||
|
||||
return port
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(PortsRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="neutron",
|
||||
rule="create_port")
|
||||
@decorators.idempotent_id('0ec8c551-625c-4864-8a52-85baa7c40f22')
|
||||
|
@ -52,10 +52,6 @@ class RouterRbacTest(base.BaseNetworkRbacTest):
|
||||
cls.admin_subnet['allocation_pools'][0]['end'])
|
||||
cls.admin_router = cls.create_router()
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(RouterRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="neutron",
|
||||
rule="create_router")
|
||||
@decorators.idempotent_id('acc5005c-bdb6-4192-bc9f-ece9035bb488')
|
||||
|
@ -29,10 +29,6 @@ LOG = log.getLogger(__name__)
|
||||
|
||||
class SecGroupRbacTest(base.BaseNetworkRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(SecGroupRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(SecGroupRbacTest, cls).resource_setup()
|
||||
|
@ -38,10 +38,6 @@ class SubnetPoolsRbacTest(base.BaseNetworkRbacTest):
|
||||
msg = "subnet_allocation extension not enabled."
|
||||
raise cls.skipException(msg)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(SubnetPoolsRbacTest, self).tearDown()
|
||||
|
||||
def _create_subnetpool(self, shared=None):
|
||||
post_body = {'name': data_utils.rand_name(self.__class__.__name__),
|
||||
'min_prefixlen': 24,
|
||||
|
@ -36,7 +36,3 @@ class BaseOrchestrationRbacTest(heat_base.BaseOrchestrationTest):
|
||||
cls.auth_provider = cls.os.auth_provider
|
||||
cls.rbac_utils = rbac_utils()
|
||||
cls.rbac_utils.switch_role(cls, switchToRbacRole=False)
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(BaseOrchestrationRbacTest, self).tearDown()
|
||||
|
@ -31,10 +31,6 @@ class VolumeQOSRbacTest(rbac_base.BaseVolumeAdminRbacTest):
|
||||
cls.auth_provider = cls.os.auth_provider
|
||||
cls.client = cls.admin_volume_qos_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumeQOSRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="cinder", rule="volume_extension:qos_specs_manage:create")
|
||||
@decorators.idempotent_id('4f9f45f0-b379-4577-a279-cec3e917cbec')
|
||||
|
@ -39,10 +39,6 @@ class VolumeQuotasAdminRbacTest(rbac_base.BaseVolumeAdminRbacTest):
|
||||
super(VolumeQuotasAdminRbacTest, cls).setup_clients()
|
||||
cls.client = cls.os.volume_quotas_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumeQuotasAdminRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="cinder",
|
||||
rule="volume_extension:quotas:show")
|
||||
@decorators.idempotent_id('b3c7177e-b6b1-4d0f-810a-fc95606964dd')
|
||||
|
@ -31,10 +31,6 @@ class VolumesBackupsAdminRbacTest(rbac_base.BaseVolumeAdminRbacTest):
|
||||
if not CONF.volume_feature_enabled.backup:
|
||||
raise cls.skipException("Cinder backup feature disabled")
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumesBackupsAdminRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(VolumesBackupsAdminRbacTest, cls).resource_setup()
|
||||
|
@ -29,10 +29,6 @@ class AvailabilityZoneRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
super(AvailabilityZoneRbacTest, cls).setup_clients()
|
||||
cls.client = cls.availability_zone_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(AvailabilityZoneRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="cinder",
|
||||
rule="volume:availability_zone_list")
|
||||
@decorators.idempotent_id('8cfd920c-4b6c-402d-b6e2-ede86bedc702')
|
||||
|
@ -24,10 +24,6 @@ CONF = config.CONF
|
||||
|
||||
class ExtensionsRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(ExtensionsRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="cinder",
|
||||
rule="volume:list_extensions")
|
||||
@decorators.idempotent_id('7f2dcc41-e850-493f-a400-82db4e2b50c0')
|
||||
|
@ -38,10 +38,6 @@ class SnapshotsActionsRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
super(SnapshotsActionsRbacTest, cls).setup_clients()
|
||||
cls.client = cls.os.snapshots_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(SnapshotsActionsRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(SnapshotsActionsRbacTest, cls).resource_setup()
|
||||
|
@ -30,10 +30,6 @@ class SnapshotMetadataRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
if not CONF.volume_feature_enabled.snapshot:
|
||||
raise cls.skipException("Cinder snapshot feature disabled")
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(SnapshotMetadataRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(SnapshotMetadataRbacTest, cls).resource_setup()
|
||||
|
@ -45,10 +45,6 @@ class VolumesActionsRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
cls.client = cls.os.volumes_client
|
||||
cls.image_client = cls.os.image_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumesActionsRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(VolumesActionsRbacTest, cls).resource_setup()
|
||||
|
@ -29,10 +29,6 @@ LOG = logging.getLogger(__name__)
|
||||
|
||||
class CreateDeleteVolumeRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(CreateDeleteVolumeRbacTest, self).tearDown()
|
||||
|
||||
def _create_volume(self):
|
||||
# create_volume waits for volume status to be
|
||||
# "available" before returning and automatically
|
||||
|
@ -21,10 +21,6 @@ from patrole_tempest_plugin.tests.api.volume import rbac_base
|
||||
|
||||
class VolumeHostsAdminRbacTest(rbac_base.BaseVolumeAdminRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumeHostsAdminRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="cinder",
|
||||
rule="volume_extension:hosts")
|
||||
@decorators.idempotent_id('64e837f5-5452-4e26-b934-c721ea7a8644')
|
||||
|
@ -31,10 +31,6 @@ class VolumeMetadataRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
super(VolumeMetadataRbacTest, cls).setup_clients()
|
||||
cls.client = cls.os.volumes_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumeMetadataRbacTest, self).tearDown()
|
||||
|
||||
def _add_metadata(self, volume):
|
||||
# Create metadata for the volume
|
||||
metadata = {"key1": "value1",
|
||||
|
@ -35,10 +35,6 @@ class VolumesTransfersRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
cls.alt_client = cls.os_alt.volumes_client
|
||||
cls.alt_tenant_id = cls.alt_client.tenant_id
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumesTransfersRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(VolumesTransfersRbacTest, cls).resource_setup()
|
||||
|
@ -24,10 +24,6 @@ CONF = config.CONF
|
||||
|
||||
class VolumeTypesExtraSpecsAdminRbacTest(rbac_base.BaseVolumeAdminRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumeTypesExtraSpecsAdminRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="cinder",
|
||||
rule="volume_extension:types_extra_specs")
|
||||
@decorators.idempotent_id('eea40251-990b-49b0-99ae-10e4585b479b')
|
||||
|
@ -32,10 +32,6 @@ class VolumesBackupsRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
if not CONF.volume_feature_enabled.backup:
|
||||
raise cls.skipException("Cinder backup feature disabled")
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumesBackupsRbacTest, self).tearDown()
|
||||
|
||||
def create_backup(self, volume_id):
|
||||
backup_name = data_utils.rand_name(
|
||||
self.__class__.__name__ + '-Backup')
|
||||
|
@ -25,10 +25,6 @@ CONF = config.CONF
|
||||
|
||||
class VolumesExtendRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumesExtendRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(VolumesExtendRbacTest, cls).resource_setup()
|
||||
|
@ -29,10 +29,6 @@ class VolumesListRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
super(VolumesListRbacTest, cls).setup_clients()
|
||||
cls.client = cls.os.volumes_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumesListRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(service="cinder",
|
||||
rule="volume:get_all")
|
||||
@decorators.idempotent_id('e3ab7906-b04b-4c45-aa11-1104d302f940')
|
||||
|
@ -32,10 +32,6 @@ class VolumesRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
super(VolumesRbacTest, cls).setup_clients()
|
||||
cls.client = cls.volumes_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumesRbacTest, self).tearDown()
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="cinder",
|
||||
rule="volume_extension:volume_admin_actions:reset_status")
|
||||
|
@ -29,10 +29,6 @@ class VolumesSnapshotRbacTest(rbac_base.BaseVolumeRbacTest):
|
||||
super(VolumesSnapshotRbacTest, cls).setup_clients()
|
||||
cls.client = cls.snapshots_client
|
||||
|
||||
def tearDown(self):
|
||||
self.rbac_utils.switch_role(self, switchToRbacRole=False)
|
||||
super(VolumesSnapshotRbacTest, self).tearDown()
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
super(VolumesSnapshotRbacTest, cls).skip_checks()
|
||||
|
@ -18,20 +18,25 @@ from patrole_tempest_plugin import rbac_exceptions
|
||||
from patrole_tempest_plugin import rbac_rule_validation as rbac_rv
|
||||
|
||||
from tempest.lib import exceptions
|
||||
|
||||
from tempest import test
|
||||
from tempest.tests import base
|
||||
|
||||
|
||||
class RBACRuleValidationTest(base.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(RBACRuleValidationTest, self).setUp()
|
||||
self.mock_args = mock.Mock(spec=test.BaseTestCase)
|
||||
self.mock_args.auth_provider = mock.Mock()
|
||||
self.mock_args.rbac_utils = mock.Mock()
|
||||
self.mock_args.auth_provider.credentials.tenant_id = 'tenant_id'
|
||||
|
||||
@mock.patch('patrole_tempest_plugin.rbac_auth.RbacAuthority')
|
||||
def test_RBAC_rv_happy_path(self, mock_auth):
|
||||
decorator = rbac_rv.action("", "")
|
||||
mock_function = mock.Mock()
|
||||
mock_args = mock.MagicMock(**{
|
||||
'auth_provider.credentials.tenant_id': 'tenant_id'
|
||||
})
|
||||
wrapper = decorator(mock_function)
|
||||
wrapper((mock_args))
|
||||
wrapper((self.mock_args))
|
||||
self.assertTrue(mock_function.called)
|
||||
|
||||
@mock.patch('patrole_tempest_plugin.rbac_auth.RbacAuthority')
|
||||
@ -40,23 +45,17 @@ class RBACRuleValidationTest(base.TestCase):
|
||||
mock_function = mock.Mock()
|
||||
mock_function.side_effect = exceptions.Forbidden
|
||||
wrapper = decorator(mock_function)
|
||||
mock_args = mock.MagicMock(**{
|
||||
'auth_provider.credentials.tenant_id': 'tenant_id'
|
||||
})
|
||||
|
||||
self.assertRaises(exceptions.Forbidden, wrapper, mock_args)
|
||||
self.assertRaises(exceptions.Forbidden, wrapper, self.mock_args)
|
||||
|
||||
@mock.patch('patrole_tempest_plugin.rbac_auth.RbacAuthority')
|
||||
def test_RBAC_rv_rbac_action_failed(self, mock_auth):
|
||||
decorator = rbac_rv.action("", "")
|
||||
mock_function = mock.Mock()
|
||||
mock_function.side_effect = rbac_exceptions.RbacActionFailed
|
||||
mock_args = mock.MagicMock(**{
|
||||
'auth_provider.credentials.tenant_id': 'tenant_id'
|
||||
})
|
||||
|
||||
wrapper = decorator(mock_function)
|
||||
self.assertRaises(exceptions.Forbidden, wrapper, mock_args)
|
||||
self.assertRaises(exceptions.Forbidden, wrapper, self.mock_args)
|
||||
|
||||
@mock.patch('patrole_tempest_plugin.rbac_auth.RbacAuthority')
|
||||
def test_RBAC_rv_not_allowed(self, mock_auth):
|
||||
@ -69,12 +68,8 @@ class RBACRuleValidationTest(base.TestCase):
|
||||
mock_permission.get_permission.return_value = False
|
||||
mock_auth.return_value = mock_permission
|
||||
|
||||
mock_args = mock.MagicMock(**{
|
||||
'auth_provider.credentials.tenant_id': 'tenant_id'
|
||||
})
|
||||
|
||||
self.assertRaises(rbac_exceptions.RbacOverPermission, wrapper,
|
||||
mock_args)
|
||||
self.mock_args)
|
||||
|
||||
@mock.patch('patrole_tempest_plugin.rbac_auth.RbacAuthority')
|
||||
def test_RBAC_rv_forbidden_not_allowed(self, mock_auth):
|
||||
@ -82,16 +77,13 @@ class RBACRuleValidationTest(base.TestCase):
|
||||
|
||||
mock_function = mock.Mock()
|
||||
mock_function.side_effect = exceptions.Forbidden
|
||||
mock_args = mock.MagicMock(**{
|
||||
'auth_provider.credentials.tenant_id': 'tenant_id'
|
||||
})
|
||||
wrapper = decorator(mock_function)
|
||||
|
||||
mock_permission = mock.Mock()
|
||||
mock_permission.get_permission.return_value = False
|
||||
mock_auth.return_value = mock_permission
|
||||
|
||||
self.assertIsNone(wrapper(mock_args))
|
||||
self.assertIsNone(wrapper(self.mock_args))
|
||||
|
||||
@mock.patch('patrole_tempest_plugin.rbac_auth.RbacAuthority')
|
||||
def test_RBAC_rv_rbac_action_failed_not_allowed(self, mock_auth):
|
||||
@ -105,8 +97,4 @@ class RBACRuleValidationTest(base.TestCase):
|
||||
mock_permission.get_permission.return_value = False
|
||||
mock_auth.return_value = mock_permission
|
||||
|
||||
mock_args = mock.MagicMock(**{
|
||||
'auth_provider.credentials.tenant_id': 'tenant_id'
|
||||
})
|
||||
|
||||
self.assertIsNone(wrapper(mock_args))
|
||||
self.assertIsNone(wrapper(self.mock_args))
|
||||
|
Loading…
Reference in New Issue
Block a user