mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Update config for ers in case we find the sameID
This commit is contained in:
committed by
Dan Christian Bogos
parent
8150199b78
commit
e614ec6942
@@ -44,21 +44,42 @@ func (erS *ERsCfg) loadFromJsonCfg(jsnCfg *ERsJsonCfg, sep string, dfltRdrCfg *E
|
||||
erS.SessionSConns[idx].loadFromJsonCfg(jsnHaCfg)
|
||||
}
|
||||
}
|
||||
if jsnCfg.Readers != nil {
|
||||
erS.Readers = make([]*EventReaderCfg, len(*jsnCfg.Readers))
|
||||
for idx, rdrs := range *jsnCfg.Readers {
|
||||
if dfltRdrCfg == nil { // when loading defaults dfltRdrCfg is nil ( e.g line 195)
|
||||
erS.Readers[idx] = new(EventReaderCfg)
|
||||
} else {
|
||||
erS.Readers[idx] = dfltRdrCfg.Clone()
|
||||
}
|
||||
if err = erS.appendERsReaders(jsnCfg.Readers, sep, dfltRdrCfg); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
if err = erS.Readers[idx].loadFromJsonCfg(rdrs, sep); err != nil {
|
||||
return err
|
||||
func (ers *ERsCfg) appendERsReaders(jsnReaders *[]*EventReaderJsonCfg, separator string,
|
||||
dfltRdrCfg *EventReaderCfg) (err error) {
|
||||
if jsnReaders == nil {
|
||||
return nil
|
||||
}
|
||||
for _, jsnReader := range *jsnReaders {
|
||||
rdr := new(EventReaderCfg)
|
||||
if dfltRdrCfg != nil {
|
||||
rdr = dfltRdrCfg.Clone()
|
||||
}
|
||||
var haveID bool
|
||||
if jsnReader.Id != nil {
|
||||
for _, reader := range ers.Readers {
|
||||
if reader.ID == *jsnReader.Id {
|
||||
rdr = reader
|
||||
haveID = true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if err := rdr.loadFromJsonCfg(jsnReader, separator); err != nil {
|
||||
return err
|
||||
}
|
||||
if !haveID {
|
||||
ers.Readers = append(ers.Readers, rdr)
|
||||
}
|
||||
|
||||
}
|
||||
return
|
||||
return nil
|
||||
}
|
||||
|
||||
// Clone itself into a new ERsCfg
|
||||
|
||||
@@ -108,6 +108,47 @@ func TestEventReaderLoadFromJSON(t *testing.T) {
|
||||
},
|
||||
},
|
||||
Readers: []*EventReaderCfg{
|
||||
&EventReaderCfg{
|
||||
ID: utils.MetaDefault,
|
||||
Type: utils.MetaFileCSV,
|
||||
FieldSep: ",",
|
||||
RunDelay: time.Duration(0),
|
||||
ConcurrentReqs: 1024,
|
||||
SourcePath: "/var/spool/cgrates/cdrc/in",
|
||||
ProcessedPath: "/var/spool/cgrates/cdrc/out",
|
||||
XmlRootPath: utils.EmptyString,
|
||||
SourceID: "ers_csv",
|
||||
Tenant: nil,
|
||||
Timezone: utils.EmptyString,
|
||||
Filters: []string{},
|
||||
Flags: utils.FlagsWithParams{},
|
||||
Header_fields: make([]*FCTemplate, 0),
|
||||
Content_fields: []*FCTemplate{
|
||||
{Tag: "TOR", FieldId: "ToR", Type: utils.META_COMPOSED,
|
||||
Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), Mandatory: true},
|
||||
{Tag: "OriginID", FieldId: "OriginID", Type: utils.META_COMPOSED,
|
||||
Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), Mandatory: true},
|
||||
{Tag: "RequestType", FieldId: "RequestType", Type: utils.META_COMPOSED,
|
||||
Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), Mandatory: true},
|
||||
{Tag: "Tenant", FieldId: "Tenant", Type: utils.META_COMPOSED,
|
||||
Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP), Mandatory: true},
|
||||
{Tag: "Category", FieldId: "Category", Type: utils.META_COMPOSED,
|
||||
Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP), Mandatory: true},
|
||||
{Tag: "Account", FieldId: "Account", Type: utils.META_COMPOSED,
|
||||
Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP), Mandatory: true},
|
||||
{Tag: "Subject", FieldId: "Subject", Type: utils.META_COMPOSED,
|
||||
Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP), Mandatory: true},
|
||||
{Tag: "Destination", FieldId: "Destination", Type: utils.META_COMPOSED,
|
||||
Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP), Mandatory: true},
|
||||
{Tag: "SetupTime", FieldId: "SetupTime", Type: utils.META_COMPOSED,
|
||||
Value: NewRSRParsersMustCompile("~11", true, utils.INFIELD_SEP), Mandatory: true},
|
||||
{Tag: "AnswerTime", FieldId: "AnswerTime", Type: utils.META_COMPOSED,
|
||||
Value: NewRSRParsersMustCompile("~12", true, utils.INFIELD_SEP), Mandatory: true},
|
||||
{Tag: "Usage", FieldId: "Usage", Type: utils.META_COMPOSED,
|
||||
Value: NewRSRParsersMustCompile("~13", true, utils.INFIELD_SEP), Mandatory: true},
|
||||
},
|
||||
Trailer_fields: make([]*FCTemplate, 0),
|
||||
},
|
||||
&EventReaderCfg{
|
||||
ID: "file_reader1",
|
||||
Type: utils.MetaFileCSV,
|
||||
|
||||
Reference in New Issue
Block a user