[#121] clientt: Make PrmContainerSetEACL fields public

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
This commit is contained in:
Airat Arifullin 2023-08-18 17:54:51 +03:00
parent 6fdbe75517
commit 22978303f8

View file

@ -18,20 +18,20 @@ import (
// PrmContainerSetEACL groups parameters of ContainerSetEACL operation. // PrmContainerSetEACL groups parameters of ContainerSetEACL operation.
type PrmContainerSetEACL struct { type PrmContainerSetEACL struct {
prmCommonMeta // FrostFS request X-Headers.
XHeaders []string
tableSet bool Table *eacl.Table
table eacl.Table
sessionSet bool Session *session.Container
session session.Container
} }
// SetTable sets eACL table structure to be set for the container. // SetTable sets eACL table structure to be set for the container.
// Required parameter. // Required parameter.
//
// Deprecated: Use PrmContainerSetEACL.Table instead.
func (x *PrmContainerSetEACL) SetTable(table eacl.Table) { func (x *PrmContainerSetEACL) SetTable(table eacl.Table) {
x.table = table x.Table = &table
x.tableSet = true
} }
// WithinSession specifies session within which extended ACL of the container // WithinSession specifies session within which extended ACL of the container
@ -45,17 +45,22 @@ func (x *PrmContainerSetEACL) SetTable(table eacl.Table) {
// for which extended ACL is going to be set // for which extended ACL is going to be set
// - session operation MUST be session.VerbContainerSetEACL (ForVerb) // - session operation MUST be session.VerbContainerSetEACL (ForVerb)
// - token MUST be signed using private key of the owner of the container to be saved // - token MUST be signed using private key of the owner of the container to be saved
//
// Deprecated: Use PrmContainerSetEACL.Session instead.
func (x *PrmContainerSetEACL) WithinSession(s session.Container) { func (x *PrmContainerSetEACL) WithinSession(s session.Container) {
x.session = s x.Session = &s
x.sessionSet = true
} }
func (x *PrmContainerSetEACL) buildRequest(c *Client) (*v2container.SetExtendedACLRequest, error) { func (x *PrmContainerSetEACL) buildRequest(c *Client) (*v2container.SetExtendedACLRequest, error) {
if !x.tableSet { if x.Table == nil {
return nil, errorEACLTableNotSet return nil, errorEACLTableNotSet
} }
eaclV2 := x.table.ToV2() if len(x.XHeaders)%2 != 0 {
return nil, errorInvalidXHeaders
}
eaclV2 := x.Table.ToV2()
var sig frostfscrypto.Signature var sig frostfscrypto.Signature
@ -72,11 +77,11 @@ func (x *PrmContainerSetEACL) buildRequest(c *Client) (*v2container.SetExtendedA
reqBody.SetSignature(&sigv2) reqBody.SetSignature(&sigv2)
var meta v2session.RequestMetaHeader var meta v2session.RequestMetaHeader
writeXHeadersToMeta(x.prmCommonMeta.xHeaders, &meta) writeXHeadersToMeta(x.XHeaders, &meta)
if x.sessionSet { if x.Session != nil {
var tokv2 v2session.Token var tokv2 v2session.Token
x.session.WriteToV2(&tokv2) x.Session.WriteToV2(&tokv2)
meta.SetSessionToken(&tokv2) meta.SetSessionToken(&tokv2)
} }