This repository has been archived by the owner on Dec 27, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
14 changed files
with
2,516 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
package acl | ||
|
||
// OperationType is an enumeration of operation types for extended ACL. | ||
type OperationType uint32 | ||
|
||
// HeaderType is an enumeration of header types for extended ACL. | ||
type HeaderType uint32 | ||
|
||
// MatchType is an enumeration of match types for extended ACL. | ||
type MatchType uint32 | ||
|
||
// ExtendedACLAction is an enumeration of extended ACL actions. | ||
type ExtendedACLAction uint32 | ||
|
||
// Header is an interface of string key-value pair, | ||
type Header interface { | ||
// Must return string identifier of header. | ||
Name() string | ||
|
||
// Must return string value of header. | ||
Value() string | ||
} | ||
|
||
// TypedHeader is an interface of Header and HeaderType pair. | ||
type TypedHeader interface { | ||
Header | ||
|
||
// Must return type of filtered header. | ||
HeaderType() HeaderType | ||
} | ||
|
||
// HeaderFilter is an interface of grouped information about filtered header. | ||
type HeaderFilter interface { | ||
// Must return match type of filter. | ||
MatchType() MatchType | ||
|
||
TypedHeader | ||
} | ||
|
||
// ExtendedACLTarget is an interface of grouped information about extended ACL rule target. | ||
type ExtendedACLTarget interface { | ||
// Must return ACL target type. | ||
Target() Target | ||
|
||
// Must return public key list of ACL targets. | ||
KeyList() [][]byte | ||
} | ||
|
||
// ExtendedACLRecord is an interface of record of extended ACL rule table. | ||
type ExtendedACLRecord interface { | ||
// Must return operation type of extended ACL rule. | ||
OperationType() OperationType | ||
|
||
// Must return list of header filters of extended ACL rule. | ||
HeaderFilters() []HeaderFilter | ||
|
||
// Must return target list of extended ACL rule. | ||
TargetList() []ExtendedACLTarget | ||
|
||
// Must return action of extended ACL rule. | ||
Action() ExtendedACLAction | ||
} | ||
|
||
// ExtendedACLTable is an interface of extended ACL table. | ||
type ExtendedACLTable interface { | ||
// Must return list of extended ACL rules. | ||
Records() []ExtendedACLRecord | ||
} | ||
|
||
const ( | ||
_ OperationType = iota | ||
|
||
// OpTypeGet is an OperationType for object.Get RPC | ||
OpTypeGet | ||
|
||
// OpTypePut is an OperationType for object.Put RPC | ||
OpTypePut | ||
|
||
// OpTypeHead is an OperationType for object.Head RPC | ||
OpTypeHead | ||
|
||
// OpTypeSearch is an OperationType for object.Search RPC | ||
OpTypeSearch | ||
|
||
// OpTypeDelete is an OperationType for object.Delete RPC | ||
OpTypeDelete | ||
|
||
// OpTypeRange is an OperationType for object.GetRange RPC | ||
OpTypeRange | ||
|
||
// OpTypeRangeHash is an OperationType for object.GetRangeHash RPC | ||
OpTypeRangeHash | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
package acl | ||
|
||
const ( | ||
_ MatchType = iota | ||
|
||
// StringEqual is a MatchType of string equality. | ||
StringEqual | ||
|
||
// StringNotEqual is a MatchType of string inequality. | ||
StringNotEqual | ||
) | ||
|
||
const ( | ||
// ActionUndefined is ExtendedACLAction used to mark value as undefined. | ||
// Most of the tools consider ActionUndefined as incalculable. | ||
// Using ActionUndefined in ExtendedACLRecord is unsafe. | ||
ActionUndefined ExtendedACLAction = iota | ||
|
||
// ActionAllow is ExtendedACLAction used to mark an applicability of ACL rule. | ||
ActionAllow | ||
|
||
// ActionDeny is ExtendedACLAction used to mark an inapplicability of ACL rule. | ||
ActionDeny | ||
) | ||
|
||
const ( | ||
_ HeaderType = iota | ||
|
||
// HdrTypeRequest is a HeaderType for request header. | ||
HdrTypeRequest | ||
|
||
// HdrTypeObjSys is a HeaderType for system headers of object. | ||
HdrTypeObjSys | ||
|
||
// HdrTypeObjUsr is a HeaderType for user headers of object. | ||
HdrTypeObjUsr | ||
) | ||
|
||
const ( | ||
// HdrObjSysNameID is a name of ID field in system header of object. | ||
HdrObjSysNameID = "ID" | ||
|
||
// HdrObjSysNameCID is a name of CID field in system header of object. | ||
HdrObjSysNameCID = "CID" | ||
|
||
// HdrObjSysNameOwnerID is a name of OwnerID field in system header of object. | ||
HdrObjSysNameOwnerID = "OWNER_ID" | ||
|
||
// HdrObjSysNameVersion is a name of Version field in system header of object. | ||
HdrObjSysNameVersion = "VERSION" | ||
|
||
// HdrObjSysNamePayloadLength is a name of PayloadLength field in system header of object. | ||
HdrObjSysNamePayloadLength = "PAYLOAD_LENGTH" | ||
|
||
// HdrObjSysNameCreatedUnix is a name of CreatedAt.UnitTime field in system header of object. | ||
HdrObjSysNameCreatedUnix = "CREATED_UNIX" | ||
|
||
// HdrObjSysNameCreatedEpoch is a name of CreatedAt.Epoch field in system header of object. | ||
HdrObjSysNameCreatedEpoch = "CREATED_EPOCH" | ||
|
||
// HdrObjSysLinkPrev is a name of previous link header in extended headers of object. | ||
HdrObjSysLinkPrev = "LINK_PREV" | ||
|
||
// HdrObjSysLinkNext is a name of next link header in extended headers of object. | ||
HdrObjSysLinkNext = "LINK_NEXT" | ||
|
||
// HdrObjSysLinkChild is a name of child link header in extended headers of object. | ||
HdrObjSysLinkChild = "LINK_CHILD" | ||
|
||
// HdrObjSysLinkPar is a name of parent link header in extended headers of object. | ||
HdrObjSysLinkPar = "LINK_PAR" | ||
|
||
// HdrObjSysLinkSG is a name of storage group link header in extended headers of object. | ||
HdrObjSysLinkSG = "LINK_SG" | ||
) | ||
|
||
// SetMatchType is MatchType field setter. | ||
func (m *EACLRecord_FilterInfo) SetMatchType(v EACLRecord_FilterInfo_MatchType) { | ||
m.MatchType = v | ||
} | ||
|
||
// SetHeader is a Header field setter. | ||
func (m *EACLRecord_FilterInfo) SetHeader(v EACLRecord_FilterInfo_Header) { | ||
m.Header = v | ||
} | ||
|
||
// SetHeaderName is a HeaderName field setter. | ||
func (m *EACLRecord_FilterInfo) SetHeaderName(v string) { | ||
m.HeaderName = v | ||
} | ||
|
||
// SetHeaderVal is a HeaderVal field setter. | ||
func (m *EACLRecord_FilterInfo) SetHeaderVal(v string) { | ||
m.HeaderVal = v | ||
} | ||
|
||
// SetTarget is a Target field setter. | ||
func (m *EACLRecord_TargetInfo) SetTarget(v Target) { | ||
m.Target = v | ||
} | ||
|
||
// SetKeyList is a KeyList field setter. | ||
func (m *EACLRecord_TargetInfo) SetKeyList(v [][]byte) { | ||
m.KeyList = v | ||
} | ||
|
||
// SetOperation is an Operation field setter. | ||
func (m *EACLRecord) SetOperation(v EACLRecord_Operation) { | ||
m.Operation = v | ||
} | ||
|
||
// SetAction is an Action field setter. | ||
func (m *EACLRecord) SetAction(v EACLRecord_Action) { | ||
m.Action = v | ||
} | ||
|
||
// SetFilters is a Filters field setter. | ||
func (m *EACLRecord) SetFilters(v []*EACLRecord_FilterInfo) { | ||
m.Filters = v | ||
} | ||
|
||
// SetTargets is a Targets field setter. | ||
func (m *EACLRecord) SetTargets(v []*EACLRecord_TargetInfo) { | ||
m.Targets = v | ||
} | ||
|
||
// SetRecords is a Records field setter. | ||
func (m *EACLTable) SetRecords(v []*EACLRecord) { | ||
m.Records = v | ||
} |
Oops, something went wrong.