forked from TrueCloudLab/frostfs-node
[#665] node: Bind length of copies number to number of replicas
Allow to use one digit in copies number array for backward compatibility. Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
This commit is contained in:
parent
91f3745b58
commit
fe5aa06a75
2 changed files with 21 additions and 8 deletions
|
@ -58,6 +58,9 @@ var errNilBuilder = errors.New("placement builder is nil")
|
|||
|
||||
var errNilPolicy = errors.New("placement policy is nil")
|
||||
|
||||
var errCopiesNumberLen = errors.New("copies number accepts only one number or array with length " +
|
||||
"equal to length of replicas")
|
||||
|
||||
func defaultCfg() *cfg {
|
||||
return &cfg{
|
||||
trackCopies: true,
|
||||
|
@ -74,6 +77,11 @@ func NewTraverser(opts ...Option) (*Traverser, error) {
|
|||
}
|
||||
}
|
||||
|
||||
cnLen := len(cfg.copyNumbers)
|
||||
if cnLen > 0 && cnLen != 1 && cnLen != cfg.policy.NumberOfReplicas() {
|
||||
return nil, errCopiesNumberLen
|
||||
}
|
||||
|
||||
if cfg.builder == nil {
|
||||
return nil, fmt.Errorf("%s: %w", invalidOptsMsg, errNilBuilder)
|
||||
} else if !cfg.policySet {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue