diff --git a/apier/v1/dispatcher_it_test.go b/apier/v1/dispatcher_it_test.go index ede6b20e5..eceb6f744 100644 --- a/apier/v1/dispatcher_it_test.go +++ b/apier/v1/dispatcher_it_test.go @@ -86,7 +86,7 @@ var ( } ) -//Test start here +// Test start here func TestDispatcherSIT(t *testing.T) { sTestsDispatcherCacheSV1 := sTestsDispatcher switch *dbType { @@ -180,7 +180,7 @@ func testDispatcherSSetDispatcherProfile(t *testing.T) { if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfile, &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, - &reply); err == nil || err.Error() != utils.ErrNotFound.Error() { + &reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() { t.Error(err) } @@ -275,14 +275,14 @@ func testDispatcherSRemDispatcherProfile(t *testing.T) { var dsp *engine.DispatcherProfile if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfile, &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, - &dsp); err == nil || err.Error() != utils.ErrNotFound.Error() { + &dsp); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() { t.Error(err) } if err := dispatcherRPC.Call(utils.APIerSv1RemoveDispatcherProfile, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}}, - &result); err.Error() != utils.ErrNotFound.Error() { - t.Errorf("Expected error: %v received: %v", utils.ErrNotFound, err) + &result); err.Error() != utils.ErrDSPProfileNotFound.Error() { + t.Errorf("Expected error: %v received: %v", utils.ErrDSPProfileNotFound, err) } } @@ -290,7 +290,7 @@ func testDispatcherSSetDispatcherHost(t *testing.T) { var reply string if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherHost, &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, - &reply); err == nil || err.Error() != utils.ErrNotFound.Error() { + &reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() { t.Error(err) } @@ -389,14 +389,14 @@ func testDispatcherSRemDispatcherHost(t *testing.T) { var dsp *engine.DispatcherHost if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherHost, &utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"}, - &dsp); err == nil || err.Error() != utils.ErrNotFound.Error() { + &dsp); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() { t.Error(err) } if err := dispatcherRPC.Call(utils.APIerSv1RemoveDispatcherHost, &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"}}, - &result); err.Error() != utils.ErrNotFound.Error() { - t.Errorf("Expected error: %v received: %v", utils.ErrNotFound, err) + &result); err.Error() != utils.ErrDSPHostNotFound.Error() { + t.Errorf("Expected error: %v received: %v", utils.ErrDSPHostNotFound, err) } } @@ -471,7 +471,7 @@ func testDispatcherSRemDispatcherProfileWithoutTenant(t *testing.T) { var result *engine.DispatcherProfile if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherProfile, &utils.TenantID{ID: "Dsp1"}, - &result); err == nil || err.Error() != utils.ErrNotFound.Error() { + &result); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() { t.Error(err) } } @@ -514,7 +514,7 @@ func testDispatcherSRemDispatcherHostWithoutTenant(t *testing.T) { var result *engine.DispatcherHost if err := dispatcherRPC.Call(utils.APIerSv1GetDispatcherHost, &utils.TenantID{ID: "DspHst7"}, - &result); err == nil || err.Error() != utils.ErrNotFound.Error() { + &result); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() { t.Error(err) } } @@ -525,7 +525,7 @@ func testDispatcherSCacheTestGetNotFound(t *testing.T) { &utils.TenantID{ Tenant: "cgrates.org", ID: "DISPATCHER_CACHE", - }, &suplsReply); err == nil || err.Error() != utils.ErrNotFound.Error() { + }, &suplsReply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() { t.Error(err) } } diff --git a/apier/v1/filter_indexes.go b/apier/v1/filter_indexes.go index bc96c6ec4..a93f646f3 100644 --- a/apier/v1/filter_indexes.go +++ b/apier/v1/filter_indexes.go @@ -361,7 +361,7 @@ func (apierSv1 *APIerSv1) ComputeFilterIndexes(args *utils.ArgsComputeFilterInde fltrIDs[i] = fltrID } return &fltrIDs, nil - }, nil); err != nil && err != utils.ErrNotFound { + }, nil); err != nil && err != utils.ErrDSPProfileNotFound { return utils.APIErrorHandler(err) } args.DispatcherS = indexes.Size() != 0 @@ -570,7 +570,7 @@ func (apierSv1 *APIerSv1) ComputeFilterIndexIDs(args *utils.ArgsComputeFilterInd fltrIDs[i] = fltrID } return &fltrIDs, nil - }, nil); err != nil && err != utils.ErrNotFound { + }, nil); err != nil && err != utils.ErrDSPProfileNotFound { return utils.APIErrorHandler(err) } if indexes.Size() != 0 { diff --git a/apier/v1/remote_it_test.go b/apier/v1/remote_it_test.go index 221ebb4ba..3666396c7 100644 --- a/apier/v1/remote_it_test.go +++ b/apier/v1/remote_it_test.go @@ -603,7 +603,7 @@ func testInternalRemoteITGetDispatcherProfile(t *testing.T) { var reply string if err := internalRPC.Call(utils.APIerSv1GetDispatcherProfile, &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, - &reply); err == nil || err.Error() != utils.ErrNotFound.Error() { + &reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() { t.Error(err) } @@ -640,7 +640,7 @@ func testInternalRemoteITGetDispatcherHost(t *testing.T) { var reply string if err := internalRPC.Call(utils.APIerSv1GetDispatcherHost, &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, - &reply); err == nil || err.Error() != utils.ErrNotFound.Error() { + &reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() { t.Error(err) } diff --git a/apier/v1/replicate_it_test.go b/apier/v1/replicate_it_test.go index f5b7a8f7c..61023067e 100644 --- a/apier/v1/replicate_it_test.go +++ b/apier/v1/replicate_it_test.go @@ -492,12 +492,12 @@ func testInternalReplicateITDispatcherProfile(t *testing.T) { var reply string if err := engineOneRPC.Call(utils.APIerSv1GetDispatcherProfile, &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, - &reply); err == nil || err.Error() != utils.ErrNotFound.Error() { + &reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() { t.Error(err) } if err := engineTwoRPC.Call(utils.APIerSv1GetDispatcherProfile, &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, - &reply); err == nil || err.Error() != utils.ErrNotFound.Error() { + &reply); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() { t.Error(err) } // set @@ -543,16 +543,16 @@ func testInternalReplicateITDispatcherProfile(t *testing.T) { } // remove again if err := internalRPC.Call(utils.APIerSv1RemoveDispatcherProfile, - &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}}, &result); err == nil || err.Error() != utils.ErrNotFound.Error() { + &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}}, &result); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() { t.Error(err) } // check again if err := engineOneRPC.Call(utils.APIerSv1GetDispatcherProfile, - &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, &dsp); err == nil || err.Error() != utils.ErrNotFound.Error() { + &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, &dsp); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() { t.Error(err) } if err := engineTwoRPC.Call(utils.APIerSv1GetDispatcherProfile, - &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, &dsp); err == nil || err.Error() != utils.ErrNotFound.Error() { + &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, &dsp); err == nil || err.Error() != utils.ErrDSPProfileNotFound.Error() { t.Error(err) } } @@ -627,12 +627,12 @@ func testInternalReplicateITDispatcherHost(t *testing.T) { var reply string if err := engineOneRPC.Call(utils.APIerSv1GetDispatcherHost, &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, - &reply); err == nil || err.Error() != utils.ErrNotFound.Error() { + &reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() { t.Error(err) } if err := engineTwoRPC.Call(utils.APIerSv1GetDispatcherHost, &utils.TenantID{Tenant: "cgrates.org", ID: "Dsp1"}, - &reply); err == nil || err.Error() != utils.ErrNotFound.Error() { + &reply); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() { t.Error(err) } dispatcherHost = &engine.DispatcherHostWithAPIOpts{ @@ -679,12 +679,12 @@ func testInternalReplicateITDispatcherHost(t *testing.T) { //check if err := engineOneRPC.Call(utils.APIerSv1GetDispatcherHost, &utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"}, - &dsp); err == nil || err.Error() != utils.ErrNotFound.Error() { + &dsp); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() { t.Error(err) } if err := engineTwoRPC.Call(utils.APIerSv1GetDispatcherHost, &utils.TenantID{Tenant: "cgrates.org", ID: "DspHst1"}, - &dsp); err == nil || err.Error() != utils.ErrNotFound.Error() { + &dsp); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() { t.Error(err) } } diff --git a/data/conf/samples/dispatcher_opts_apier/cgrates.json b/data/conf/samples/dispatcher_opts_apier/cgrates.json index 8faf1bb44..098ee5563 100644 --- a/data/conf/samples/dispatcher_opts_apier/cgrates.json +++ b/data/conf/samples/dispatcher_opts_apier/cgrates.json @@ -35,6 +35,10 @@ "remote_conns": ["gob_cache"] }, +"attributes": { + "enabled": true, +}, + "apiers": { "enabled": true }, diff --git a/dispatchers/dispatchers.go b/dispatchers/dispatchers.go index b0afc6b12..70f1e3d7f 100644 --- a/dispatchers/dispatchers.go +++ b/dispatchers/dispatchers.go @@ -160,7 +160,7 @@ func (dS *DispatcherService) dispatcherProfilesForEvent(tnt string, ev *utils.CG for prflID := range prflIDs { prfl, err := dS.dm.GetDispatcherProfile(tnt, prflID, true, true, utils.NonTransactional) if err != nil { - if err != utils.ErrNotFound { + if err != utils.ErrDSPProfileNotFound { return nil, err } continue diff --git a/dispatchers/dispatchers_test.go b/dispatchers/dispatchers_test.go index e7da9773e..c2c3f6f48 100644 --- a/dispatchers/dispatchers_test.go +++ b/dispatchers/dispatchers_test.go @@ -926,7 +926,7 @@ func TestDispatcherServiceDispatchDspErrHostNotFound(t *testing.T) { } subsys := utils.IfaceAsString(ev.APIOpts[utils.MetaSubsys]) err = dss.Dispatch(ev, subsys, "", "", "") - expected := "HOST_NOT_FOUND" + expected := "DSP_HOST_NOT_FOUND" if err == nil || err.Error() != expected { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } @@ -1146,7 +1146,7 @@ func TestDispatcherServiceDispatchDspErrHostNotFound2(t *testing.T) { } subsys := utils.IfaceAsString(ev.APIOpts[utils.MetaSubsys]) err = dss.Dispatch(ev, subsys, "", "", "") - expected := "HOST_NOT_FOUND" + expected := "DSP_HOST_NOT_FOUND" if err == nil || err.Error() != expected { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } diff --git a/dispatchers/libdispatcher.go b/dispatchers/libdispatcher.go index c76519164..d23a1bf5f 100644 --- a/dispatchers/libdispatcher.go +++ b/dispatchers/libdispatcher.go @@ -216,7 +216,7 @@ func (sd *singleResultDispatcher) Dispatch(dm *engine.DataManager, flts *engine. if hostIDs, err = sd.sorter.Sort(flts, ev, tnt, sd.hosts); err != nil { return } else if len(hostIDs) == 0 { // in case we do not match any host - return utils.ErrHostNotFound + return utils.ErrDSPHostNotFound } for _, hostID := range hostIDs { var dRh *DispatcherRoute @@ -229,7 +229,8 @@ func (sd *singleResultDispatcher) Dispatch(dm *engine.DataManager, flts *engine. } if err = callDHwithID(tnt, hostID, routeID, dRh, dm, serviceMethod, args, reply); err == nil || - (err != utils.ErrNotFound && !rpcclient.IsNetworkError(err)) { // successful dispatch with normal errors + err != utils.ErrDSPHostNotFound || + !rpcclient.IsNetworkError(err) { // successful dispatch with normal errors return } if err != nil { @@ -260,7 +261,7 @@ func (b *broadcastDispatcher) Dispatch(dm *engine.DataManager, flts *engine.Filt for _, hostID := range hostIDs { var dH *engine.DispatcherHost if dH, err = dm.GetDispatcherHost(tnt, hostID, true, true, utils.NonTransactional); err != nil { - if err == utils.ErrNotFound { + if err == utils.ErrDSPHostNotFound { utils.Logger.Warning(fmt.Sprintf("<%s> could not find host with ID %q", utils.DispatcherS, hostID)) err = nil @@ -284,7 +285,7 @@ func (b *broadcastDispatcher) Dispatch(dm *engine.DataManager, flts *engine.Filt }) } if !hasHosts { // in case we do not match any host - return utils.ErrHostNotFound + return utils.ErrDSPHostNotFound } return pool.Call(serviceMethod, args, reply) } @@ -325,7 +326,7 @@ func (ld *loadDispatcher) Dispatch(dm *engine.DataManager, flts *engine.FilterS, if hostIDs, err = ld.sorter.Sort(flts, ev, tnt, lM.getHosts(ld.hosts)); err != nil { return } else if len(hostIDs) == 0 { // in case we do not match any host - return utils.ErrHostNotFound + return utils.ErrDSPHostNotFound } for _, hostID := range hostIDs { var dRh *DispatcherRoute diff --git a/dispatchers/libdispatcher_test.go b/dispatchers/libdispatcher_test.go index fdba1cf0e..1c43d152b 100644 --- a/dispatchers/libdispatcher_test.go +++ b/dispatchers/libdispatcher_test.go @@ -389,7 +389,7 @@ func TestLibDispatcherSingleResultDispatcherDispatch(t *testing.T) { dataDB := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items) dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) err := wgDsp.Dispatch(dM, nil, nil, "", "", &DispatcherRoute{}, "", "", "") - expected := "HOST_NOT_FOUND" + expected := "DSP_HOST_NOT_FOUND" if err == nil || err.Error() != expected { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } @@ -400,7 +400,7 @@ func TestLibDispatcherSingleResultDispatcherDispatchRouteID(t *testing.T) { dataDB := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items) dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) err := wgDsp.Dispatch(dM, nil, nil, "", "routeID", &DispatcherRoute{}, "", "", "") - expected := "HOST_NOT_FOUND" + expected := "DSP_HOST_NOT_FOUND" if err == nil || err.Error() != expected { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } @@ -411,7 +411,7 @@ func TestLibDispatcherBroadcastDispatcherDispatch(t *testing.T) { dataDB := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items) dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) err := wgDsp.Dispatch(dM, nil, nil, "", "", &DispatcherRoute{}, "", "", "") - expected := "HOST_NOT_FOUND" + expected := "DSP_HOST_NOT_FOUND" if err == nil || err.Error() != expected { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } @@ -422,7 +422,7 @@ func TestLibDispatcherBroadcastDispatcherDispatchRouteID(t *testing.T) { dataDB := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items) dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) err := wgDsp.Dispatch(dM, nil, nil, "", "routeID", &DispatcherRoute{}, "", "", "") - expected := "HOST_NOT_FOUND" + expected := "DSP_HOST_NOT_FOUND" if err == nil || err.Error() != expected { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } @@ -433,7 +433,7 @@ func TestLibDispatcherLoadDispatcherDispatch(t *testing.T) { dataDB := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items) dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) err := wgDsp.Dispatch(dM, nil, nil, "", "", &DispatcherRoute{}, "", "", "") - expected := "HOST_NOT_FOUND" + expected := "DSP_HOST_NOT_FOUND" if err == nil || err.Error() != expected { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } @@ -450,7 +450,7 @@ func TestLibDispatcherLoadDispatcherDispatchHostsID(t *testing.T) { dataDB := engine.NewInternalDB(nil, nil, true, config.CgrConfig().DataDbCfg().Items) dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) err := wgDsp.Dispatch(dM, nil, nil, "", "routeID", &DispatcherRoute{}, "", "", "") - expected := "HOST_NOT_FOUND" + expected := "DSP_HOST_NOT_FOUND" if err == nil || err.Error() != expected { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } @@ -603,7 +603,7 @@ func TestLibDispatcherBroadcastDispatcherDispatchError2(t *testing.T) { nil, nil, true, utils.NonTransactional) wgDsp := &broadcastDispatcher{hosts: engine.DispatcherHostProfiles{{ID: "testID"}}} err := wgDsp.Dispatch(nil, nil, nil, "testTenant", "testID", &DispatcherRoute{}, "", "", "") - expected := "HOST_NOT_FOUND" + expected := "DSP_HOST_NOT_FOUND" if err == nil || err.Error() != expected { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } @@ -654,7 +654,7 @@ func TestLibDispatcherLoadDispatcherCacheError(t *testing.T) { value, nil, true, utils.NonTransactional) wgDsp := &loadDispatcher{sorter: new(noSort), hosts: engine.DispatcherHostProfiles{{ID: "testID"}}} err := wgDsp.Dispatch(nil, nil, nil, "testTenant", "testID", &DispatcherRoute{}, "", "", "") - expected := "HOST_NOT_FOUND" + expected := "DSP_HOST_NOT_FOUND" if err == nil || err.Error() != expected { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } diff --git a/engine/datadbmock.go b/engine/datadbmock.go index 795c193b7..20c49de1b 100644 --- a/engine/datadbmock.go +++ b/engine/datadbmock.go @@ -40,7 +40,7 @@ type DataDBMock struct { RemStatQueueProfileDrvF func(tenant, id string) (err error) } -//Storage methods +// Storage methods func (dbM *DataDBMock) Close() {} func (dbM *DataDBMock) Flush(string) error { @@ -78,7 +78,7 @@ func (dbM *DataDBMock) IsDBEmpty() (resp bool, err error) { return false, utils.ErrNotImplemented } -//DataDB methods +// DataDB methods func (dbM *DataDBMock) HasDataDrv(string, string, string) (bool, error) { return false, utils.ErrNotImplemented } diff --git a/engine/datamanager.go b/engine/datamanager.go index 0e1c6d83c..1b2d392ad 100644 --- a/engine/datamanager.go +++ b/engine/datamanager.go @@ -270,7 +270,7 @@ func (dm *DataManager) CacheDataFromDB(prfx string, ids []string, mustBeCached b _, err = dm.GetAPIBan(utils.EmptyString, config.CgrConfig().APIBanCfg().Keys, false, false, true) } if err != nil { - if err != utils.ErrNotFound { + if err != utils.ErrNotFound && err != utils.ErrDSPProfileNotFound && err != utils.ErrDSPHostNotFound { return utils.NewCGRError(utils.DataManager, utils.ServerErrorCaps, err.Error(), @@ -2768,7 +2768,7 @@ func (dm *DataManager) GetDispatcherProfile(tenant, id string, cacheRead, cacheW if cacheRead { if x, ok := Cache.Get(utils.CacheDispatcherProfiles, tntID); ok { if x == nil { - return nil, utils.ErrNotFound + return nil, utils.ErrDSPProfileNotFound } return x.(*DispatcherProfile), nil } @@ -2779,7 +2779,7 @@ func (dm *DataManager) GetDispatcherProfile(tenant, id string, cacheRead, cacheW } dpp, err = dm.dataDB.GetDispatcherProfileDrv(tenant, id) if err != nil { - if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaDispatcherProfiles]; err == utils.ErrNotFound && itm.Remote { + if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaDispatcherProfiles]; err == utils.ErrDSPProfileNotFound && itm.Remote { if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil, utils.ReplicatorSv1GetDispatcherProfile, &utils.TenantIDWithAPIOpts{ @@ -2793,7 +2793,7 @@ func (dm *DataManager) GetDispatcherProfile(tenant, id string, cacheRead, cacheW } if err != nil { err = utils.CastRPCErr(err) - if err == utils.ErrNotFound && cacheWrite { + if err == utils.ErrDSPProfileNotFound && cacheWrite { if errCh := Cache.Set(utils.CacheDispatcherProfiles, tntID, nil, nil, cacheCommit(transactionID), transactionID); errCh != nil { return nil, errCh @@ -2824,7 +2824,7 @@ func (dm *DataManager) SetDispatcherProfile(dpp *DispatcherProfile, withIndex bo } } oldDpp, err := dm.GetDispatcherProfile(dpp.Tenant, dpp.ID, true, false, utils.NonTransactional) - if err != nil && err != utils.ErrNotFound { + if err != nil && err != utils.ErrDSPProfileNotFound { return err } if err = dm.DataDB().SetDispatcherProfileDrv(dpp); err != nil { @@ -2860,14 +2860,14 @@ func (dm *DataManager) RemoveDispatcherProfile(tenant, id string, withIndex bool return utils.ErrNoDatabaseConn } oldDpp, err := dm.GetDispatcherProfile(tenant, id, true, false, utils.NonTransactional) - if err != nil && err != utils.ErrNotFound { + if err != nil && err != utils.ErrDSPProfileNotFound { return err } if err = dm.DataDB().RemoveDispatcherProfileDrv(tenant, id); err != nil { return } if oldDpp == nil { - return utils.ErrNotFound + return utils.ErrDSPProfileNotFound } if withIndex { if err = removeIndexFiltersItem(dm, utils.CacheDispatcherFilterIndexes, tenant, id, oldDpp.FilterIDs); err != nil { @@ -2899,7 +2899,7 @@ func (dm *DataManager) GetDispatcherHost(tenant, id string, cacheRead, cacheWrit if cacheRead { if x, ok := Cache.Get(utils.CacheDispatcherHosts, tntID); ok { if x == nil { - return nil, utils.ErrNotFound + return nil, utils.ErrDSPHostNotFound } return x.(*DispatcherHost), nil } @@ -2910,7 +2910,7 @@ func (dm *DataManager) GetDispatcherHost(tenant, id string, cacheRead, cacheWrit } dH, err = dm.dataDB.GetDispatcherHostDrv(tenant, id) if err != nil { - if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaDispatcherHosts]; err == utils.ErrNotFound && itm.Remote { + if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaDispatcherHosts]; err == utils.ErrDSPHostNotFound && itm.Remote { if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RmtConns, nil, utils.ReplicatorSv1GetDispatcherHost, &utils.TenantIDWithAPIOpts{ @@ -2924,7 +2924,7 @@ func (dm *DataManager) GetDispatcherHost(tenant, id string, cacheRead, cacheWrit } if err != nil { err = utils.CastRPCErr(err) - if err == utils.ErrNotFound && cacheWrite { + if err == utils.ErrDSPHostNotFound && cacheWrite { if errCh := Cache.Set(utils.CacheDispatcherHosts, tntID, nil, nil, cacheCommit(transactionID), transactionID); errCh != nil { return nil, errCh @@ -2968,14 +2968,14 @@ func (dm *DataManager) RemoveDispatcherHost(tenant, id string) (err error) { return utils.ErrNoDatabaseConn } oldDpp, err := dm.GetDispatcherHost(tenant, id, true, false, utils.NonTransactional) - if err != nil && err != utils.ErrNotFound { + if err != nil && err != utils.ErrDSPHostNotFound { return err } if err = dm.DataDB().RemoveDispatcherHostDrv(tenant, id); err != nil { return } if oldDpp == nil { - return utils.ErrNotFound + return utils.ErrDSPHostNotFound } if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaDispatcherHosts]; itm.Replicate { replicate(dm.connMgr, config.CgrConfig().DataDbCfg().RplConns, diff --git a/engine/libindex_health.go b/engine/libindex_health.go index 99dffb69a..c59c46910 100644 --- a/engine/libindex_health.go +++ b/engine/libindex_health.go @@ -372,7 +372,7 @@ func getIHObjFromCache(dm *DataManager, objCache *ltcache.Cache, indxType, tnt, var filtIDs []string var contexts *[]string if filtIDs, contexts, err = getFiltersAndContexts(dm, indxType, tnt, id); err != nil { - if err == utils.ErrNotFound { + if err == utils.ErrNotFound || err == utils.ErrDSPProfileNotFound || err == utils.ErrDSPHostNotFound { objCache.Set(cacheKey, nil, nil) } return @@ -581,7 +581,7 @@ func GetFltrIdxHealth(dm *DataManager, fltrCache, fltrIdxCache, objCache *ltcach for itmID := range idx { var obj *objFIH if obj, err = getIHObjFromCache(dm, objCache, indxType, tnt, itmID); err != nil { - if err != utils.ErrNotFound { + if err != utils.ErrNotFound && err != utils.ErrDSPHostNotFound && err != utils.ErrDSPProfileNotFound { return } missingObj.Add(utils.ConcatenatedKey(tnt, itmID)) diff --git a/engine/storage_internal_datadb.go b/engine/storage_internal_datadb.go index 8515c4d53..5d59d588d 100644 --- a/engine/storage_internal_datadb.go +++ b/engine/storage_internal_datadb.go @@ -726,7 +726,7 @@ func (iDB *InternalDB) RemoveChargerProfileDrv(tenant, id string) (err error) { func (iDB *InternalDB) GetDispatcherProfileDrv(tenant, id string) (dpp *DispatcherProfile, err error) { x, ok := iDB.db.Get(utils.CacheDispatcherProfiles, utils.ConcatenatedKey(tenant, id)) if !ok || x == nil { - return nil, utils.ErrNotFound + return nil, utils.ErrDSPProfileNotFound } return x.(*DispatcherProfile), nil } @@ -764,7 +764,7 @@ func (iDB *InternalDB) SetLoadIDsDrv(loadIDs map[string]int64) (err error) { func (iDB *InternalDB) GetDispatcherHostDrv(tenant, id string) (dpp *DispatcherHost, err error) { x, ok := iDB.db.Get(utils.CacheDispatcherHosts, utils.ConcatenatedKey(tenant, id)) if !ok || x == nil { - return nil, utils.ErrNotFound + return nil, utils.ErrDSPHostNotFound } return x.(*DispatcherHost), nil } diff --git a/engine/storage_mongo_datadb.go b/engine/storage_mongo_datadb.go index 54e6c51e1..fb4de5102 100644 --- a/engine/storage_mongo_datadb.go +++ b/engine/storage_mongo_datadb.go @@ -1774,7 +1774,7 @@ func (ms *MongoStorage) GetDispatcherProfileDrv(tenant, id string) (r *Dispatche if err := cur.Decode(r); err != nil { r = nil if err == mongo.ErrNoDocuments { - return utils.ErrNotFound + return utils.ErrDSPProfileNotFound } return err } @@ -1810,7 +1810,7 @@ func (ms *MongoStorage) GetDispatcherHostDrv(tenant, id string) (r *DispatcherHo if err := cur.Decode(r); err != nil { r = nil if err == mongo.ErrNoDocuments { - return utils.ErrNotFound + return utils.ErrDSPHostNotFound } return err } diff --git a/engine/storage_redis.go b/engine/storage_redis.go index 2437b5b49..0d5285199 100644 --- a/engine/storage_redis.go +++ b/engine/storage_redis.go @@ -1080,7 +1080,7 @@ func (rs *RedisStorage) GetDispatcherProfileDrv(tenant, id string) (r *Dispatche if err = rs.Cmd(&values, redis_GET, utils.DispatcherProfilePrefix+utils.ConcatenatedKey(tenant, id)); err != nil { return } else if len(values) == 0 { - err = utils.ErrNotFound + err = utils.ErrDSPProfileNotFound return } err = rs.ms.Unmarshal(values, &r) @@ -1104,7 +1104,7 @@ func (rs *RedisStorage) GetDispatcherHostDrv(tenant, id string) (r *DispatcherHo if err = rs.Cmd(&values, redis_GET, utils.DispatcherHostPrefix+utils.ConcatenatedKey(tenant, id)); err != nil { return } else if len(values) == 0 { - err = utils.ErrNotFound + err = utils.ErrDSPHostNotFound return } err = rs.ms.Unmarshal(values, &r) diff --git a/engine/z_onstor_it_test.go b/engine/z_onstor_it_test.go index 2f813e538..23ed23291 100644 --- a/engine/z_onstor_it_test.go +++ b/engine/z_onstor_it_test.go @@ -2162,7 +2162,7 @@ func testOnStorITDispatcherProfile(t *testing.T) { Weight: 20, } if _, rcvErr := onStor.GetDispatcherProfile("cgrates.org", "Dsp1", - true, false, utils.NonTransactional); rcvErr != nil && rcvErr != utils.ErrNotFound { + true, false, utils.NonTransactional); rcvErr != nil && rcvErr != utils.ErrDSPProfileNotFound { t.Error(rcvErr) } if err := onStor.SetDispatcherProfile(dpp, false); err != nil { @@ -2199,7 +2199,7 @@ func testOnStorITDispatcherProfile(t *testing.T) { } //check database if removed if _, rcvErr := onStor.GetDispatcherProfile("cgrates.org", "Dsp1", - false, false, utils.NonTransactional); rcvErr != nil && rcvErr != utils.ErrNotFound { + false, false, utils.NonTransactional); rcvErr != nil && rcvErr != utils.ErrDSPProfileNotFound { t.Error(rcvErr) } } diff --git a/general_tests/all_cfg_sect_rld_it_test.go b/general_tests/all_cfg_sect_rld_it_test.go index a7d36c5f3..298e08451 100644 --- a/general_tests/all_cfg_sect_rld_it_test.go +++ b/general_tests/all_cfg_sect_rld_it_test.go @@ -524,7 +524,7 @@ func testSectConfigSReloadEES(t *testing.T) { } else if reply != utils.OK { t.Errorf("Expected OK received: %+v", reply) } - cfgStr := "{\"ees\":{\"attributes_conns\":[],\"cache\":{\"*file_csv\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"5s\"}},\"enabled\":true,\"exporters\":[{\"attempts\":1,\"attribute_context\":\"\",\"attribute_ids\":[],\"concurrent_requests\":0,\"export_path\":\"/var/spool/cgrates/ees\",\"failed_posts_dir\":\"/var/spool/cgrates/failed_posts\",\"fields\":[],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{},\"synchronous\":false,\"timezone\":\"\",\"type\":\"*none\"}]}}" + cfgStr := "{\"ees\":{\"attributes_conns\":[],\"cache\":{\"*file_csv\":{\"limit\":-1,\"precache\":false,\"remote\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"5s\"}},\"enabled\":true,\"exporters\":[{\"attempts\":1,\"attribute_context\":\"\",\"attribute_ids\":[],\"concurrent_requests\":0,\"export_path\":\"/var/spool/cgrates/ees\",\"failed_posts_dir\":\"/var/spool/cgrates/failed_posts\",\"fields\":[],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{},\"synchronous\":false,\"timezone\":\"\",\"type\":\"*none\"}]}}" var rpl string if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{ Tenant: "cgrates.org", @@ -1274,8 +1274,7 @@ func testSectConfigSReloadDispatchers(t *testing.T) { } else if reply != utils.OK { t.Errorf("Expected OK received: %+v", reply) } - cfgStr := - "{\"dispatchers\":{\"any_subsystem\":true,\"attributes_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":true,\"prefix_indexed_fields\":[\"*internal\"],\"string_indexed_fields\":[\"*internal\"],\"suffix_indexed_fields\":[\"*internal\"]}}" + cfgStr := "{\"dispatchers\":{\"any_subsystem\":true,\"attributes_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":true,\"prefix_indexed_fields\":[\"*internal\"],\"prevent_loop\":false,\"string_indexed_fields\":[\"*internal\"],\"suffix_indexed_fields\":[\"*internal\"]}}" var rpl string if err := testSectRPC.Call(utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{ Tenant: "cgrates.org", @@ -1285,13 +1284,6 @@ func testSectConfigSReloadDispatchers(t *testing.T) { } else if cfgStr != rpl { t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl)) } - - var replyPingAf string - if err := testSectRPC.Call(utils.DispatcherSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil { - t.Error(err) - } else if replyPingAf != utils.Pong { - t.Errorf("Expected OK received: %s", replyPingAf) - } } func testSectConfigSReloadRegistrarC(t *testing.T) { diff --git a/loaders/loader_test.go b/loaders/loader_test.go index 387e9f2a5..5c889dd5e 100644 --- a/loaders/loader_test.go +++ b/loaders/loader_test.go @@ -2681,7 +2681,7 @@ cgrates.org,REM_DISPATCHERS_1 } //nothing to remvoe from database - if err := ldr.removeContent(utils.MetaDispatchers, utils.EmptyString); err != utils.ErrNotFound { + if err := ldr.removeContent(utils.MetaDispatchers, utils.EmptyString); err != utils.ErrDSPProfileNotFound { t.Error(err) } @@ -2772,7 +2772,7 @@ cgrates.org,REM_DISPATCHERH_1 } //nothing to remove from database - if err := ldr.removeContent(utils.MetaDispatcherHosts, utils.EmptyString); err != utils.ErrNotFound { + if err := ldr.removeContent(utils.MetaDispatcherHosts, utils.EmptyString); err != utils.ErrDSPHostNotFound { t.Error(err) } diff --git a/migrator/dispatchers_it_test.go b/migrator/dispatchers_it_test.go index 9a2fe8d4d..211d64d02 100644 --- a/migrator/dispatchers_it_test.go +++ b/migrator/dispatchers_it_test.go @@ -212,7 +212,7 @@ func testDspITMigrateAndMove(t *testing.T) { _, err = dspMigrator.dmOut.DataManager().GetDispatcherProfile("cgrates.org", "Dsp1", false, false, utils.NonTransactional) - if err != utils.ErrNotFound { + if err != utils.ErrDSPProfileNotFound { t.Error(err) } @@ -244,7 +244,7 @@ func testDspITMigrateAndMove(t *testing.T) { } resultHost, err = dspMigrator.dmIN.DataManager().GetDispatcherHost("cgrates.org", "ALL", false, false, utils.NonTransactional) - if err != utils.ErrNotFound { + if err != utils.ErrDSPHostNotFound { t.Error(err) } else if dspMigrator.stats[utils.Dispatchers] != 1 { t.Errorf("Expected 1, received: %v", dspMigrator.stats[utils.Dispatchers]) diff --git a/registrarc/registrarc_it_test.go b/registrarc/registrarc_it_test.go index 0e6b2763a..cf4d9610d 100644 --- a/registrarc/registrarc_it_test.go +++ b/registrarc/registrarc_it_test.go @@ -138,8 +138,8 @@ func testDsphGetNodeID() (id string, err error) { } func testDsphBeforeDsphStart(t *testing.T) { - if _, err := testDsphGetNodeID(); err == nil || err.Error() != utils.ErrHostNotFound.Error() { - t.Errorf("Expected error: %s received: %v", utils.ErrHostNotFound, err) + if _, err := testDsphGetNodeID(); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() { + t.Errorf("Expected error: %s received: %v", utils.ErrDSPHostNotFound, err) } } @@ -175,8 +175,8 @@ func testDsphStopEngines(t *testing.T) { t.Fatal(err) } time.Sleep(2 * time.Second) - if _, err := testDsphGetNodeID(); err == nil || err.Error() != utils.ErrHostNotFound.Error() { - t.Errorf("Expected error: %s received: %v", utils.ErrHostNotFound, err) + if _, err := testDsphGetNodeID(); err == nil || err.Error() != utils.ErrDSPHostNotFound.Error() { + t.Errorf("Expected error: %s received: %v", utils.ErrDSPHostNotFound, err) } } diff --git a/utils/errors.go b/utils/errors.go index b1baad919..8a535d2b6 100644 --- a/utils/errors.go +++ b/utils/errors.go @@ -28,7 +28,8 @@ var ( ErrNoMoreData = errors.New("NO_MORE_DATA") ErrNotImplemented = errors.New("NOT_IMPLEMENTED") ErrNotFound = errors.New("NOT_FOUND") - ErrHostNotFound = errors.New("HOST_NOT_FOUND") + ErrDSPHostNotFound = errors.New("DSP_HOST_NOT_FOUND") + ErrDSPProfileNotFound = errors.New("DSP_PROFILE_NOT_FOUND") ErrTimedOut = errors.New("TIMED_OUT") ErrServerError = errors.New("SERVER_ERROR") ErrMaxRecursionDepth = errors.New("MAX_RECURSION_DEPTH") @@ -81,6 +82,8 @@ var ( ErrMap = map[string]error{ ErrNoMoreData.Error(): ErrNoMoreData, ErrNotImplemented.Error(): ErrNotImplemented, + ErrDSPProfileNotFound.Error(): ErrDSPProfileNotFound, + ErrDSPHostNotFound.Error(): ErrDSPHostNotFound, ErrNotFound.Error(): ErrNotFound, ErrTimedOut.Error(): ErrTimedOut, ErrServerError.Error(): ErrServerError, @@ -115,7 +118,7 @@ var ( ErrMaxIncrementsExceeded.Error(): ErrMaxIncrementsExceeded, ErrIndexOutOfBounds.Error(): ErrIndexOutOfBounds, ErrWrongPath.Error(): ErrWrongPath, - ErrHostNotFound.Error(): ErrHostNotFound, + ErrDSPHostNotFound.Error(): ErrDSPHostNotFound, } ) @@ -216,7 +219,7 @@ func APIErrorHandler(errIn error) (err error) { cgrErr, ok := errIn.(*CGRError) if !ok { err = errIn - if err != ErrNotFound { + if err != ErrNotFound && err != ErrDSPProfileNotFound && err != ErrDSPHostNotFound { err = NewErrServerError(err) } return