[#397] ir: Make UN-LOCODE attribute of the network map candidate optional

Previously UN-LOCODE attribute was required for each network map candidate.
In the absence of this attribute, the candidate was not allowed into the
network map. After revising the requirements for candidates, it was decided
not to require the mandatory installation of the attribute by candidates.

From now inner ring does not modify location attributes of the network map
candidate in the absence of UN-LOCODE attribute and does not block entry
into the network map for this criterion.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2021-02-24 21:18:36 +03:00 committed by Alex Vanin
parent 5f800458a3
commit bcfd33d9fb

View file

@ -6,14 +6,13 @@ import (
"github.com/pkg/errors"
)
var errMissingLocode = errors.New("missing locode attribute")
var errMissingRequiredAttr = errors.New("missing required attribute in DB record")
// VerifyAndUpdate validates UN-LOCODE attribute of n
// and adds a group of related attributes.
//
// If n does not contain UN-LOCODE attribute or its value does not
// If n does not contain UN-LOCODE attribute, nil is returned
// without any actions. Otherwise, if UN-LOCODE value does not
// match the UN/LOCODE format, an error returns.
//
// New attributes are formed from the record of DB instance (Prm).
@ -32,7 +31,7 @@ func (v *Validator) VerifyAndUpdate(n *netmap.NodeInfo) error {
attrLocode, ok := mAttr[netmap.AttrUNLOCODE]
if !ok {
return errMissingLocode
return nil
}
lc, err := locode.FromString(attrLocode.Value())