forked from TrueCloudLab/frostfs-testlib
Compare commits
1 commit
Author | SHA1 | Date | |
---|---|---|---|
0c9660fffc |
2 changed files with 19 additions and 3 deletions
|
@ -27,6 +27,10 @@ S3_BUCKET_DOES_NOT_ALLOW_ACL = "The bucket does not allow ACLs"
|
||||||
S3_MALFORMED_XML_REQUEST = "The XML you provided was not well-formed or did not validate against our published schema."
|
S3_MALFORMED_XML_REQUEST = "The XML you provided was not well-formed or did not validate against our published schema."
|
||||||
|
|
||||||
RULE_ACCESS_DENIED_CONTAINER = "access to container operation {operation} is denied by access policy engine: Access denied"
|
RULE_ACCESS_DENIED_CONTAINER = "access to container operation {operation} is denied by access policy engine: Access denied"
|
||||||
RULE_ACCESS_DENIED_OBJECT = "access to object operation denied: ape denied request: method {operation}: Access denied"
|
# Errors from node missing reasons if request was forwarded. Commenting for now
|
||||||
|
# RULE_ACCESS_DENIED_OBJECT = "access to object operation denied: ape denied request: method {operation}: Access denied"
|
||||||
|
RULE_ACCESS_DENIED_OBJECT = "access to object operation denied: ape denied request"
|
||||||
NO_RULE_FOUND_CONTAINER = "access to container operation {operation} is denied by access policy engine: NoRuleFound"
|
NO_RULE_FOUND_CONTAINER = "access to container operation {operation} is denied by access policy engine: NoRuleFound"
|
||||||
NO_RULE_FOUND_OBJECT = "access to object operation denied: ape denied request: method {operation}: NoRuleFound"
|
# Errors from node missing reasons if request was forwarded. Commenting for now
|
||||||
|
# NO_RULE_FOUND_OBJECT = "access to object operation denied: ape denied request: method {operation}: NoRuleFound"
|
||||||
|
NO_RULE_FOUND_OBJECT = "access to object operation denied: ape denied request"
|
||||||
|
|
|
@ -26,6 +26,18 @@ class ObjectOperations(HumanReadableEnum):
|
||||||
return [op for op in ObjectOperations if op != ObjectOperations.WILDCARD_ALL]
|
return [op for op in ObjectOperations if op != ObjectOperations.WILDCARD_ALL]
|
||||||
|
|
||||||
|
|
||||||
|
class ContainerOperations(HumanReadableEnum):
|
||||||
|
PUT = "container.put"
|
||||||
|
GET = "container.get"
|
||||||
|
LIST = "container.list"
|
||||||
|
DELETE = "container.delete"
|
||||||
|
WILDCARD_ALL = "container.*"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_all():
|
||||||
|
return [op for op in ObjectOperations if op != ObjectOperations.WILDCARD_ALL]
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Operations:
|
class Operations:
|
||||||
GET_CONTAINER = "GetContainer"
|
GET_CONTAINER = "GetContainer"
|
||||||
|
@ -124,7 +136,7 @@ class Rule:
|
||||||
|
|
||||||
if not operations:
|
if not operations:
|
||||||
self.operations = []
|
self.operations = []
|
||||||
elif isinstance(operations, ObjectOperations):
|
elif isinstance(operations, (ObjectOperations, ContainerOperations)):
|
||||||
self.operations = [operations]
|
self.operations = [operations]
|
||||||
else:
|
else:
|
||||||
self.operations = operations
|
self.operations = operations
|
||||||
|
|
Loading…
Reference in a new issue