forked from TrueCloudLab/frostfs-api-go
v2/container: Implement Container uni-structure
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
9f4d24b592
commit
ae2e951b77
2 changed files with 241 additions and 0 deletions
104
v2/container/convert.go
Normal file
104
v2/container/convert.go
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
package container
|
||||||
|
|
||||||
|
import (
|
||||||
|
container "github.com/nspcc-dev/neofs-api-go/v2/container/grpc"
|
||||||
|
"github.com/nspcc-dev/neofs-api-go/v2/netmap"
|
||||||
|
"github.com/nspcc-dev/neofs-api-go/v2/refs"
|
||||||
|
"github.com/nspcc-dev/neofs-api-go/v2/service"
|
||||||
|
)
|
||||||
|
|
||||||
|
func AttributeToGRPCMessage(a *Attribute) *container.Container_Attribute {
|
||||||
|
if a == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
m := new(container.Container_Attribute)
|
||||||
|
|
||||||
|
m.SetKey(a.GetKey())
|
||||||
|
m.SetValue(a.GetValue())
|
||||||
|
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
|
func AttributeFromGRPCMessage(m *container.Container_Attribute) *Attribute {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
a := new(Attribute)
|
||||||
|
|
||||||
|
a.SetKey(m.GetKey())
|
||||||
|
a.SetValue(m.GetValue())
|
||||||
|
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
|
||||||
|
func ContainerToGRPCMessage(c *Container) *container.Container {
|
||||||
|
if c == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
m := new(container.Container)
|
||||||
|
|
||||||
|
m.SetVersion(
|
||||||
|
service.VersionToGRPCMessage(c.GetVersion()),
|
||||||
|
)
|
||||||
|
|
||||||
|
m.SetOwnerId(
|
||||||
|
refs.OwnerIDToGRPCMessage(c.GetOwnerID()),
|
||||||
|
)
|
||||||
|
|
||||||
|
m.SetNonce(c.GetNonce())
|
||||||
|
|
||||||
|
m.SetBasicAcl(c.GetBasicACL())
|
||||||
|
|
||||||
|
m.SetPlacementPolicy(
|
||||||
|
netmap.PlacementPolicyToGRPCMessage(c.GetPlacementPolicy()),
|
||||||
|
)
|
||||||
|
|
||||||
|
attr := c.GetAttributes()
|
||||||
|
attrMsg := make([]*container.Container_Attribute, 0, len(attr))
|
||||||
|
|
||||||
|
for i := range attr {
|
||||||
|
attrMsg = append(attrMsg, AttributeToGRPCMessage(attr[i]))
|
||||||
|
}
|
||||||
|
|
||||||
|
m.SetAttributes(attrMsg)
|
||||||
|
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
|
func ContainerFromGRPCMessage(m *container.Container) *Container {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
c := new(Container)
|
||||||
|
|
||||||
|
c.SetVersion(
|
||||||
|
service.VersionFromGRPCMessage(m.GetVersion()),
|
||||||
|
)
|
||||||
|
|
||||||
|
c.SetOwnerID(
|
||||||
|
refs.OwnerIDFromGRPCMessage(m.GetOwnerId()),
|
||||||
|
)
|
||||||
|
|
||||||
|
c.SetNonce(m.GetNonce())
|
||||||
|
|
||||||
|
c.SetBasicACL(m.GetBasicAcl())
|
||||||
|
|
||||||
|
c.SetPlacementPolicy(
|
||||||
|
netmap.PlacementPolicyFromGRPCMessage(m.GetPlacementPolicy()),
|
||||||
|
)
|
||||||
|
|
||||||
|
attrMsg := m.GetAttributes()
|
||||||
|
attr := make([]*Attribute, 0, len(attrMsg))
|
||||||
|
|
||||||
|
for i := range attrMsg {
|
||||||
|
attr = append(attr, AttributeFromGRPCMessage(attrMsg[i]))
|
||||||
|
}
|
||||||
|
|
||||||
|
c.SetAttributes(attr)
|
||||||
|
|
||||||
|
return c
|
||||||
|
}
|
137
v2/container/types.go
Normal file
137
v2/container/types.go
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
package container
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/nspcc-dev/neofs-api-go/v2/netmap"
|
||||||
|
"github.com/nspcc-dev/neofs-api-go/v2/refs"
|
||||||
|
"github.com/nspcc-dev/neofs-api-go/v2/service"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Attribute struct {
|
||||||
|
key, val string
|
||||||
|
}
|
||||||
|
|
||||||
|
type Container struct {
|
||||||
|
version *service.Version
|
||||||
|
|
||||||
|
ownerID *refs.OwnerID
|
||||||
|
|
||||||
|
nonce []byte
|
||||||
|
|
||||||
|
basicACL uint32
|
||||||
|
|
||||||
|
attr []*Attribute
|
||||||
|
|
||||||
|
policy *netmap.PlacementPolicy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *Attribute) GetKey() string {
|
||||||
|
if a != nil {
|
||||||
|
return a.key
|
||||||
|
}
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *Attribute) SetKey(v string) {
|
||||||
|
if a != nil {
|
||||||
|
a.key = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *Attribute) GetValue() string {
|
||||||
|
if a != nil {
|
||||||
|
return a.val
|
||||||
|
}
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *Attribute) SetValue(v string) {
|
||||||
|
if a != nil {
|
||||||
|
a.val = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) GetVersion() *service.Version {
|
||||||
|
if c != nil {
|
||||||
|
return c.version
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) SetVersion(v *service.Version) {
|
||||||
|
if c != nil {
|
||||||
|
c.version = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) GetOwnerID() *refs.OwnerID {
|
||||||
|
if c != nil {
|
||||||
|
return c.ownerID
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) SetOwnerID(v *refs.OwnerID) {
|
||||||
|
if c != nil {
|
||||||
|
c.ownerID = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) GetNonce() []byte {
|
||||||
|
if c != nil {
|
||||||
|
return c.nonce
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) SetNonce(v []byte) {
|
||||||
|
if c != nil {
|
||||||
|
c.nonce = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) GetBasicACL() uint32 {
|
||||||
|
if c != nil {
|
||||||
|
return c.basicACL
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) SetBasicACL(v uint32) {
|
||||||
|
if c != nil {
|
||||||
|
c.basicACL = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) GetAttributes() []*Attribute {
|
||||||
|
if c != nil {
|
||||||
|
return c.attr
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) SetAttributes(v []*Attribute) {
|
||||||
|
if c != nil {
|
||||||
|
c.attr = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) GetPlacementPolicy() *netmap.PlacementPolicy {
|
||||||
|
if c != nil {
|
||||||
|
return c.policy
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Container) SetPlacementPolicy(v *netmap.PlacementPolicy) {
|
||||||
|
if c != nil {
|
||||||
|
c.policy = v
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue