mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-22 15:48:44 +05:00
Replace *timings with *cronexp
This commit is contained in:
committed by
Dan Christian Bogos
parent
95d4a6cd96
commit
acb604ebd8
@@ -1220,7 +1220,7 @@ func (dm *DataManager) GetTiming(id string, skipCache bool,
|
||||
}
|
||||
t, err = dm.dataDB.GetTimingDrv(id)
|
||||
if err != nil {
|
||||
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaTimings]; err == utils.ErrNotFound && itm.Remote {
|
||||
if itm := config.CgrConfig().DataDbCfg().Items[utils.CacheTimings]; err == utils.ErrNotFound && itm.Remote {
|
||||
if err = dm.connMgr.Call(context.TODO(), config.CgrConfig().DataDbCfg().RmtConns, utils.ReplicatorSv1GetTiming,
|
||||
&utils.StringWithAPIOpts{
|
||||
Arg: id,
|
||||
@@ -1261,7 +1261,7 @@ func (dm *DataManager) SetTiming(ctx *context.Context, t *utils.TPTiming) (err e
|
||||
if err = dm.CacheDataFromDB(ctx, utils.TimingsPrefix, []string{t.ID}, true); err != nil {
|
||||
return
|
||||
}
|
||||
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaTimings]; itm.Replicate {
|
||||
if itm := config.CgrConfig().DataDbCfg().Items[utils.CacheTimings]; itm.Replicate {
|
||||
err = replicate(context.TODO(), dm.connMgr, config.CgrConfig().DataDbCfg().RplConns,
|
||||
config.CgrConfig().DataDbCfg().RplFiltered,
|
||||
utils.TimingsPrefix, t.ID, // this are used to get the host IDs from cache
|
||||
@@ -1285,7 +1285,7 @@ func (dm *DataManager) RemoveTiming(id, transactionID string) (err error) {
|
||||
cacheCommit(transactionID), transactionID); errCh != nil {
|
||||
return errCh
|
||||
}
|
||||
if config.CgrConfig().DataDbCfg().Items[utils.MetaTimings].Replicate {
|
||||
if config.CgrConfig().DataDbCfg().Items[utils.CacheTimings].Replicate {
|
||||
replicate(context.TODO(), dm.connMgr, config.CgrConfig().DataDbCfg().RplConns,
|
||||
config.CgrConfig().DataDbCfg().RplFiltered,
|
||||
utils.TimingsPrefix, id, // this are used to get the host IDs from cache
|
||||
|
||||
@@ -222,19 +222,19 @@ func (fltr *Filter) Compile() (err error) {
|
||||
|
||||
var supportedFiltersType utils.StringSet = utils.NewStringSet([]string{
|
||||
utils.MetaString, utils.MetaPrefix, utils.MetaSuffix,
|
||||
utils.MetaTimings, utils.MetaRSR, utils.MetaDestinations,
|
||||
utils.MetaCronExp, utils.MetaRSR, utils.MetaDestinations,
|
||||
utils.MetaEmpty, utils.MetaExists, utils.MetaLessThan, utils.MetaLessOrEqual,
|
||||
utils.MetaGreaterThan, utils.MetaGreaterOrEqual, utils.MetaEqual,
|
||||
utils.MetaNotEqual, utils.MetaIPNet, utils.MetaAPIBan,
|
||||
utils.MetaActivationInterval})
|
||||
var needsFieldName utils.StringSet = utils.NewStringSet([]string{
|
||||
utils.MetaString, utils.MetaPrefix, utils.MetaSuffix,
|
||||
utils.MetaTimings, utils.MetaRSR, utils.MetaDestinations, utils.MetaLessThan,
|
||||
utils.MetaCronExp, utils.MetaRSR, utils.MetaDestinations, utils.MetaLessThan,
|
||||
utils.MetaEmpty, utils.MetaExists, utils.MetaLessOrEqual, utils.MetaGreaterThan,
|
||||
utils.MetaGreaterOrEqual, utils.MetaEqual, utils.MetaNotEqual, utils.MetaIPNet, utils.MetaAPIBan,
|
||||
utils.MetaActivationInterval})
|
||||
var needsValues utils.StringSet = utils.NewStringSet([]string{utils.MetaString, utils.MetaPrefix,
|
||||
utils.MetaSuffix, utils.MetaTimings, utils.MetaRSR, utils.MetaDestinations,
|
||||
utils.MetaSuffix, utils.MetaCronExp, utils.MetaRSR, utils.MetaDestinations,
|
||||
utils.MetaLessThan, utils.MetaLessOrEqual, utils.MetaGreaterThan, utils.MetaGreaterOrEqual,
|
||||
utils.MetaEqual, utils.MetaNotEqual, utils.MetaIPNet, utils.MetaAPIBan,
|
||||
utils.MetaActivationInterval})
|
||||
@@ -341,8 +341,8 @@ func (fltr *FilterRule) Pass(ctx *context.Context, dDP utils.DataProvider) (resu
|
||||
result, err = fltr.passStringPrefix(dDP)
|
||||
case utils.MetaSuffix, utils.MetaNotSuffix:
|
||||
result, err = fltr.passStringSuffix(dDP)
|
||||
case utils.MetaTimings, utils.MetaNotTimings:
|
||||
result, err = fltr.passTimings(dDP)
|
||||
case utils.MetaCronExp, utils.MetaNotCronExp:
|
||||
result, err = fltr.passCronExp(ctx, dDP)
|
||||
case utils.MetaDestinations, utils.MetaNotDestinations:
|
||||
result, err = fltr.passDestinations(ctx, dDP)
|
||||
case utils.MetaRSR, utils.MetaNotRSR:
|
||||
@@ -472,8 +472,31 @@ func (fltr *FilterRule) passStringSuffix(dDP utils.DataProvider) (bool, error) {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
// ToDo when Timings will be available in DataDb
|
||||
func (fltr *FilterRule) passTimings(dDP utils.DataProvider) (bool, error) {
|
||||
func (fltr *FilterRule) passCronExp(ctx *context.Context, dDP utils.DataProvider) (bool, error) {
|
||||
// tm, err := fltr.rsrElement.ParseDataProvider(dDP)
|
||||
// if err != nil {
|
||||
// if err == utils.ErrNotFound {
|
||||
// return false, nil
|
||||
// }
|
||||
// return false, err
|
||||
// }
|
||||
// tmTime, err := utils.IfaceAsTime(tm, config.CgrConfig().GeneralCfg().DefaultTimezone)
|
||||
// if err != nil {
|
||||
// return false, err
|
||||
// }
|
||||
|
||||
// for _, valCronIDVal := range fltr.rsrValues {
|
||||
// valTmID, err := valCronIDVal.ParseDataProvider(dDP)
|
||||
// if err != nil {
|
||||
// return false, err
|
||||
// }
|
||||
|
||||
// if err = connMgr.Call(ctx, config.CgrConfig().FilterSCfg().AdminSConns, utils.APIerSv1GetTPTiming, ,); err != nil {
|
||||
// continue
|
||||
// }
|
||||
|
||||
// }
|
||||
// return false, nil
|
||||
return false, utils.ErrNotImplemented
|
||||
}
|
||||
|
||||
|
||||
@@ -247,17 +247,6 @@ func TestFilterNewRequestFilter(t *testing.T) {
|
||||
if !reflect.DeepEqual(erf, rf) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", erf, rf)
|
||||
}
|
||||
// rf, err = NewFilterRule(utils.MetaTimings, "~MetaTimings", []string{""})
|
||||
// if err != nil {
|
||||
// t.Errorf("Error: %+v", err)
|
||||
// }
|
||||
// erf = &FilterRule{Type: utils.MetaTimings, Element: "~MetaTimings", Values: []string{""}, negative: utils.BoolPointer(false)}
|
||||
// if err = erf.CompileValues(); err != nil {
|
||||
// t.Fatal(err)
|
||||
// }
|
||||
// if !reflect.DeepEqual(erf, rf) {
|
||||
// t.Errorf("Expecting: %+v, received: %+v", erf, rf)
|
||||
// }
|
||||
rf, err = NewFilterRule(utils.MetaDestinations, "~MetaDestinations", []string{"1001"})
|
||||
if err != nil {
|
||||
t.Errorf("Error: %+v", err)
|
||||
@@ -1107,3 +1096,21 @@ func TestFilterPassRSRFieldsWithMultplieValues(t *testing.T) {
|
||||
t.Error("Not passing")
|
||||
}
|
||||
}
|
||||
|
||||
// func TestFilterPassCronExp(t *testing.T) {
|
||||
// ev := utils.MapStorage{
|
||||
// utils.MetaReq: utils.MapStorage{
|
||||
// utils.AnswerTime: "2018-01-07T17:00:10Z",
|
||||
// },
|
||||
// }
|
||||
|
||||
// cfg := config.NewDefaultCGRConfig()
|
||||
// dm := NewDataManager(NewInternalDB(nil, nil, true), cfg.CacheCfg(), nil)
|
||||
// fltr := NewFilterS(cfg, nil, dm)
|
||||
|
||||
// if passes, err := fltr.Pass(context.Background(), "cgrates.org", []string{"*cronexp:~*req.AnswerTime:* 10-12 * * *"}, ev); err != nil {
|
||||
// t.Error(err)
|
||||
// } else if !passes {
|
||||
// t.Error("Not passing")
|
||||
// }
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user