forked from TrueCloudLab/frostfs-api-go
[#362] netmap: Add marshaling of the subnetID field of container policy
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
parent
d93828f465
commit
3604d96f3f
4 changed files with 33 additions and 0 deletions
|
@ -216,6 +216,7 @@ func (p *PlacementPolicy) ToGRPCMessage() grpc.Message {
|
|||
m.SetSelectors(SelectorsToGRPC(p.selectors))
|
||||
m.SetReplicas(ReplicasToGRPC(p.replicas))
|
||||
m.SetContainerBackupFactor(p.backupFactor)
|
||||
m.SetSubnetID(p.subnetID.ToGRPCMessage().(*refsGRPC.SubnetID))
|
||||
}
|
||||
|
||||
return m
|
||||
|
@ -244,6 +245,20 @@ func (p *PlacementPolicy) FromGRPCMessage(m grpc.Message) error {
|
|||
return err
|
||||
}
|
||||
|
||||
subnetID := v.GetSubnetId()
|
||||
if subnetID == nil {
|
||||
p.subnetID = nil
|
||||
} else {
|
||||
if p.subnetID == nil {
|
||||
p.subnetID = new(refs.SubnetID)
|
||||
}
|
||||
|
||||
err = p.subnetID.FromGRPCMessage(subnetID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
p.backupFactor = v.GetContainerBackupFactor()
|
||||
|
||||
return nil
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package netmap
|
||||
|
||||
import refs "github.com/nspcc-dev/neofs-api-go/v2/refs/grpc"
|
||||
|
||||
// SetReplicas of placement policy.
|
||||
func (m *PlacementPolicy) SetReplicas(v []*Replica) {
|
||||
if m != nil {
|
||||
|
@ -28,6 +30,13 @@ func (m *PlacementPolicy) SetFilters(v []*Filter) {
|
|||
}
|
||||
}
|
||||
|
||||
// SetSubnetID sets ID of subnet.
|
||||
func (m *PlacementPolicy) SetSubnetID(v *refs.SubnetID) {
|
||||
if m != nil {
|
||||
m.SubnetId = v
|
||||
}
|
||||
}
|
||||
|
||||
// SetName of placement filter.
|
||||
func (m *Filter) SetName(v string) {
|
||||
if m != nil {
|
||||
|
|
|
@ -26,6 +26,7 @@ const (
|
|||
backupPolicyField = 2
|
||||
selectorsPolicyField = 3
|
||||
filtersPolicyField = 4
|
||||
subnetIDPolicyField = 5
|
||||
|
||||
keyAttributeField = 1
|
||||
valueAttributeField = 2
|
||||
|
@ -262,6 +263,11 @@ func (p *PlacementPolicy) StableMarshal(buf []byte) ([]byte, error) {
|
|||
offset += n
|
||||
}
|
||||
|
||||
_, err = protoutil.NestedStructureMarshal(subnetIDPolicyField, buf[offset:], p.subnetID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return buf, nil
|
||||
}
|
||||
|
||||
|
@ -280,6 +286,8 @@ func (p *PlacementPolicy) StableSize() (size int) {
|
|||
size += protoutil.NestedStructureSize(filtersPolicyField, p.filters[i])
|
||||
}
|
||||
|
||||
size += protoutil.NestedStructureSize(subnetIDPolicyField, p.subnetID)
|
||||
|
||||
return size
|
||||
}
|
||||
|
||||
|
|
|
@ -102,6 +102,7 @@ func GeneratePlacementPolicy(empty bool) *netmap.PlacementPolicy {
|
|||
m.SetFilters(GenerateFilters(false))
|
||||
m.SetSelectors(GenerateSelectors(false))
|
||||
m.SetReplicas(GenerateReplicas(false))
|
||||
m.SetSubnetID(refstest.GenerateSubnetID(false))
|
||||
}
|
||||
|
||||
return m
|
||||
|
|
Loading…
Reference in a new issue