mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
cfg: add stats/thresholds_conns to dns_agent
This commit is contained in:
committed by
Dan Christian Bogos
parent
b0fc13896d
commit
add2ee1971
@@ -1066,6 +1066,8 @@ const CGRATES_CFG_JSON = `
|
||||
}
|
||||
],
|
||||
"sessions_conns": ["*internal"],
|
||||
"stats_conns": [], // connections to StatS, empty to disable: <""|*internal|$rpc_conns_id>
|
||||
"thresholds_conns": [], // connections to ThresholdS, empty to disable: <""|*internal|$rpc_conns_id>
|
||||
"timezone": "", // timezone of the events if not specified <UTC|Local|$IANA_TZ_DB>
|
||||
"request_processors": [] // request processors to be applied to DNS messages
|
||||
},
|
||||
|
||||
@@ -548,7 +548,9 @@ func testCGRConfigReloadDNSAgent(t *testing.T) {
|
||||
Network: "tcp",
|
||||
},
|
||||
},
|
||||
SessionSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)},
|
||||
SessionSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)},
|
||||
StatSConns: []string{},
|
||||
ThresholdSConns: []string{},
|
||||
// Timezone string
|
||||
// RequestProcessors []*RequestProcessor
|
||||
}
|
||||
|
||||
@@ -813,9 +813,11 @@ func TestDNSAgentJsonCfg(t *testing.T) {
|
||||
},
|
||||
},
|
||||
|
||||
Sessions_conns: &[]string{utils.ConcatenatedKey(utils.MetaInternal)},
|
||||
Timezone: utils.StringPointer(""),
|
||||
Request_processors: &[]*ReqProcessorJsnCfg{},
|
||||
SessionSConns: &[]string{utils.ConcatenatedKey(utils.MetaInternal)},
|
||||
StatSConns: &[]string{},
|
||||
ThresholdSConns: &[]string{},
|
||||
Timezone: utils.StringPointer(""),
|
||||
RequestProcessors: &[]*ReqProcessorJsnCfg{},
|
||||
}
|
||||
dfCgrJSONCfg, err := NewCgrJsonCfgFromBytes([]byte(CGRATES_CFG_JSON))
|
||||
if err != nil {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -443,6 +443,22 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
return fmt.Errorf("<%s> connection with id: <%s> not defined", utils.DNSAgent, connID)
|
||||
}
|
||||
}
|
||||
for _, connID := range cfg.dnsAgentCfg.StatSConns {
|
||||
if strings.HasPrefix(connID, utils.MetaInternal) && !cfg.statsCfg.Enabled {
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component", utils.StatS, utils.DNSAgent)
|
||||
}
|
||||
if _, has := cfg.rpcConns[connID]; !has && !strings.HasPrefix(connID, utils.MetaInternal) {
|
||||
return fmt.Errorf("<%s> connection with id: <%s> not defined", utils.DNSAgent, connID)
|
||||
}
|
||||
}
|
||||
for _, connID := range cfg.dnsAgentCfg.ThresholdSConns {
|
||||
if strings.HasPrefix(connID, utils.MetaInternal) && !cfg.thresholdSCfg.Enabled {
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component", utils.ThresholdS, utils.DNSAgent)
|
||||
}
|
||||
if _, has := cfg.rpcConns[connID]; !has && !strings.HasPrefix(connID, utils.MetaInternal) {
|
||||
return fmt.Errorf("<%s> connection with id: <%s> not defined", utils.DNSAgent, connID)
|
||||
}
|
||||
}
|
||||
for _, req := range cfg.dnsAgentCfg.RequestProcessors {
|
||||
for _, field := range req.RequestFields {
|
||||
if field.Type != utils.MetaNone && field.Path == utils.EmptyString {
|
||||
|
||||
@@ -35,6 +35,8 @@ type DNSAgentCfg struct {
|
||||
Enabled bool
|
||||
Listeners []Listener
|
||||
SessionSConns []string
|
||||
StatSConns []string
|
||||
ThresholdSConns []string
|
||||
Timezone string
|
||||
RequestProcessors []*RequestProcessor
|
||||
}
|
||||
@@ -71,10 +73,16 @@ func (da *DNSAgentCfg) loadFromJSONCfg(jsnCfg *DNSAgentJsonCfg) (err error) {
|
||||
if jsnCfg.Timezone != nil {
|
||||
da.Timezone = *jsnCfg.Timezone
|
||||
}
|
||||
if jsnCfg.Sessions_conns != nil {
|
||||
da.SessionSConns = tagInternalConns(*jsnCfg.Sessions_conns, utils.MetaSessionS)
|
||||
if jsnCfg.SessionSConns != nil {
|
||||
da.SessionSConns = tagInternalConns(*jsnCfg.SessionSConns, utils.MetaSessionS)
|
||||
}
|
||||
da.RequestProcessors, err = appendRequestProcessors(da.RequestProcessors, jsnCfg.Request_processors)
|
||||
if jsnCfg.StatSConns != nil {
|
||||
da.StatSConns = tagInternalConns(*jsnCfg.StatSConns, utils.MetaStats)
|
||||
}
|
||||
if jsnCfg.ThresholdSConns != nil {
|
||||
da.ThresholdSConns = tagInternalConns(*jsnCfg.ThresholdSConns, utils.MetaThresholds)
|
||||
}
|
||||
da.RequestProcessors, err = appendRequestProcessors(da.RequestProcessors, jsnCfg.RequestProcessors)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -87,25 +95,22 @@ func (lstn *Listener) AsMapInterface() map[string]any {
|
||||
|
||||
// AsMapInterface returns the config as a map[string]any
|
||||
func (da DNSAgentCfg) AsMapInterface() any {
|
||||
mp := map[string]any{
|
||||
utils.EnabledCfg: da.Enabled,
|
||||
utils.TimezoneCfg: da.Timezone,
|
||||
}
|
||||
|
||||
listeners := make([]map[string]any, len(da.Listeners))
|
||||
for i, item := range da.Listeners {
|
||||
listeners[i] = item.AsMapInterface()
|
||||
}
|
||||
mp[utils.ListenersCfg] = listeners
|
||||
|
||||
requestProcessors := make([]map[string]any, len(da.RequestProcessors))
|
||||
for i, item := range da.RequestProcessors {
|
||||
requestProcessors[i] = item.AsMapInterface()
|
||||
}
|
||||
mp[utils.RequestProcessorsCfg] = requestProcessors
|
||||
|
||||
if da.SessionSConns != nil {
|
||||
mp[utils.SessionSConnsCfg] = stripInternalConns(da.SessionSConns)
|
||||
mp := map[string]any{
|
||||
utils.EnabledCfg: da.Enabled,
|
||||
utils.ListenersCfg: listeners,
|
||||
utils.SessionSConnsCfg: stripInternalConns(da.SessionSConns),
|
||||
utils.StatSConnsCfg: stripInternalConns(da.StatSConns),
|
||||
utils.ThresholdSConnsCfg: stripInternalConns(da.ThresholdSConns),
|
||||
utils.TimezoneCfg: da.Timezone,
|
||||
utils.RequestProcessorsCfg: requestProcessors,
|
||||
}
|
||||
return mp
|
||||
}
|
||||
@@ -114,27 +119,22 @@ func (DNSAgentCfg) SName() string { return DNSAgentJSON }
|
||||
func (da DNSAgentCfg) CloneSection() Section { return da.Clone() }
|
||||
|
||||
// Clone returns a deep copy of DNSAgentCfg
|
||||
func (da DNSAgentCfg) Clone() (cln *DNSAgentCfg) {
|
||||
cln = &DNSAgentCfg{
|
||||
Enabled: da.Enabled,
|
||||
Listeners: da.Listeners,
|
||||
Timezone: da.Timezone,
|
||||
}
|
||||
|
||||
if da.Listeners != nil {
|
||||
cln.Listeners = make([]Listener, len(da.Listeners))
|
||||
copy(cln.Listeners, da.Listeners)
|
||||
}
|
||||
if da.SessionSConns != nil {
|
||||
cln.SessionSConns = slices.Clone(da.SessionSConns)
|
||||
func (da DNSAgentCfg) Clone() *DNSAgentCfg {
|
||||
clone := &DNSAgentCfg{
|
||||
Enabled: da.Enabled,
|
||||
Listeners: slices.Clone(da.Listeners),
|
||||
SessionSConns: slices.Clone(da.SessionSConns),
|
||||
StatSConns: slices.Clone(da.StatSConns),
|
||||
ThresholdSConns: slices.Clone(da.ThresholdSConns),
|
||||
Timezone: da.Timezone,
|
||||
}
|
||||
if da.RequestProcessors != nil {
|
||||
cln.RequestProcessors = make([]*RequestProcessor, len(da.RequestProcessors))
|
||||
clone.RequestProcessors = make([]*RequestProcessor, len(da.RequestProcessors))
|
||||
for i, req := range da.RequestProcessors {
|
||||
cln.RequestProcessors[i] = req.Clone()
|
||||
clone.RequestProcessors[i] = req.Clone()
|
||||
}
|
||||
}
|
||||
return
|
||||
return clone
|
||||
}
|
||||
|
||||
type ListenerJsnCfg struct {
|
||||
@@ -144,11 +144,13 @@ type ListenerJsnCfg struct {
|
||||
|
||||
// DNSAgentJsonCfg
|
||||
type DNSAgentJsonCfg struct {
|
||||
Enabled *bool
|
||||
Listeners *[]*ListenerJsnCfg
|
||||
Sessions_conns *[]string
|
||||
Timezone *string
|
||||
Request_processors *[]*ReqProcessorJsnCfg
|
||||
Enabled *bool `json:"enabled"`
|
||||
Listeners *[]*ListenerJsnCfg `json:"listeners"`
|
||||
SessionSConns *[]string `json:"sessions_conns"`
|
||||
StatSConns *[]string `json:"stats_conns"`
|
||||
ThresholdSConns *[]string `json:"thresholds_conns"`
|
||||
Timezone *string `json:"timezone"`
|
||||
RequestProcessors *[]*ReqProcessorJsnCfg `json:"request_processors"`
|
||||
}
|
||||
|
||||
func diffDNSAgentJsonCfg(d *DNSAgentJsonCfg, v1, v2 *DNSAgentCfg) *DNSAgentJsonCfg {
|
||||
@@ -159,14 +161,11 @@ func diffDNSAgentJsonCfg(d *DNSAgentJsonCfg, v1, v2 *DNSAgentCfg) *DNSAgentJsonC
|
||||
d.Enabled = utils.BoolPointer(v2.Enabled)
|
||||
}
|
||||
|
||||
minLen := len(v1.Listeners)
|
||||
if len(v2.Listeners) < minLen {
|
||||
minLen = len(v2.Listeners)
|
||||
}
|
||||
minLen := min(len(v2.Listeners), len(v1.Listeners))
|
||||
|
||||
diffListeners := &[]*ListenerJsnCfg{}
|
||||
|
||||
for i := 0; i < minLen; i++ {
|
||||
for i := range minLen {
|
||||
if v1.Listeners[i].Address != v2.Listeners[i].Address ||
|
||||
v1.Listeners[i].Network != v2.Listeners[i].Network {
|
||||
*diffListeners = append(*diffListeners, &ListenerJsnCfg{
|
||||
@@ -197,11 +196,17 @@ func diffDNSAgentJsonCfg(d *DNSAgentJsonCfg, v1, v2 *DNSAgentCfg) *DNSAgentJsonC
|
||||
d.Listeners = diffListeners
|
||||
|
||||
if !slices.Equal(v1.SessionSConns, v2.SessionSConns) {
|
||||
d.Sessions_conns = utils.SliceStringPointer(stripInternalConns(v2.SessionSConns))
|
||||
d.SessionSConns = utils.SliceStringPointer(stripInternalConns(v2.SessionSConns))
|
||||
}
|
||||
if !slices.Equal(v1.StatSConns, v2.StatSConns) {
|
||||
d.StatSConns = utils.SliceStringPointer(stripInternalConns(v2.StatSConns))
|
||||
}
|
||||
if !slices.Equal(v1.ThresholdSConns, v2.ThresholdSConns) {
|
||||
d.ThresholdSConns = utils.SliceStringPointer(stripInternalConns(v2.ThresholdSConns))
|
||||
}
|
||||
if v1.Timezone != v2.Timezone {
|
||||
d.Timezone = utils.StringPointer(v2.Timezone)
|
||||
}
|
||||
d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors)
|
||||
d.RequestProcessors = diffReqProcessorsJsnCfg(d.RequestProcessors, v1.RequestProcessors, v2.RequestProcessors)
|
||||
return d
|
||||
}
|
||||
@@ -33,9 +33,11 @@ func TestDNSAgentCfgloadFromJsonCfg(t *testing.T) {
|
||||
Network: utils.StringPointer("udp"),
|
||||
},
|
||||
},
|
||||
Sessions_conns: &[]string{utils.MetaInternal, "*conn1"},
|
||||
Timezone: utils.StringPointer("UTC"),
|
||||
Request_processors: &[]*ReqProcessorJsnCfg{
|
||||
SessionSConns: &[]string{utils.MetaInternal, "*conn1"},
|
||||
StatSConns: &[]string{utils.MetaInternal, "*conn1"},
|
||||
ThresholdSConns: &[]string{utils.MetaInternal, "*conn1"},
|
||||
Timezone: utils.StringPointer("UTC"),
|
||||
RequestProcessors: &[]*ReqProcessorJsnCfg{
|
||||
{
|
||||
ID: utils.StringPointer("OutboundAUTHDryRun"),
|
||||
Filters: &[]string{"*string:~*req.request_type:OutboundAUTH", "*string:~*req.Msisdn:497700056231"},
|
||||
@@ -57,8 +59,10 @@ func TestDNSAgentCfgloadFromJsonCfg(t *testing.T) {
|
||||
Network: "udp",
|
||||
},
|
||||
},
|
||||
SessionSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS), "*conn1"},
|
||||
Timezone: "UTC",
|
||||
SessionSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS), "*conn1"},
|
||||
StatSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats), "*conn1"},
|
||||
ThresholdSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds), "*conn1"},
|
||||
Timezone: "UTC",
|
||||
RequestProcessors: []*RequestProcessor{
|
||||
{
|
||||
ID: "OutboundAUTHDryRun",
|
||||
@@ -120,7 +124,7 @@ func TestRequestProcessorloadFromJsonCfg(t *testing.T) {
|
||||
|
||||
func TestRequestProcessorDNSAgentloadFromJsonCfg(t *testing.T) {
|
||||
cfgJSON := &DNSAgentJsonCfg{
|
||||
Request_processors: &[]*ReqProcessorJsnCfg{
|
||||
RequestProcessors: &[]*ReqProcessorJsnCfg{
|
||||
{
|
||||
Tenant: utils.StringPointer("a{*"),
|
||||
},
|
||||
@@ -144,7 +148,7 @@ func TestRequestProcessorDNSAgentloadFromJsonCfg1(t *testing.T) {
|
||||
}
|
||||
}`
|
||||
cfgJSON := &DNSAgentJsonCfg{
|
||||
Request_processors: &[]*ReqProcessorJsnCfg{
|
||||
RequestProcessors: &[]*ReqProcessorJsnCfg{
|
||||
{
|
||||
ID: utils.StringPointer("random"),
|
||||
},
|
||||
@@ -159,7 +163,7 @@ func TestRequestProcessorDNSAgentloadFromJsonCfg1(t *testing.T) {
|
||||
|
||||
func TestRequestProcessorReplyFieldsloadFromJsonCfg(t *testing.T) {
|
||||
cfgJSON := &DNSAgentJsonCfg{
|
||||
Request_processors: &[]*ReqProcessorJsnCfg{
|
||||
RequestProcessors: &[]*ReqProcessorJsnCfg{
|
||||
{
|
||||
Reply_fields: &[]*FcTemplateJsonCfg{
|
||||
{
|
||||
@@ -179,7 +183,7 @@ func TestRequestProcessorReplyFieldsloadFromJsonCfg(t *testing.T) {
|
||||
|
||||
func TestRequestProcessorRequestFieldsloadFromJsonCfg(t *testing.T) {
|
||||
cfgJSON := &DNSAgentJsonCfg{
|
||||
Request_processors: &[]*ReqProcessorJsnCfg{
|
||||
RequestProcessors: &[]*ReqProcessorJsnCfg{
|
||||
{
|
||||
Request_fields: &[]*FcTemplateJsonCfg{
|
||||
{
|
||||
@@ -207,6 +211,8 @@ func TestDNSAgentCfgAsMapInterface(t *testing.T) {
|
||||
}
|
||||
],
|
||||
"sessions_conns": ["*internal"],
|
||||
"stats_conns": ["*internal"],
|
||||
"thresholds_conns": ["*internal"],
|
||||
"timezone": "",
|
||||
"request_processors": [],
|
||||
},
|
||||
@@ -218,6 +224,8 @@ func TestDNSAgentCfgAsMapInterface(t *testing.T) {
|
||||
utils.NetworkCfg: "udp",
|
||||
}},
|
||||
utils.SessionSConnsCfg: []string{"*internal"},
|
||||
utils.StatSConnsCfg: []string{"*internal"},
|
||||
utils.ThresholdSConnsCfg: []string{"*internal"},
|
||||
utils.TimezoneCfg: "",
|
||||
utils.RequestProcessorsCfg: []map[string]any{},
|
||||
}
|
||||
@@ -239,6 +247,8 @@ func TestDNSAgentCfgAsMapInterface1(t *testing.T) {
|
||||
}
|
||||
],
|
||||
"sessions_conns": ["*internal:*sessions", "*conn1"],
|
||||
"stats_conns": ["*internal:*stats", "*conn1"],
|
||||
"thresholds_conns": ["*internal:*thresholds", "*conn1"],
|
||||
"timezone": "UTC",
|
||||
"request_processors": [
|
||||
{
|
||||
@@ -272,8 +282,10 @@ func TestDNSAgentCfgAsMapInterface1(t *testing.T) {
|
||||
utils.NetworkCfg: "udp",
|
||||
},
|
||||
},
|
||||
utils.SessionSConnsCfg: []string{utils.MetaInternal, "*conn1"},
|
||||
utils.TimezoneCfg: "UTC",
|
||||
utils.SessionSConnsCfg: []string{utils.MetaInternal, "*conn1"},
|
||||
utils.StatSConnsCfg: []string{utils.MetaInternal, "*conn1"},
|
||||
utils.ThresholdSConnsCfg: []string{utils.MetaInternal, "*conn1"},
|
||||
utils.TimezoneCfg: "UTC",
|
||||
utils.RequestProcessorsCfg: []map[string]any{
|
||||
{
|
||||
utils.IDCfg: "OutboundAUTHDryRun",
|
||||
@@ -332,8 +344,10 @@ func TestDNSAgentCfgClone(t *testing.T) {
|
||||
Network: "udp",
|
||||
},
|
||||
},
|
||||
SessionSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS), "*conn1"},
|
||||
Timezone: "UTC",
|
||||
SessionSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS), "*conn1"},
|
||||
StatSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats), "*conn1"},
|
||||
ThresholdSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds), "*conn1"},
|
||||
Timezone: "UTC",
|
||||
RequestProcessors: []*RequestProcessor{
|
||||
{
|
||||
ID: "OutboundAUTHDryRun",
|
||||
@@ -354,6 +368,12 @@ func TestDNSAgentCfgClone(t *testing.T) {
|
||||
if rcv.SessionSConns[1] = ""; ban.SessionSConns[1] != "*conn1" {
|
||||
t.Errorf("Expected clone to not modify the cloned")
|
||||
}
|
||||
if rcv.StatSConns[1] = ""; ban.StatSConns[1] != "*conn1" {
|
||||
t.Errorf("Expected clone to not modify the cloned")
|
||||
}
|
||||
if rcv.ThresholdSConns[1] = ""; ban.ThresholdSConns[1] != "*conn1" {
|
||||
t.Errorf("Expected clone to not modify the cloned")
|
||||
}
|
||||
if rcv.RequestProcessors[0].ID = ""; ban.RequestProcessors[0].ID != "OutboundAUTHDryRun" {
|
||||
t.Errorf("Expected clone to not modify the cloned")
|
||||
}
|
||||
@@ -371,6 +391,8 @@ func TestDiffDNSAgentJsonCfg(t *testing.T) {
|
||||
},
|
||||
},
|
||||
SessionSConns: []string{"*localhost"},
|
||||
StatSConns: []string{"*localhost"},
|
||||
ThresholdSConns: []string{"*localhost"},
|
||||
Timezone: "UTC",
|
||||
RequestProcessors: []*RequestProcessor{},
|
||||
}
|
||||
@@ -383,8 +405,10 @@ func TestDiffDNSAgentJsonCfg(t *testing.T) {
|
||||
Network: "udp",
|
||||
},
|
||||
},
|
||||
SessionSConns: []string{"*birpc"},
|
||||
Timezone: "EEST",
|
||||
SessionSConns: []string{"*internal"},
|
||||
StatSConns: []string{"*internal"},
|
||||
ThresholdSConns: []string{"*internal"},
|
||||
Timezone: "EEST",
|
||||
RequestProcessors: []*RequestProcessor{
|
||||
{
|
||||
ID: "id",
|
||||
@@ -400,9 +424,11 @@ func TestDiffDNSAgentJsonCfg(t *testing.T) {
|
||||
Network: utils.StringPointer("udp"),
|
||||
},
|
||||
},
|
||||
Sessions_conns: &[]string{"*birpc"},
|
||||
Timezone: utils.StringPointer("EEST"),
|
||||
Request_processors: &[]*ReqProcessorJsnCfg{
|
||||
SessionSConns: &[]string{"*internal"},
|
||||
StatSConns: &[]string{"*internal"},
|
||||
ThresholdSConns: &[]string{"*internal"},
|
||||
Timezone: utils.StringPointer("EEST"),
|
||||
RequestProcessors: &[]*ReqProcessorJsnCfg{
|
||||
{
|
||||
ID: utils.StringPointer("id"),
|
||||
},
|
||||
@@ -416,8 +442,8 @@ func TestDiffDNSAgentJsonCfg(t *testing.T) {
|
||||
|
||||
v2_2 := v1
|
||||
expected2 := &DNSAgentJsonCfg{
|
||||
Listeners: &[]*ListenerJsnCfg{},
|
||||
Request_processors: &[]*ReqProcessorJsnCfg{},
|
||||
Listeners: &[]*ListenerJsnCfg{},
|
||||
RequestProcessors: &[]*ReqProcessorJsnCfg{},
|
||||
}
|
||||
|
||||
rcv = diffDNSAgentJsonCfg(d, v1, v2_2)
|
||||
@@ -465,7 +491,7 @@ func TestDiffDNSAgentJsonCfgExtraV1(t *testing.T) {
|
||||
Network: utils.StringPointer("udp"),
|
||||
},
|
||||
},
|
||||
Request_processors: &[]*ReqProcessorJsnCfg{},
|
||||
RequestProcessors: &[]*ReqProcessorJsnCfg{},
|
||||
}
|
||||
|
||||
rcv := diffDNSAgentJsonCfg(d, v1, v2)
|
||||
@@ -513,7 +539,7 @@ func TestDiffDNSAgentJsonCfgExtraV2(t *testing.T) {
|
||||
Network: utils.StringPointer("udp"),
|
||||
},
|
||||
},
|
||||
Request_processors: &[]*ReqProcessorJsnCfg{},
|
||||
RequestProcessors: &[]*ReqProcessorJsnCfg{},
|
||||
}
|
||||
|
||||
rcv := diffDNSAgentJsonCfg(d, v1, v2)
|
||||
@@ -532,6 +558,8 @@ func TestDnsAgentCloneSection(t *testing.T) {
|
||||
},
|
||||
},
|
||||
SessionSConns: []string{"*localhost"},
|
||||
StatSConns: []string{"*localhost"},
|
||||
ThresholdSConns: []string{"*localhost"},
|
||||
Timezone: "UTC",
|
||||
RequestProcessors: []*RequestProcessor{},
|
||||
}
|
||||
@@ -545,6 +573,8 @@ func TestDnsAgentCloneSection(t *testing.T) {
|
||||
},
|
||||
},
|
||||
SessionSConns: []string{"*localhost"},
|
||||
StatSConns: []string{"*localhost"},
|
||||
ThresholdSConns: []string{"*localhost"},
|
||||
Timezone: "UTC",
|
||||
RequestProcessors: []*RequestProcessor{},
|
||||
}
|
||||
Reference in New Issue
Block a user