forked from TrueCloudLab/frostfs-api-go
[#20] Remove storage groups
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
parent
d989c8d2a3
commit
022f818735
8 changed files with 0 additions and 269 deletions
|
@ -1,59 +0,0 @@
|
||||||
package storagegroup
|
|
||||||
|
|
||||||
import (
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
|
||||||
refsGRPC "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
|
||||||
sg "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/storagegroup/grpc"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *StorageGroup) ToGRPCMessage() grpc.Message {
|
|
||||||
m := new(sg.StorageGroup)
|
|
||||||
|
|
||||||
if s != nil {
|
|
||||||
m = new(sg.StorageGroup)
|
|
||||||
|
|
||||||
m.SetMembers(refs.ObjectIDListToGRPCMessage(s.members))
|
|
||||||
//nolint:staticcheck
|
|
||||||
m.SetExpirationEpoch(s.exp)
|
|
||||||
m.SetValidationDataSize(s.size)
|
|
||||||
m.SetValidationHash(s.hash.ToGRPCMessage().(*refsGRPC.Checksum))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *StorageGroup) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
v, ok := m.(*sg.StorageGroup)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
var err error
|
|
||||||
|
|
||||||
hash := v.GetValidationHash()
|
|
||||||
if hash == nil {
|
|
||||||
s.hash = nil
|
|
||||||
} else {
|
|
||||||
if s.hash == nil {
|
|
||||||
s.hash = new(refs.Checksum)
|
|
||||||
}
|
|
||||||
|
|
||||||
err = s.hash.FromGRPCMessage(hash)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
s.members, err = refs.ObjectIDListFromGRPCMessage(v.GetMembers())
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
//nolint:staticcheck
|
|
||||||
s.exp = v.GetExpirationEpoch()
|
|
||||||
s.size = v.GetValidationDataSize()
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
package storagegroup
|
|
||||||
|
|
||||||
import (
|
|
||||||
refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SetValidationDataSize sets the total size of the payloads of the storage group.
|
|
||||||
func (m *StorageGroup) SetValidationDataSize(v uint64) {
|
|
||||||
m.ValidationDataSize = v
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetValidationHash sets total homomorphic hash of the storage group payloads.
|
|
||||||
func (m *StorageGroup) SetValidationHash(v *refs.Checksum) {
|
|
||||||
m.ValidationHash = v
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetExpirationEpoch sets number of the last epoch of the storage group lifetime.
|
|
||||||
//
|
|
||||||
// Deprecated: do not use, `expiration_epoch` field is deprecated in protocol.
|
|
||||||
func (m *StorageGroup) SetExpirationEpoch(v uint64) {
|
|
||||||
m.ExpirationEpoch = v
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetMembers sets list of the identifiers of the storage group members.
|
|
||||||
func (m *StorageGroup) SetMembers(v []*refs.ObjectID) {
|
|
||||||
m.Members = v
|
|
||||||
}
|
|
BIN
storagegroup/grpc/types.pb.go
generated
BIN
storagegroup/grpc/types.pb.go
generated
Binary file not shown.
|
@ -1,14 +0,0 @@
|
||||||
package storagegroup
|
|
||||||
|
|
||||||
import (
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
|
||||||
storagegroup "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/storagegroup/grpc"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *StorageGroup) MarshalJSON() ([]byte, error) {
|
|
||||||
return message.MarshalJSON(s)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *StorageGroup) UnmarshalJSON(data []byte) error {
|
|
||||||
return message.UnmarshalJSON(s, data, new(storagegroup.StorageGroup))
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
package storagegroup
|
|
||||||
|
|
||||||
import (
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
|
||||||
storagegroup "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/storagegroup/grpc"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
sizeField = 1
|
|
||||||
hashField = 2
|
|
||||||
expirationField = 3
|
|
||||||
objectIDsField = 4
|
|
||||||
)
|
|
||||||
|
|
||||||
// StableMarshal marshals unified storage group structure in a protobuf
|
|
||||||
// compatible way without field order shuffle.
|
|
||||||
func (s *StorageGroup) StableMarshal(buf []byte) []byte {
|
|
||||||
if s == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, s.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
|
|
||||||
offset += proto.UInt64Marshal(sizeField, buf[offset:], s.size)
|
|
||||||
offset += proto.NestedStructureMarshal(hashField, buf[offset:], s.hash)
|
|
||||||
offset += proto.UInt64Marshal(expirationField, buf[offset:], s.exp)
|
|
||||||
refs.ObjectIDNestedListMarshal(objectIDsField, buf[offset:], s.members)
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
// StableSize of storage group structure marshalled by StableMarshal function.
|
|
||||||
func (s *StorageGroup) StableSize() (size int) {
|
|
||||||
if s == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
size += proto.UInt64Size(sizeField, s.size)
|
|
||||||
size += proto.NestedStructureSize(hashField, s.hash)
|
|
||||||
size += proto.UInt64Size(expirationField, s.exp)
|
|
||||||
size += refs.ObjectIDNestedListSize(objectIDsField, s.members)
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *StorageGroup) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(s, data, new(storagegroup.StorageGroup))
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
package storagegroup_test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
|
||||||
messagetest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message/test"
|
|
||||||
storagegrouptest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/storagegroup/test"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestMessageConvert(t *testing.T) {
|
|
||||||
messagetest.TestRPCMessage(t,
|
|
||||||
func(empty bool) message.Message { return storagegrouptest.GenerateStorageGroup(empty) },
|
|
||||||
)
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
package storagegrouptest
|
|
||||||
|
|
||||||
import (
|
|
||||||
refstest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/test"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/storagegroup"
|
|
||||||
)
|
|
||||||
|
|
||||||
func GenerateStorageGroup(empty bool) *storagegroup.StorageGroup {
|
|
||||||
m := new(storagegroup.StorageGroup)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetValidationDataSize(44)
|
|
||||||
//nolint:staticcheck
|
|
||||||
m.SetExpirationEpoch(55)
|
|
||||||
m.SetMembers(refstest.GenerateObjectIDs(false))
|
|
||||||
}
|
|
||||||
|
|
||||||
m.SetValidationHash(refstest.GenerateChecksum(empty))
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
|
@ -1,79 +0,0 @@
|
||||||
package storagegroup
|
|
||||||
|
|
||||||
import (
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
|
||||||
)
|
|
||||||
|
|
||||||
// StorageGroup is a unified structure of StorageGroup
|
|
||||||
// message from proto definition.
|
|
||||||
type StorageGroup struct {
|
|
||||||
size uint64
|
|
||||||
|
|
||||||
hash *refs.Checksum
|
|
||||||
|
|
||||||
exp uint64
|
|
||||||
|
|
||||||
members []refs.ObjectID
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetValidationDataSize of unified storage group structure.
|
|
||||||
func (s *StorageGroup) GetValidationDataSize() uint64 {
|
|
||||||
if s != nil {
|
|
||||||
return s.size
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetValidationDataSize into unified storage group structure.
|
|
||||||
func (s *StorageGroup) SetValidationDataSize(v uint64) {
|
|
||||||
s.size = v
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetValidationHash of unified storage group structure.
|
|
||||||
func (s *StorageGroup) GetValidationHash() *refs.Checksum {
|
|
||||||
if s != nil {
|
|
||||||
return s.hash
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetValidationHash into unified storage group structure.
|
|
||||||
func (s *StorageGroup) SetValidationHash(v *refs.Checksum) {
|
|
||||||
s.hash = v
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetExpirationEpoch of unified storage group structure.
|
|
||||||
//
|
|
||||||
// Deprecated: Do not use.
|
|
||||||
func (s *StorageGroup) GetExpirationEpoch() uint64 {
|
|
||||||
if s != nil {
|
|
||||||
return s.exp
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetExpirationEpoch into unified storage group structure.
|
|
||||||
//
|
|
||||||
// Deprecated: Do not use.
|
|
||||||
func (s *StorageGroup) SetExpirationEpoch(v uint64) {
|
|
||||||
s.exp = v
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetMembers of unified storage group structure. Members are objects of
|
|
||||||
// storage group.
|
|
||||||
func (s *StorageGroup) GetMembers() []refs.ObjectID {
|
|
||||||
if s != nil {
|
|
||||||
return s.members
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetMembers into unified storage group structure. Members are objects of
|
|
||||||
// storage group.
|
|
||||||
func (s *StorageGroup) SetMembers(v []refs.ObjectID) {
|
|
||||||
s.members = v
|
|
||||||
}
|
|
Loading…
Reference in a new issue