forked from TrueCloudLab/frostfs-sdk-go
[#205] netmap: Add well-known EC parameters to network config
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
parent
70e9e40c7f
commit
e9be3e6d94
2 changed files with 58 additions and 0 deletions
|
@ -62,6 +62,8 @@ func (x *NetworkInfo) readFromV2(m netmap.NetworkInfo, checkFieldPresence bool)
|
||||||
configEpochDuration,
|
configEpochDuration,
|
||||||
configIRCandidateFee,
|
configIRCandidateFee,
|
||||||
configMaxObjSize,
|
configMaxObjSize,
|
||||||
|
configMaxECDataCount,
|
||||||
|
configMaxECParityCount,
|
||||||
configWithdrawalFee:
|
configWithdrawalFee:
|
||||||
_, err = decodeConfigValueUint64(prm.GetValue())
|
_, err = decodeConfigValueUint64(prm.GetValue())
|
||||||
case configHomomorphicHashingDisabled,
|
case configHomomorphicHashingDisabled,
|
||||||
|
@ -234,6 +236,8 @@ func (x *NetworkInfo) IterateRawNetworkParameters(f func(name string, value []by
|
||||||
configEpochDuration,
|
configEpochDuration,
|
||||||
configIRCandidateFee,
|
configIRCandidateFee,
|
||||||
configMaxObjSize,
|
configMaxObjSize,
|
||||||
|
configMaxECDataCount,
|
||||||
|
configMaxECParityCount,
|
||||||
configWithdrawalFee,
|
configWithdrawalFee,
|
||||||
configHomomorphicHashingDisabled,
|
configHomomorphicHashingDisabled,
|
||||||
configMaintenanceModeAllowed:
|
configMaintenanceModeAllowed:
|
||||||
|
@ -432,6 +436,34 @@ func (x NetworkInfo) MaxObjectSize() uint64 {
|
||||||
return x.configUint64(configMaxObjSize)
|
return x.configUint64(configMaxObjSize)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const configMaxECDataCount = "MaxECDataCount"
|
||||||
|
|
||||||
|
// SetMaxECDataCount sets maximum number of data shards for erasure codes.
|
||||||
|
//
|
||||||
|
// Zero means no restrictions.
|
||||||
|
func (x *NetworkInfo) SetMaxECDataCount(dataCount uint64) {
|
||||||
|
x.setConfigUint64(configMaxECDataCount, dataCount)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MaxECDataCount returns maximum number of data shards for erasure codes.
|
||||||
|
func (x NetworkInfo) MaxECDataCount() uint64 {
|
||||||
|
return x.configUint64(configMaxECDataCount)
|
||||||
|
}
|
||||||
|
|
||||||
|
const configMaxECParityCount = "MaxECParityCount"
|
||||||
|
|
||||||
|
// SetMaxECParityCount sets maximum number of parity shards for erasure codes.
|
||||||
|
//
|
||||||
|
// Zero means no restrictions.
|
||||||
|
func (x *NetworkInfo) SetMaxECParityCount(parityCount uint64) {
|
||||||
|
x.setConfigUint64(configMaxECParityCount, parityCount)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MaxECParityCount returns maximum number of parity shards for erasure codes.
|
||||||
|
func (x NetworkInfo) MaxECParityCount() uint64 {
|
||||||
|
return x.configUint64(configMaxECParityCount)
|
||||||
|
}
|
||||||
|
|
||||||
const configWithdrawalFee = "WithdrawFee"
|
const configWithdrawalFee = "WithdrawFee"
|
||||||
|
|
||||||
// SetWithdrawalFee sets fee for withdrawals from the FrostFS accounts that
|
// SetWithdrawalFee sets fee for withdrawals from the FrostFS accounts that
|
||||||
|
|
|
@ -173,6 +173,32 @@ func TestNetworkInfo_MaxObjectSize(t *testing.T) {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNetworkInfo_MaxECDataCount(t *testing.T) {
|
||||||
|
testConfigValue(t,
|
||||||
|
func(x NetworkInfo) any { return x.MaxECDataCount() },
|
||||||
|
func(info *NetworkInfo, val any) { info.SetMaxECDataCount(val.(uint64)) },
|
||||||
|
uint64(1), uint64(2),
|
||||||
|
"MaxECDataCount", func(val any) []byte {
|
||||||
|
data := make([]byte, 8)
|
||||||
|
binary.LittleEndian.PutUint64(data, val.(uint64))
|
||||||
|
return data
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNetworkInfo_MaxECParityCount(t *testing.T) {
|
||||||
|
testConfigValue(t,
|
||||||
|
func(x NetworkInfo) any { return x.MaxECParityCount() },
|
||||||
|
func(info *NetworkInfo, val any) { info.SetMaxECParityCount(val.(uint64)) },
|
||||||
|
uint64(1), uint64(2),
|
||||||
|
"MaxECParityCount", func(val any) []byte {
|
||||||
|
data := make([]byte, 8)
|
||||||
|
binary.LittleEndian.PutUint64(data, val.(uint64))
|
||||||
|
return data
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
func TestNetworkInfo_WithdrawalFee(t *testing.T) {
|
func TestNetworkInfo_WithdrawalFee(t *testing.T) {
|
||||||
testConfigValue(t,
|
testConfigValue(t,
|
||||||
func(x NetworkInfo) any { return x.WithdrawalFee() },
|
func(x NetworkInfo) any { return x.WithdrawalFee() },
|
||||||
|
|
Loading…
Reference in a new issue