Move tenant usage tests into misc policy actions file
Move tenant usage tests into test_server_misc_policy_actions_rbac.py to further increase gate stability and decrease gate run time. The number of calls to create_test_server() should be minimized for RBAC testing because we don't do too much modification to the resources that are created -- only what's necessary to trigger the API action corresponding to the RBAC policy under test. Further, minimizing such calls reduces the risk of spinning up too many servers concurrently in our gates: the source of various gate failures as limited resources lead to server faults being raised. Change-Id: Ib104c08a5fa1708a829e5f91a587df6ba9c08ee0 Partial-Bug: #1699415
This commit is contained in:
parent
25569dc76b
commit
4047a19265
|
@ -37,7 +37,9 @@ class BaseV2ComputeRbacTest(compute_base.BaseV2ComputeTest):
|
|||
super(BaseV2ComputeRbacTest, cls).setup_clients()
|
||||
cls.auth_provider = cls.os_primary.auth_provider
|
||||
cls.rbac_utils = rbac_utils.RbacUtils(cls)
|
||||
|
||||
cls.hosts_client = cls.os_primary.hosts_client
|
||||
cls.tenant_usages_client = cls.os_primary.tenant_usages_client
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
|
|
|
@ -210,12 +210,34 @@ class MiscPolicyActionsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
|||
def test_show_server_usage(self):
|
||||
"""Test show server usage, part of os-server-usage.
|
||||
|
||||
TODO(felipemonteiro): Once multiple policy test is supported, this
|
||||
TODO(felipemonteiro): Once multiple policy testing is supported, this
|
||||
test can be combined with the generic test for showing a server.
|
||||
"""
|
||||
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
|
||||
self.servers_client.show_server(self.server_id)
|
||||
|
||||
@test.requires_ext(extension='os-simple-tenant-usage', service='compute')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-simple-tenant-usage:list")
|
||||
@decorators.idempotent_id('2aef094f-0452-4df6-a66a-0ec22a92b16e')
|
||||
def test_list_simple_tenant_usages(self):
|
||||
"""Test list tenant usages, part of os-simple-tenant-usage."""
|
||||
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
|
||||
self.tenant_usages_client.list_tenant_usages()
|
||||
|
||||
@test.requires_ext(extension='os-simple-tenant-usage', service='compute')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-simple-tenant-usage:show")
|
||||
@decorators.idempotent_id('fe7eacda-15c4-4bf7-93ef-1091c4546a9d')
|
||||
def test_show_simple_tenant_usage(self):
|
||||
"""Test show tenant usage, part of os-simple-tenant-usage."""
|
||||
tenant_id = self.auth_provider.credentials.tenant_id
|
||||
|
||||
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
|
||||
self.tenant_usages_client.show_tenant_usage(tenant_id=tenant_id)
|
||||
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.suspend,
|
||||
"Suspend compute feature is not available.")
|
||||
@decorators.idempotent_id('b775930f-237c-431c-83ae-d33ed1b9700b')
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
# Copyright 2017 AT&T Corporation.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from tempest.lib import decorators
|
||||
from tempest import test
|
||||
|
||||
from patrole_tempest_plugin import rbac_rule_validation
|
||||
from patrole_tempest_plugin.tests.api.compute import rbac_base
|
||||
|
||||
|
||||
class SimpleTenantUsageRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(SimpleTenantUsageRbacTest, cls).setup_clients()
|
||||
cls.tenant_usages_client = cls.os_primary.tenant_usages_client
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
super(SimpleTenantUsageRbacTest, cls).skip_checks()
|
||||
if not test.is_extension_enabled('os-simple-tenant-usage', 'compute'):
|
||||
msg = ("%s skipped as os-simple-tenant-usage not "
|
||||
"enabled." % cls.__name__)
|
||||
raise cls.skipException(msg)
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-simple-tenant-usage:list")
|
||||
@decorators.idempotent_id('2aef094f-0452-4df6-a66a-0ec22a92b16e')
|
||||
def test_simple_tenant_usage_list(self):
|
||||
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
|
||||
self.tenant_usages_client.list_tenant_usages()
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-simple-tenant-usage:show")
|
||||
@decorators.idempotent_id('fe7eacda-15c4-4bf7-93ef-1091c4546a9d')
|
||||
def test_simple_tenant_usage_show(self):
|
||||
# A server must be created in order for usage activity to exist; else
|
||||
# the validation method in the API call throws an error.
|
||||
self.create_test_server(wait_until='ACTIVE')['id']
|
||||
tenant_id = self.auth_provider.credentials.tenant_id
|
||||
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
|
||||
self.tenant_usages_client.show_tenant_usage(tenant_id=tenant_id)
|
Loading…
Reference in New Issue