diff --git a/config/config_defaults.go b/config/config_defaults.go index 4d127292f..7430184e1 100755 --- a/config/config_defaults.go +++ b/config/config_defaults.go @@ -118,6 +118,7 @@ const CGRATES_CFG_JSON = ` "scheduler": { "enabled": false, // start Scheduler service: "cdrs_conns": [], // connections to CDRs for *cdrlog actions <*internal|x.y.z.y:1234> + "filters": [], // only execute actions matching these filters }, diff --git a/config/config_json_test.go b/config/config_json_test.go index 6edae14b5..e53a6c782 100755 --- a/config/config_json_test.go +++ b/config/config_json_test.go @@ -263,6 +263,7 @@ func TestDfSchedulerJsonCfg(t *testing.T) { eCfg := &SchedulerJsonCfg{ Enabled: utils.BoolPointer(false), Cdrs_conns: &[]*RemoteHostJson{}, + Filters: &[]string{}, } if cfg, err := dfCgrJsonCfg.SchedulerJsonCfg(); err != nil { t.Error(err) diff --git a/config/config_test.go b/config/config_test.go index 29057d5d6..f976d7e05 100755 --- a/config/config_test.go +++ b/config/config_test.go @@ -502,8 +502,8 @@ func TestCgrCfgJSONDefaultsScheduler(t *testing.T) { eSchedulerCfg := &SchedulerCfg{ Enabled: false, CDRsConns: []*RemoteHost{}, + Filters: []string{}, } - if !reflect.DeepEqual(cgrCfg.schedulerCfg, eSchedulerCfg) { t.Errorf("received: %+v, expecting: %+v", cgrCfg.schedulerCfg, eSchedulerCfg) } diff --git a/config/libconfig_json.go b/config/libconfig_json.go index 23c470bb2..911544fbc 100755 --- a/config/libconfig_json.go +++ b/config/libconfig_json.go @@ -117,6 +117,7 @@ type RalsJsonCfg struct { type SchedulerJsonCfg struct { Enabled *bool Cdrs_conns *[]*RemoteHostJson + Filters *[]string } // Cdrs config section diff --git a/config/schedulercfg.go b/config/schedulercfg.go index ffa470b47..6c0fb3994 100755 --- a/config/schedulercfg.go +++ b/config/schedulercfg.go @@ -21,6 +21,7 @@ package config type SchedulerCfg struct { Enabled bool CDRsConns []*RemoteHost + Filters []string } func (schdcfg *SchedulerCfg) loadFromJsonCfg(jsnCfg *SchedulerJsonCfg) error { @@ -30,7 +31,6 @@ func (schdcfg *SchedulerCfg) loadFromJsonCfg(jsnCfg *SchedulerJsonCfg) error { if jsnCfg.Enabled != nil { schdcfg.Enabled = *jsnCfg.Enabled } - if jsnCfg.Cdrs_conns != nil { schdcfg.CDRsConns = make([]*RemoteHost, len(*jsnCfg.Cdrs_conns)) for idx, jsnHaCfg := range *jsnCfg.Cdrs_conns { @@ -38,5 +38,11 @@ func (schdcfg *SchedulerCfg) loadFromJsonCfg(jsnCfg *SchedulerJsonCfg) error { schdcfg.CDRsConns[idx].loadFromJsonCfg(jsnHaCfg) } } + if jsnCfg.Filters != nil { + schdcfg.Filters = make([]string, len(*jsnCfg.Filters)) + for i, fltr := range *jsnCfg.Filters { + schdcfg.Filters[i] = fltr + } + } return nil }