blob: 980672a6935c27555de656b6472b7326a6d679ad [file] [log] [blame]
DavidPurcellb25f93d2017-01-27 12:46:27 -05001# Copyright 2017 AT&T Corporation.
DavidPurcell029d8c32017-01-06 15:27:41 -05002# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
16from tempest.lib import exceptions
17
18
Samantha Blanco36bea052017-07-19 12:01:59 -040019class RbacConflictingPolicies(exceptions.TempestException):
20 message = ("Conflicting policies preventing this action from being "
21 "performed.")
22
23
24class RbacMalformedResponse(exceptions.TempestException):
25 message = ("The response body is missing the expected %(attribute)s due "
26 "to policy enforcement failure.")
27
28 def __init__(self, empty=False, extra_attr=False, **kwargs):
29 if empty:
30 self.message = ("The response body is empty due to policy "
31 "enforcement failure.")
32 kwargs = {}
33 if extra_attr:
34 self.message = ("The response body contained an unexpected "
35 "attribute due to policy enforcement failure.")
36 kwargs = {}
37 super(RbacMalformedResponse, self).__init__(**kwargs)
DavidPurcell029d8c32017-01-06 15:27:41 -050038
39
Felipe Monteiro6c068fc2017-07-17 00:13:21 +010040class RbacResourceSetupFailed(exceptions.TempestException):
Felipe Monteiro44d77842018-03-21 02:42:59 +000041 message = "RBAC resource setup failed"
DavidPurcell029d8c32017-01-06 15:27:41 -050042
43
Felipe Monteirof16b6b32018-06-28 19:32:59 -040044class RbacOverPermissionException(exceptions.TempestException):
45 """Raised when the expected result is failure but the actual result is
46 pass.
47 """
48 message = "Unauthorized action was allowed to be performed"
49
50
51class RbacUnderPermissionException(exceptions.TempestException):
52 """Raised when the expected result is pass but the actual result is
53 failure.
54 """
55 message = "Authorized action was not allowed to be performed"
56
57
58class RbacExpectedWrongException(exceptions.TempestException):
59 """Raised when the expected exception does not match the actual exception
60 raised, when both are instances of Forbidden or NotFound, indicating
61 the test provides a wrong argument to `expected_error_codes`.
62 """
63 message = ("Expected %(expected)s to be raised but %(actual)s was raised "
64 "instead. Actual exception: %(exception)s")
Rick Bartra503c5572017-03-09 13:49:58 -050065
66
Felipe Monteiro6c068fc2017-07-17 00:13:21 +010067class RbacInvalidService(exceptions.TempestException):
Rick Bartra503c5572017-03-09 13:49:58 -050068 message = "Attempted to test an invalid service"
Felipe Monteiro48c913d2017-03-15 12:07:48 -040069
70
Felipe Monteiro6c068fc2017-07-17 00:13:21 +010071class RbacParsingException(exceptions.TempestException):
Felipe Monteiro48c913d2017-03-15 12:07:48 -040072 message = "Attempted to test an invalid policy file or action"
Rick Bartra12998942017-03-17 17:35:45 -040073
74
Felipe Monteiro6c068fc2017-07-17 00:13:21 +010075class RbacInvalidErrorCode(exceptions.TempestException):
Rick Bartra12998942017-03-17 17:35:45 -040076 message = "Unsupported error code passed in test"