mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
AgentRequest selectors returning ErrNotFound in case of not matching
This commit is contained in:
@@ -127,6 +127,13 @@ func (ar *AgentRequest) AsNavigableMap(tplFlds []*config.FCTemplate) (
|
||||
}
|
||||
out, err := ar.ParseField(tplFld)
|
||||
if err != nil {
|
||||
if err == utils.ErrNotFound {
|
||||
if !tplFld.Mandatory {
|
||||
err = nil
|
||||
continue
|
||||
}
|
||||
err = utils.ErrPrefixNotFound(tplFld.Tag)
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
var valSet []*config.NMItem
|
||||
|
||||
@@ -209,7 +209,7 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.DARequestProcessor,
|
||||
utils.MetaDryRun, utils.MetaAuth,
|
||||
utils.MetaInitiate, utils.MetaUpdate,
|
||||
utils.MetaTerminate, utils.MetaEvent,
|
||||
utils.MetaCDRs} {
|
||||
utils.MetaCDRs, utils.META_NONE} {
|
||||
if reqProcessor.Flags.HasKey(typ) { // request type is identified through flags
|
||||
reqType = typ
|
||||
break
|
||||
@@ -223,6 +223,7 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.DARequestProcessor,
|
||||
switch reqType {
|
||||
default:
|
||||
return false, fmt.Errorf("unknown request type: <%s>", reqType)
|
||||
case utils.META_NONE: // do nothing on CGRateS side
|
||||
case utils.MetaDryRun:
|
||||
utils.Logger.Info(
|
||||
fmt.Sprintf("<%s> DRY_RUN, processorID: %s, CGREvent: %s",
|
||||
|
||||
@@ -358,8 +358,7 @@ func (dP *diameterDP) FieldAsInterface(fldPath []string) (data interface{}, err
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if len(fltrAVPs) == 0 || len(fltrAVPs) != len(avps) {
|
||||
return nil, fmt.Errorf("%s for selector %s",
|
||||
utils.ErrFilterNotPassingNoCaps.Error(), slctr.AttrName())
|
||||
return nil, utils.ErrNotFound
|
||||
}
|
||||
for k, fAVP := range fltrAVPs {
|
||||
if dataAVP, err := diamAVPAsIface(fAVP); err != nil {
|
||||
|
||||
@@ -165,3 +165,7 @@ func ErrHasPrefix(err error, prfx string) (has bool) {
|
||||
func ErrEnvNotFound(key string) error {
|
||||
return errors.New("ENV_VAR_NOT_FOUND:" + key)
|
||||
}
|
||||
|
||||
func ErrPrefixNotFound(reason string) error {
|
||||
return fmt.Errorf("%s:%s", ErrNotFound.Error(), reason)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user