
- Move resource setup from test_regions to rms_base to reuse in rbac tests Change-Id: I55314ee71347d188be06be40db2f4fdc985bdf96
130 lines
5.7 KiB
Python
130 lines
5.7 KiB
Python
# Copyright (c) 2019 AT&T Intellectual Property. All other 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 patrole_tempest_plugin import rbac_rule_validation
|
|
from patrole_tempest_plugin import rbac_utils
|
|
|
|
from tempest.lib import decorators
|
|
from tempest.lib.common.utils import data_utils
|
|
|
|
from ranger_tempest_plugin import data_utils as orm_data_utils
|
|
from ranger_tempest_plugin.tests.api import rms_base
|
|
|
|
|
|
class TestRegion(rbac_utils.RbacUtilsMixin, rms_base.RmsBaseOrmTest):
|
|
|
|
@classmethod
|
|
def setup_clients(cls):
|
|
super(TestRegion, cls).setup_clients()
|
|
cls.client = cls.os_primary.rms_rbac_client
|
|
|
|
@rbac_rule_validation.action(service='ranger',
|
|
rules=['region:get_all'],
|
|
expected_error_codes=[403])
|
|
@decorators.idempotent_id('f8be1f6b-7e3f-40ea-b099-1fd57e4124a1')
|
|
def test_list_regions(self):
|
|
with self.override_role():
|
|
self.client.list_regions()
|
|
|
|
@rbac_rule_validation.action(service='ranger',
|
|
rules=['region:get_one'],
|
|
expected_error_codes=[403])
|
|
@decorators.idempotent_id('0a97dd58-d4b0-448b-b7f4-9fdbc99efce3')
|
|
def test_get_region(self):
|
|
filter = {'regionname': self.region_1['name']}
|
|
with self.override_role():
|
|
self.client.list_regions(filter)
|
|
|
|
@rbac_rule_validation.action(service='ranger',
|
|
rules=['region:create'],
|
|
expected_error_codes=[403])
|
|
@decorators.idempotent_id('3d5895cf-ec8b-44f4-8d52-183baf2ff062')
|
|
def test_create_region(self):
|
|
region_id = None
|
|
with self.override_role():
|
|
_, region = self.client.create_region(data_utils.rand_name())
|
|
region_id = region['id']
|
|
self.client.delete_region(region_id)
|
|
|
|
@rbac_rule_validation.action(service='ranger',
|
|
rules=['region:update'],
|
|
expected_error_codes=[403])
|
|
@decorators.idempotent_id('cbb32c8f-f183-42c4-a9d9-61e93d066c5f')
|
|
def test_update_region(self):
|
|
id = self.setup_ids[-1]
|
|
region = orm_data_utils.rand_region(id)
|
|
with self.override_role():
|
|
self.client.update_region(id, **region)
|
|
|
|
@rbac_rule_validation.action(service='ranger',
|
|
rules=['region:delete'],
|
|
expected_error_codes=[403])
|
|
@decorators.idempotent_id('62596380-c8a8-4832-8b3a-c665d2ecf18f')
|
|
def test_delete_region(self):
|
|
_, region = self.client.create_region(data_utils.rand_name())
|
|
region_id = region['id']
|
|
with self.override_role():
|
|
self.client.delete_region(region_id)
|
|
|
|
@rbac_rule_validation.action(service='ranger',
|
|
rules=['metadata:get'],
|
|
expected_error_codes=[403])
|
|
@decorators.idempotent_id('96dbb841-52b6-4366-b62b-cdbb820c9c24')
|
|
def test_get_region_metadata(self):
|
|
with self.override_role():
|
|
self.client.get_region_metadata(self.region_1['id'])
|
|
|
|
@rbac_rule_validation.action(service='ranger',
|
|
rules=['metadata:create'],
|
|
expected_error_codes=[403])
|
|
@decorators.idempotent_id('4fa6d3ff-8a77-462c-a856-7f65d0579400')
|
|
def test_add_region_metadata(self):
|
|
metadata = {}
|
|
metadata['metadata'] = orm_data_utils.rand_region_metadata()
|
|
with self.override_role():
|
|
self.client.add_region_metadata(self.region_1['id'], **metadata)
|
|
|
|
@rbac_rule_validation.action(service='ranger',
|
|
rules=['metadata:update'],
|
|
expected_error_codes=[403])
|
|
@decorators.idempotent_id('01c592b1-6357-4daa-8150-9476c5644d8b')
|
|
def test_update_region_metadata(self):
|
|
metadata = {}
|
|
metadata['metadata'] = orm_data_utils.rand_region_metadata()
|
|
with self.override_role():
|
|
self.client.update_region_metadata(self.region_1['id'], metadata)
|
|
|
|
@rbac_rule_validation.action(service='ranger',
|
|
rules=['metadata:delete'],
|
|
expected_error_codes=[403])
|
|
@decorators.idempotent_id('25b5d305-586f-4ef5-9774-e46362a69b4c')
|
|
def test_delete_region_metadata(self):
|
|
metadata = {}
|
|
metadata['metadata'] = orm_data_utils.rand_region_metadata()
|
|
key = list(metadata['metadata'].keys())[0]
|
|
self.client.add_region_metadata(self.region_1['id'], **metadata)
|
|
with self.override_role():
|
|
self.client.delete_region_metadata(self.region_1['id'], key)
|
|
|
|
@rbac_rule_validation.action(service='ranger',
|
|
rules=['status:put'],
|
|
expected_error_codes=[403])
|
|
@decorators.idempotent_id('57a73d35-0e40-4fd1-b2ea-2fd6ac8364d5')
|
|
def test_update_region_status(self):
|
|
status = {}
|
|
status['status'] = orm_data_utils.rand_region_status(
|
|
[self.region_1['status']])
|
|
with self.override_role():
|
|
self.client.update_region_status(self.region_1['id'], status)
|