github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/storagegroup/convert.go (about) 1 package storagegroup 2 3 import ( 4 "github.com/TrueCloudLab/frostfs-api-go/v2/refs" 5 refsGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/refs/grpc" 6 "github.com/TrueCloudLab/frostfs-api-go/v2/rpc/grpc" 7 "github.com/TrueCloudLab/frostfs-api-go/v2/rpc/message" 8 sg "github.com/TrueCloudLab/frostfs-api-go/v2/storagegroup/grpc" 9 ) 10 11 func (s *StorageGroup) ToGRPCMessage() grpc.Message { 12 m := new(sg.StorageGroup) 13 14 if s != nil { 15 m = new(sg.StorageGroup) 16 17 m.SetMembers(refs.ObjectIDListToGRPCMessage(s.members)) 18 //nolint:staticcheck 19 m.SetExpirationEpoch(s.exp) 20 m.SetValidationDataSize(s.size) 21 m.SetValidationHash(s.hash.ToGRPCMessage().(*refsGRPC.Checksum)) 22 } 23 24 return m 25 } 26 27 func (s *StorageGroup) FromGRPCMessage(m grpc.Message) error { 28 v, ok := m.(*sg.StorageGroup) 29 if !ok { 30 return message.NewUnexpectedMessageType(m, v) 31 } 32 33 var err error 34 35 hash := v.GetValidationHash() 36 if hash == nil { 37 s.hash = nil 38 } else { 39 if s.hash == nil { 40 s.hash = new(refs.Checksum) 41 } 42 43 err = s.hash.FromGRPCMessage(hash) 44 if err != nil { 45 return err 46 } 47 } 48 49 s.members, err = refs.ObjectIDListFromGRPCMessage(v.GetMembers()) 50 if err != nil { 51 return err 52 } 53 54 //nolint:staticcheck 55 s.exp = v.GetExpirationEpoch() 56 s.size = v.GetValidationDataSize() 57 58 return nil 59 }