forked from TrueCloudLab/frostfs-node
[#1048] control: Add marshalling and setters to ListShards
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
parent
a42b3d37f6
commit
a6b3e16975
2 changed files with 267 additions and 0 deletions
|
@ -594,3 +594,157 @@ func (x *DropObjectsResponse) ReadSignedData(buf []byte) ([]byte, error) {
|
||||||
func (x *DropObjectsResponse) SignedDataSize() int {
|
func (x *DropObjectsResponse) SignedDataSize() int {
|
||||||
return x.GetBody().StableSize()
|
return x.GetBody().StableSize()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// StableMarshal reads binary representation of list shards request body
|
||||||
|
// in protobuf binary format.
|
||||||
|
//
|
||||||
|
// If buffer length is less than x.StableSize(), new buffer is allocated.
|
||||||
|
//
|
||||||
|
// Returns any error encountered which did not allow writing the data completely.
|
||||||
|
// Otherwise, returns the buffer in which the data is written.
|
||||||
|
//
|
||||||
|
// Structures with the same field values have the same binary format.
|
||||||
|
func (x *ListShardsRequest_Body) StableMarshal(buf []byte) ([]byte, error) {
|
||||||
|
return buf, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// StableSize returns binary size of list shards request body
|
||||||
|
// in protobuf binary format.
|
||||||
|
//
|
||||||
|
// Structures with the same field values have the same binary size.
|
||||||
|
func (x *ListShardsRequest_Body) StableSize() int {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetBody sets list shards request body.
|
||||||
|
func (x *ListShardsRequest) SetBody(v *ListShardsRequest_Body) {
|
||||||
|
if x != nil {
|
||||||
|
x.Body = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetSignature sets signature of the health check request body.
|
||||||
|
func (x *ListShardsRequest) SetSignature(body *Signature) {
|
||||||
|
if x != nil {
|
||||||
|
x.Signature = body
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReadSignedData reads signed data of list shard request to buf.
|
||||||
|
//
|
||||||
|
// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
|
||||||
|
//
|
||||||
|
// Returns any error encountered which did not allow writing the data completely.
|
||||||
|
// Otherwise, returns the buffer in which the data is written.
|
||||||
|
//
|
||||||
|
// Structures with the same field values have the same signed data.
|
||||||
|
func (x *ListShardsRequest) ReadSignedData(buf []byte) ([]byte, error) {
|
||||||
|
return x.GetBody().StableMarshal(buf)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SignedDataSize returns binary size of the signed data
|
||||||
|
// of list shard request.
|
||||||
|
//
|
||||||
|
// Structures with the same field values have the same signed data size.
|
||||||
|
func (x *ListShardsRequest) SignedDataSize() int {
|
||||||
|
return x.GetBody().StableSize()
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetShards sets shards of the storage node.
|
||||||
|
func (x *ListShardsResponse_Body) SetShards(v []*ShardInfo) {
|
||||||
|
if x != nil {
|
||||||
|
x.Shards = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_ = iota
|
||||||
|
listShardsRespBodyShardsFNum
|
||||||
|
)
|
||||||
|
|
||||||
|
// StableMarshal reads binary representation of list shards response body
|
||||||
|
// in protobuf binary format.
|
||||||
|
//
|
||||||
|
// If buffer length is less than x.StableSize(), new buffer is allocated.
|
||||||
|
//
|
||||||
|
// Returns any error encountered which did not allow writing the data completely.
|
||||||
|
// Otherwise, returns the buffer in which the data is written.
|
||||||
|
//
|
||||||
|
// Structures with the same field values have the same binary format.
|
||||||
|
func (x *ListShardsResponse_Body) StableMarshal(buf []byte) ([]byte, error) {
|
||||||
|
if x == nil {
|
||||||
|
return []byte{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if sz := x.StableSize(); len(buf) < sz {
|
||||||
|
buf = make([]byte, sz)
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
offset, n int
|
||||||
|
err error
|
||||||
|
)
|
||||||
|
|
||||||
|
for i := range x.Shards {
|
||||||
|
n, err = proto.NestedStructureMarshal(listShardsRespBodyShardsFNum, buf[offset:], x.Shards[i])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
offset += n
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// StableSize returns binary size of list shards response body
|
||||||
|
// in protobuf binary format.
|
||||||
|
//
|
||||||
|
// Structures with the same field values have the same binary size.
|
||||||
|
func (x *ListShardsResponse_Body) StableSize() int {
|
||||||
|
if x == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
size := 0
|
||||||
|
|
||||||
|
for i := range x.Shards {
|
||||||
|
size += proto.NestedStructureSize(listShardsRespBodyShardsFNum, x.Shards[i])
|
||||||
|
}
|
||||||
|
|
||||||
|
return size
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetBody sets list shards response body.
|
||||||
|
func (x *ListShardsResponse) SetBody(v *ListShardsResponse_Body) {
|
||||||
|
if x != nil {
|
||||||
|
x.Body = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetSignature sets signature of the list shards response body.
|
||||||
|
func (x *ListShardsResponse) SetSignature(v *Signature) {
|
||||||
|
if x != nil {
|
||||||
|
x.Signature = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReadSignedData reads signed data of list shards response to buf.
|
||||||
|
//
|
||||||
|
// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
|
||||||
|
//
|
||||||
|
// Returns any error encountered which did not allow writing the data completely.
|
||||||
|
// Otherwise, returns the buffer in which the data is written.
|
||||||
|
//
|
||||||
|
// Structures with the same field values have the same signed data.
|
||||||
|
func (x *ListShardsResponse) ReadSignedData(buf []byte) ([]byte, error) {
|
||||||
|
return x.GetBody().StableMarshal(buf)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SignedDataSize returns binary size of the signed data
|
||||||
|
// of list shards response.
|
||||||
|
//
|
||||||
|
// Structures with the same field values have the same signed data size.
|
||||||
|
func (x *ListShardsResponse) SignedDataSize() int {
|
||||||
|
return x.GetBody().StableSize()
|
||||||
|
}
|
||||||
|
|
|
@ -316,3 +316,116 @@ func (x *Netmap) MarshalJSON() ([]byte, error) {
|
||||||
EmitUnpopulated: true,
|
EmitUnpopulated: true,
|
||||||
}.Marshal(x)
|
}.Marshal(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetID sets identificator of the shard.
|
||||||
|
func (x *ShardInfo) SetID(v []byte) {
|
||||||
|
x.Shard_ID = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetMetabasePath sets path to shard's metabase.
|
||||||
|
func (x *ShardInfo) SetMetabasePath(v string) {
|
||||||
|
x.MetabasePath = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetBlobstorePath sets path to shard's blobstore.
|
||||||
|
func (x *ShardInfo) SetBlobstorePath(v string) {
|
||||||
|
x.BlobstorePath = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetWriteCachePath sets path to shard's write-cache.
|
||||||
|
func (x *ShardInfo) SetWriteCachePath(v string) {
|
||||||
|
x.WritecachePath = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetMode sets path to shard's work mode.
|
||||||
|
func (x *ShardInfo) SetMode(v ShardMode) {
|
||||||
|
x.Mode = v
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_ = iota
|
||||||
|
shardInfoIDFNum
|
||||||
|
shardInfoMetabaseFNum
|
||||||
|
shardInfoBlobstoreFNum
|
||||||
|
shardInfoWriteCacheFNum
|
||||||
|
shardInfoModeFNum
|
||||||
|
)
|
||||||
|
|
||||||
|
// StableSize returns binary size of shard information
|
||||||
|
// in protobuf binary format.
|
||||||
|
//
|
||||||
|
// Structures with the same field values have the same binary size.
|
||||||
|
func (x *ShardInfo) StableSize() int {
|
||||||
|
if x == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
size := 0
|
||||||
|
|
||||||
|
size += proto.BytesSize(shardInfoIDFNum, x.Shard_ID)
|
||||||
|
size += proto.StringSize(shardInfoMetabaseFNum, x.MetabasePath)
|
||||||
|
size += proto.StringSize(shardInfoBlobstoreFNum, x.BlobstorePath)
|
||||||
|
size += proto.StringSize(shardInfoWriteCacheFNum, x.WritecachePath)
|
||||||
|
size += proto.EnumSize(shardInfoModeFNum, int32(x.Mode))
|
||||||
|
|
||||||
|
return size
|
||||||
|
}
|
||||||
|
|
||||||
|
// StableMarshal reads binary representation of shard information
|
||||||
|
// in protobuf binary format.
|
||||||
|
//
|
||||||
|
// If buffer length is less than x.StableSize(), new buffer is allocated.
|
||||||
|
//
|
||||||
|
// Returns any error encountered which did not allow writing the data completely.
|
||||||
|
// Otherwise, returns the buffer in which the data is written.
|
||||||
|
//
|
||||||
|
// Structures with the same field values have the same binary format.
|
||||||
|
func (x *ShardInfo) StableMarshal(buf []byte) ([]byte, error) {
|
||||||
|
if x == nil {
|
||||||
|
return []byte{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if sz := x.StableSize(); len(buf) < sz {
|
||||||
|
buf = make([]byte, sz)
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
offset, n int
|
||||||
|
err error
|
||||||
|
)
|
||||||
|
|
||||||
|
n, err = proto.BytesMarshal(shardInfoIDFNum, buf[offset:], x.Shard_ID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
offset += n
|
||||||
|
|
||||||
|
n, err = proto.StringMarshal(shardInfoMetabaseFNum, buf[offset:], x.MetabasePath)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
offset += n
|
||||||
|
|
||||||
|
n, err = proto.StringMarshal(shardInfoBlobstoreFNum, buf[offset:], x.BlobstorePath)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
offset += n
|
||||||
|
|
||||||
|
n, err = proto.StringMarshal(shardInfoWriteCacheFNum, buf[offset:], x.WritecachePath)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
offset += n
|
||||||
|
|
||||||
|
_, err = proto.EnumMarshal(shardInfoModeFNum, buf[offset:], int32(x.Mode))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf, nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue