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