From 82468c580d4c1bd9dd377fa39bb22e80d448f99e Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Tue, 22 Nov 2022 19:10:05 +0200 Subject: [PATCH] Replace deprecated ioutil library, remove redundant statements + small optimizations --- agents/astagent.go | 1 - agents/dnsagent.go | 1 - agents/httpagent_it_test.go | 13 ++++++----- agents/libhttpagent.go | 4 ++-- apier/v1/apier.go | 3 +-- apier/v1/cdre.go | 7 +++--- apier/v1/cdre_it_test.go | 4 ++-- apier/v1/concreqs_it_test.go | 4 ++-- apier/v1/tp.go | 5 ++-- cmd/cgr-tester/filereader.go | 5 ++-- cmd/cgr-tester/parallel/parallel.go | 6 ++--- config/rjreader.go | 3 +-- engine/cdrs.go | 4 ++-- engine/datamanager.go | 2 +- engine/libcdre.go | 4 +--- engine/libstats.go | 2 +- engine/pstr_http.go | 6 ++--- engine/sharedgroup.go | 2 +- engine/statmetrics.go | 16 ++++++------- engine/storage_csv.go | 3 +-- engine/storage_mongo_datadb.go | 8 +++---- engine/storage_mongo_stordb.go | 2 +- engine/storage_redis.go | 8 +++---- engine/storage_sql.go | 4 ++-- engine/suretax.go | 4 ++-- engine/tpimporter_csv.go | 4 ++-- ers/filecsv.go | 3 +-- ers/filecsv_it_test.go | 17 +++++++------- ers/filefwv.go | 3 +-- ers/filefwv_it_test.go | 3 +-- ers/filexml.go | 3 +-- ers/filexml_it_test.go | 3 +-- ers/flatstore.go | 3 +-- ers/flatstore_it_test.go | 15 ++++++------ ers/partial_csv.go | 3 +-- ers/partial_csv_it_test.go | 11 ++++----- general_tests/cdrs_it_test.go | 2 +- general_tests/cdrs_onlexp_it_test.go | 5 ++-- general_tests/cdrs_post_failover_it_test.go | 4 ++-- general_tests/cdrs_processevent_it_test.go | 4 ++-- general_tests/oldtutorial_it_test.go | 3 +-- general_tests/poster_it_test.go | 4 ++-- loaders/loader.go | 3 +-- loaders/loader_it_test.go | 5 ++-- loaders/loader_test.go | 26 ++++++++++----------- utils/apitpdata.go | 5 ++-- utils/basic_auth.go | 8 +++---- utils/concureqs.go | 1 - utils/coreutils.go | 14 +++++------ utils/dataconverter.go | 2 +- utils/map.go | 6 ++--- utils/navigablemap.go | 2 +- utils/nmslice.go | 2 +- utils/reflect.go | 20 ++++++++-------- utils/rsrfield.go | 8 +++---- utils/server.go | 13 +++++------ utils/struct.go | 2 -- 57 files changed, 148 insertions(+), 180 deletions(-) diff --git a/agents/astagent.go b/agents/astagent.go index a581c4d0c..5fe7617bc 100644 --- a/agents/astagent.go +++ b/agents/astagent.go @@ -147,7 +147,6 @@ func (sma *AsteriskAgent) hangupChannel(channelID, warnMsg string) { fmt.Sprintf("<%s> failed disconnecting channel <%s>, err: %s", utils.AsteriskAgent, channelID, err.Error())) } - return } func (sma *AsteriskAgent) handleStasisStart(ev *SMAsteriskEvent) { diff --git a/agents/dnsagent.go b/agents/dnsagent.go index 65f10fc0a..61717a083 100644 --- a/agents/dnsagent.go +++ b/agents/dnsagent.go @@ -164,7 +164,6 @@ func (da *DNSAgent) handleMessage(w dns.ResponseWriter, req *dns.Msg) { rply.Rcode = dns.RcodeServerFailure dnsWriteMsg(w, rply) } - return } func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor, diff --git a/agents/httpagent_it_test.go b/agents/httpagent_it_test.go index 97ebd0191..3098b0a24 100644 --- a/agents/httpagent_it_test.go +++ b/agents/httpagent_it_test.go @@ -26,9 +26,10 @@ import ( "crypto/tls" "crypto/x509" "fmt" - "io/ioutil" + "io" "net/http" "net/rpc" + "os" "path" "reflect" "testing" @@ -132,7 +133,7 @@ func testHAitHttp(t *testing.T) { t.Error(err) } // Load CA cert - caCert, err := ioutil.ReadFile(haCfg.TlsCfg().CaCertificate) + caCert, err := os.ReadFile(haCfg.TlsCfg().CaCertificate) if err != nil { t.Error(err) } @@ -209,7 +210,7 @@ func testHAitAuthDryRun(t *testing.T) { 234/Val1 1200 `) - if body, err := ioutil.ReadAll(rply.Body); err != nil { + if body, err := io.ReadAll(rply.Body); err != nil { t.Error(err) } else if !reflect.DeepEqual(eXml, body) { t.Errorf("expecting: <%s>, received: <%s>", string(eXml), string(body)) @@ -258,7 +259,7 @@ func testHAitAuth1001(t *testing.T) { 1 %v `, maxDuration)) - if body, err := ioutil.ReadAll(rply.Body); err != nil { + if body, err := io.ReadAll(rply.Body); err != nil { t.Error(err) } else if !reflect.DeepEqual(eXml, body) { t.Errorf("expecting: %s, received: %s", string(eXml), string(body)) @@ -285,7 +286,7 @@ func testHAitCDRmtcall(t *testing.T) { 123456 1 `) - if body, err := ioutil.ReadAll(rply.Body); err != nil { + if body, err := io.ReadAll(rply.Body); err != nil { t.Error(err) } else if !reflect.DeepEqual(eXml, body) { t.Errorf("expecting: <%s>, received: <%s>", string(eXml), string(body)) @@ -365,7 +366,7 @@ ComposedVar=TestComposed Item1.1=Val2 Item1.1=Val1 `) - if body, err := ioutil.ReadAll(rply.Body); err != nil { + if body, err := io.ReadAll(rply.Body); err != nil { t.Error(err) } else if !reflect.DeepEqual(len(response), len(body)) { t.Errorf("expecting: \n<%s>\n, received: \n<%s>\n", string(response), string(body)) diff --git a/agents/libhttpagent.go b/agents/libhttpagent.go index 6cde9ab3d..4bb70c7a2 100644 --- a/agents/libhttpagent.go +++ b/agents/libhttpagent.go @@ -21,7 +21,7 @@ package agents import ( "encoding/xml" "fmt" - "io/ioutil" + "io" "net" "net/http" "net/http/httputil" @@ -100,7 +100,7 @@ func (hU *httpUrlDP) RemoteHost() net.Addr { } func newHTTPXmlDP(req *http.Request) (dP utils.DataProvider, err error) { - byteData, err := ioutil.ReadAll(req.Body) + byteData, err := io.ReadAll(req.Body) if err != nil { return nil, err } diff --git a/apier/v1/apier.go b/apier/v1/apier.go index 4d0df4aca..68ed313f5 100644 --- a/apier/v1/apier.go +++ b/apier/v1/apier.go @@ -21,7 +21,6 @@ package v1 import ( "errors" "fmt" - "io/ioutil" "os" "path" "strconv" @@ -1219,7 +1218,7 @@ func (apiv1 *APIerSv1) ReplayFailedPosts(args ArgsReplyFailedPosts, reply *strin if args.FailedRequestsOutDir != nil && *args.FailedRequestsOutDir != "" { failedReqsOutDir = *args.FailedRequestsOutDir } - filesInDir, _ := ioutil.ReadDir(failedReqsInDir) + filesInDir, _ := os.ReadDir(failedReqsInDir) if len(filesInDir) == 0 { return utils.ErrNotFound } diff --git a/apier/v1/cdre.go b/apier/v1/cdre.go index 62ca35cc3..2fad03618 100644 --- a/apier/v1/cdre.go +++ b/apier/v1/cdre.go @@ -25,7 +25,6 @@ import ( "encoding/json" "errors" "fmt" - "io/ioutil" "net/url" "os" "path" @@ -53,7 +52,7 @@ func (api *APIerSv1) ExportCdrsToZipString(attr utils.AttrExpFileCdrs, reply *st // Create a new zip archive. w := zip.NewWriter(buf) // read generated file - content, err := ioutil.ReadFile(efc.ExportedFilePath) + content, err := os.ReadFile(efc.ExportedFilePath) if err != nil { return err } @@ -69,7 +68,7 @@ func (api *APIerSv1) ExportCdrsToZipString(attr utils.AttrExpFileCdrs, reply *st // Write metadata into a separate file with extension .cgr medaData, err := json.MarshalIndent(efc, "", " ") if err != nil { - errors.New("Failed creating metadata content") + return errors.New("failed creating metadata content") } medatadaFileName := exportFileName[:len(path.Ext(exportFileName))] + ".cgr" mf, err := w.Create(medatadaFileName) @@ -85,7 +84,7 @@ func (api *APIerSv1) ExportCdrsToZipString(attr utils.AttrExpFileCdrs, reply *st return err } if err := os.Remove(efc.ExportedFilePath); err != nil { - fmt.Errorf("Failed removing exported file at path: %s", efc.ExportedFilePath) + return fmt.Errorf("failed removing exported file at path: %s", efc.ExportedFilePath) } *reply = base64.StdEncoding.EncodeToString(buf.Bytes()) return nil diff --git a/apier/v1/cdre_it_test.go b/apier/v1/cdre_it_test.go index b049c4243..cb8319c5b 100755 --- a/apier/v1/cdre_it_test.go +++ b/apier/v1/cdre_it_test.go @@ -22,8 +22,8 @@ along with this program. If not, see package v1 import ( - "io/ioutil" "net/rpc" + "os" "path" "reflect" "testing" @@ -340,7 +340,7 @@ Cdr2,*default,test2,OriginCDR2,cgrates.org,ATTR_CATEGORY,1001,ATTR_SUBJECT,+4986 fileContent2 := `Cdr2,*default,test2,OriginCDR2,cgrates.org,ATTR_CATEGORY,1001,ATTR_SUBJECT,+4986517174963,5s,-1.0000 Cdr3,*default,test2,OriginCDR3,cgrates.org,ATTR_CATEGORY,1001,ATTR_SUBJECT,+4986517174963,30s,-1.0000 ` - if outContent1, err := ioutil.ReadFile(rply.ExportedPath); err != nil { + if outContent1, err := os.ReadFile(rply.ExportedPath); err != nil { t.Error(err) } else if fileContent1 != string(outContent1) && fileContent2 != string(outContent1) { t.Errorf("Expecting: \n<%q>, \nreceived: \n<%q>", fileContent1, string(outContent1)) diff --git a/apier/v1/concreqs_it_test.go b/apier/v1/concreqs_it_test.go index eb1b6774c..1edeb3193 100644 --- a/apier/v1/concreqs_it_test.go +++ b/apier/v1/concreqs_it_test.go @@ -24,7 +24,7 @@ package v1 import ( "bytes" "fmt" - "io/ioutil" + "io" "net/http" "net/rpc" "path" @@ -196,7 +196,7 @@ func testConcReqsOnHTTPBusy(t *testing.T) { t.Error(err) return } - contents, err := ioutil.ReadAll(resp.Body) + contents, err := io.ReadAll(resp.Body) if err != nil { wg.Done() t.Error(err) diff --git a/apier/v1/tp.go b/apier/v1/tp.go index 8ed384aed..49a4bb13f 100644 --- a/apier/v1/tp.go +++ b/apier/v1/tp.go @@ -22,7 +22,6 @@ package v1 import ( "encoding/base64" - "io/ioutil" "os" "path/filepath" @@ -51,13 +50,13 @@ type AttrImportTPZipFile struct { } func (self *APIerSv1) ImportTPZipFile(attrs AttrImportTPZipFile, reply *string) error { - tmpDir, err := ioutil.TempDir("/tmp", "cgr_") + tmpDir, err := os.MkdirTemp("/tmp", "cgr_") if err != nil { *reply = "ERROR: creating temp directory!" return err } zipFile := filepath.Join(tmpDir, "/file.zip") - if err = ioutil.WriteFile(zipFile, attrs.File, os.ModePerm); err != nil { + if err = os.WriteFile(zipFile, attrs.File, os.ModePerm); err != nil { *reply = "ERROR: writing zip file!" return err } diff --git a/cmd/cgr-tester/filereader.go b/cmd/cgr-tester/filereader.go index 1e01a9c8c..36db75718 100644 --- a/cmd/cgr-tester/filereader.go +++ b/cmd/cgr-tester/filereader.go @@ -22,7 +22,6 @@ import ( "bufio" "bytes" "io" - "io/ioutil" "log" "math/rand" "net" @@ -63,14 +62,14 @@ func (frt *FileReaderTester) connSendReq(req []byte) (err error) { if _, err = frt.conn.Write(req); err != nil { return } - ioutil.ReadAll(frt.conn) + io.ReadAll(frt.conn) return } // Test reads from rdr, split the content based on lineSep and sends individual lines to remote func (frt *FileReaderTester) Test() (err error) { var fContent []byte - if fContent, err = ioutil.ReadAll(frt.rdr); err != nil { + if fContent, err = io.ReadAll(frt.rdr); err != nil { return } reqs := bytes.Split(fContent, frt.reqSep) diff --git a/cmd/cgr-tester/parallel/parallel.go b/cmd/cgr-tester/parallel/parallel.go index e63746b61..28328b7e0 100644 --- a/cmd/cgr-tester/parallel/parallel.go +++ b/cmd/cgr-tester/parallel/parallel.go @@ -21,7 +21,7 @@ package main import ( "bytes" "fmt" - "io/ioutil" + "io" "log" "net/http" "sync" @@ -39,7 +39,7 @@ func main() { if err != nil { log.Print("Post error: ", err) } - contents, err := ioutil.ReadAll(resp.Body) + contents, err := io.ReadAll(resp.Body) if err != nil { log.Print("Body error: ", err) } @@ -53,7 +53,7 @@ func main() { if err != nil { log.Print("Post error: ", err) } - contents, err := ioutil.ReadAll(resp.Body) + contents, err := io.ReadAll(resp.Body) if err != nil { log.Print("Body error: ", err) } diff --git a/config/rjreader.go b/config/rjreader.go index 877e56a34..da9b7de50 100644 --- a/config/rjreader.go +++ b/config/rjreader.go @@ -23,7 +23,6 @@ import ( "encoding/json" "fmt" "io" - "io/ioutil" "os" "strings" @@ -35,7 +34,7 @@ import ( // creates a new rjReader from a io.Reader func NewRjReader(rdr io.Reader) (r *rjReader, err error) { var b []byte - b, err = ioutil.ReadAll(rdr) + b, err = io.ReadAll(rdr) if err != nil { return } diff --git a/engine/cdrs.go b/engine/cdrs.go index 583ca149d..080b90717 100644 --- a/engine/cdrs.go +++ b/engine/cdrs.go @@ -20,7 +20,7 @@ package engine import ( "fmt" - "io/ioutil" + "io" "net/http" "reflect" "strings" @@ -55,7 +55,7 @@ func cgrCdrHandler(w http.ResponseWriter, r *http.Request) { // fsCdrHandler will handle CDRs received from FreeSWITCH over HTTP-JSON func fsCdrHandler(w http.ResponseWriter, r *http.Request) { - body, _ := ioutil.ReadAll(r.Body) + body, _ := io.ReadAll(r.Body) fsCdr, err := NewFSCdr(body, cdrServer.cgrCfg) if err != nil { utils.Logger.Err(fmt.Sprintf(" Could not create CDR entry: %s", err.Error())) diff --git a/engine/datamanager.go b/engine/datamanager.go index 7fadd537e..614f18022 100644 --- a/engine/datamanager.go +++ b/engine/datamanager.go @@ -2398,7 +2398,7 @@ func (dm *DataManager) GetItemLoadIDs(itemIDPrefix string, cacheWrite bool) (loa if err != nil { err = utils.CastRPCErr(err) if err == utils.ErrNotFound && cacheWrite { - for key, _ := range loadIDs { + for key := range loadIDs { Cache.Set(utils.CacheLoadIDs, key, nil, nil, cacheCommit(utils.NonTransactional), utils.NonTransactional) } diff --git a/engine/libcdre.go b/engine/libcdre.go index b5baa37aa..cd7f0858e 100644 --- a/engine/libcdre.go +++ b/engine/libcdre.go @@ -22,7 +22,6 @@ import ( "bytes" "encoding/gob" "fmt" - "io/ioutil" "os" "path" "sync" @@ -55,7 +54,6 @@ func writeFailedPosts(itmID string, value interface{}) { utils.Logger.Warning(fmt.Sprintf("<%s> Failed to write file <%s> because <%s>", utils.CDRs, filePath, err)) } - return } func addFailedPost(expPath, format, module string, ev interface{}) { @@ -82,7 +80,7 @@ func addFailedPost(expPath, format, module string, ev interface{}) { func NewExportEventsFromFile(filePath string) (expEv *ExportEvents, err error) { var fileContent []byte _, err = guardian.Guardian.Guard(func() (interface{}, error) { - if fileContent, err = ioutil.ReadFile(filePath); err != nil { + if fileContent, err = os.ReadFile(filePath); err != nil { return 0, err } return 0, os.Remove(filePath) diff --git a/engine/libstats.go b/engine/libstats.go index 9aa20bf13..b8c8f3113 100644 --- a/engine/libstats.go +++ b/engine/libstats.go @@ -272,7 +272,7 @@ func (sq *StatQueue) Compress(maxQL int64) bool { idMap[id] = struct{}{} } } - for k, _ := range idMap { + for k := range idMap { ttl, has := sqMap[k] if !has { // log warning ttl = defaultTTL diff --git a/engine/pstr_http.go b/engine/pstr_http.go index 5ba21485f..4b7dcca38 100644 --- a/engine/pstr_http.go +++ b/engine/pstr_http.go @@ -22,7 +22,7 @@ import ( "bytes" "crypto/tls" "fmt" - "io/ioutil" + "io" "net/http" "net/url" "time" @@ -45,7 +45,7 @@ func HttpJsonPost(url string, skipTLSVerify bool, content []byte) (respBody []by if resp, err = client.Post(url, "application/json", bytes.NewBuffer(content)); err != nil { return } - respBody, err = ioutil.ReadAll(resp.Body) + respBody, err = io.ReadAll(resp.Body) resp.Body.Close() if err != nil { return @@ -118,7 +118,7 @@ func (pstr *HTTPPoster) GetResponse(content interface{}) (respBody []byte, err e } continue } - respBody, err = ioutil.ReadAll(resp.Body) + respBody, err = io.ReadAll(resp.Body) resp.Body.Close() if err != nil { utils.Logger.Warning(fmt.Sprintf(" Posting to : <%s>, error: <%s>", pstr.addr, err.Error())) diff --git a/engine/sharedgroup.go b/engine/sharedgroup.go index a1eaaf385..9039c8bca 100644 --- a/engine/sharedgroup.go +++ b/engine/sharedgroup.go @@ -63,7 +63,7 @@ func (sg *SharedGroup) Clone() (sharedGroup *SharedGroup) { if sg.MemberIds != nil { sharedGroup.MemberIds = sg.MemberIds.Clone() } - for id, _ := range sg.AccountParameters { + for id := range sg.AccountParameters { sharedGroup.AccountParameters[id] = sg.AccountParameters[id].Clone() } return diff --git a/engine/statmetrics.go b/engine/statmetrics.go index c8ab6f4eb..466def91b 100644 --- a/engine/statmetrics.go +++ b/engine/statmetrics.go @@ -196,7 +196,7 @@ func (asr *StatASR) GetFilterIDs() []string { // Compress is part of StatMetric interface func (asr *StatASR) Compress(queueLen int64, defaultID string) (eventIDs []string) { if asr.Count < queueLen { - for id, _ := range asr.Events { + for id := range asr.Events { eventIDs = append(eventIDs, id) } return @@ -324,7 +324,7 @@ func (acd *StatACD) GetFilterIDs() []string { // Compress is part of StatMetric interface func (acd *StatACD) Compress(queueLen int64, defaultID string) (eventIDs []string) { if acd.Count < queueLen { - for id, _ := range acd.Events { + for id := range acd.Events { eventIDs = append(eventIDs, id) } return @@ -452,7 +452,7 @@ func (tcd *StatTCD) GetFilterIDs() []string { // Compress is part of StatMetric interface func (tcd *StatTCD) Compress(queueLen int64, defaultID string) (eventIDs []string) { if tcd.Count < queueLen { - for id, _ := range tcd.Events { + for id := range tcd.Events { eventIDs = append(eventIDs, id) } return @@ -575,7 +575,7 @@ func (acc *StatACC) GetFilterIDs() []string { // Compress is part of StatMetric interface func (acc *StatACC) Compress(queueLen int64, defaultID string) (eventIDs []string) { if acc.Count < queueLen { - for id, _ := range acc.Events { + for id := range acc.Events { eventIDs = append(eventIDs, id) } return @@ -701,7 +701,7 @@ func (tcc *StatTCC) GetFilterIDs() []string { // Compress is part of StatMetric interface func (tcc *StatTCC) Compress(queueLen int64, defaultID string) (eventIDs []string) { if tcc.Count < queueLen { - for id, _ := range tcc.Events { + for id := range tcc.Events { eventIDs = append(eventIDs, id) } return @@ -829,7 +829,7 @@ func (pdd *StatPDD) GetFilterIDs() []string { // Compress is part of StatMetric interface func (pdd *StatPDD) Compress(queueLen int64, defaultID string) (eventIDs []string) { if pdd.Count < queueLen { - for id, _ := range pdd.Events { + for id := range pdd.Events { eventIDs = append(eventIDs, id) } return @@ -930,7 +930,7 @@ func (ddc *StatDDC) RemEvent(evID string) (err error) { // decrement events var fieldValue string - for k, _ := range fieldValues { + for k := range fieldValues { fieldValue = k break } @@ -966,7 +966,7 @@ func (ddc *StatDDC) GetFilterIDs() []string { } func (ddc *StatDDC) Compress(queueLen int64, defaultID string) (eventIDs []string) { - for id, _ := range ddc.Events { + for id := range ddc.Events { eventIDs = append(eventIDs, id) } return diff --git a/engine/storage_csv.go b/engine/storage_csv.go index 815ede252..592fb39b2 100644 --- a/engine/storage_csv.go +++ b/engine/storage_csv.go @@ -23,7 +23,6 @@ import ( "encoding/json" "fmt" "io" - "io/ioutil" "log" "net/http" "os" @@ -665,7 +664,7 @@ func saveToken(path string, token *oauth2.Token) { } func newSheet(configPath string) (sht *sheets.Service, err error) { //*google_api - b, err := ioutil.ReadFile(path.Join(configPath, utils.GoogleConfigDirName, utils.GoogleCredentialsFileName)) + b, err := os.ReadFile(path.Join(configPath, utils.GoogleConfigDirName, utils.GoogleCredentialsFileName)) if err != nil { err = fmt.Errorf("Unable to read client secret file: %v", err) return diff --git a/engine/storage_mongo_datadb.go b/engine/storage_mongo_datadb.go index 16f079e6e..386c0f860 100644 --- a/engine/storage_mongo_datadb.go +++ b/engine/storage_mongo_datadb.go @@ -23,7 +23,7 @@ import ( "compress/zlib" "context" "fmt" - "io/ioutil" + "io" "reflect" "strings" "sync" @@ -731,7 +731,7 @@ func (ms *MongoStorage) GetRatingPlanDrv(key string) (rp *RatingPlan, err error) if err != nil { return nil, err } - out, err := ioutil.ReadAll(r) + out, err := io.ReadAll(r) if err != nil { return nil, err } @@ -842,7 +842,7 @@ func (ms *MongoStorage) GetDestinationDrv(key string, skipCache bool, if err != nil { return nil, err } - out, err := ioutil.ReadAll(r) + out, err := io.ReadAll(r) if err != nil { return nil, err } @@ -1326,7 +1326,7 @@ func (ms *MongoStorage) GetActionPlanDrv(key string) (ats *ActionPlan, err error if err != nil { return nil, err } - out, err := ioutil.ReadAll(r) + out, err := io.ReadAll(r) if err != nil { return nil, err } diff --git a/engine/storage_mongo_stordb.go b/engine/storage_mongo_stordb.go index 21245c8c1..7286735e7 100644 --- a/engine/storage_mongo_stordb.go +++ b/engine/storage_mongo_stordb.go @@ -1023,7 +1023,7 @@ func (ms *MongoStorage) GetCDRs(qryFltr *utils.CDRsFilter, remove bool) ([]*CDR, //CostDetailsLow + "." + AccountLow: bson.M{"$in": qryFltr.RatedAccounts, "$nin": qryFltr.NotRatedAccounts}, //CostDetailsLow + "." + SubjectLow: bson.M{"$in": qryFltr.RatedSubjects, "$nin": qryFltr.NotRatedSubjects}, } - //file, _ := ioutil.TempFile(os.TempDir(), "debug") + //file, _ := os.CreateTemp(os.TempDir(), "debug") //file.WriteString(fmt.Sprintf("FILTER: %v\n", utils.ToIJSON(qryFltr))) //file.WriteString(fmt.Sprintf("BEFORE: %v\n", utils.ToIJSON(filters))) ms.cleanEmptyFilters(filters) diff --git a/engine/storage_redis.go b/engine/storage_redis.go index e577a8461..2502725af 100644 --- a/engine/storage_redis.go +++ b/engine/storage_redis.go @@ -23,7 +23,7 @@ import ( "compress/zlib" "errors" "fmt" - "io/ioutil" + "io" "strconv" "sync" "time" @@ -354,7 +354,7 @@ func (rs *RedisStorage) GetRatingPlanDrv(key string) (rp *RatingPlan, err error) if err != nil { return nil, err } - out, err := ioutil.ReadAll(r) + out, err := io.ReadAll(r) if err != nil { return nil, err } @@ -454,7 +454,7 @@ func (rs *RedisStorage) GetDestinationDrv(key string, skipCache bool, if err != nil { return nil, err } - out, err := ioutil.ReadAll(r) + out, err := io.ReadAll(r) if err != nil { return nil, err } @@ -820,7 +820,7 @@ func (rs *RedisStorage) GetActionPlanDrv(key string) (ats *ActionPlan, err error if err != nil { return nil, err } - out, err := ioutil.ReadAll(r) + out, err := io.ReadAll(r) if err != nil { return nil, err } diff --git a/engine/storage_sql.go b/engine/storage_sql.go index 4ec7299a6..bcbb00016 100644 --- a/engine/storage_sql.go +++ b/engine/storage_sql.go @@ -23,7 +23,7 @@ import ( "database/sql" "encoding/json" "fmt" - "io/ioutil" + "os" "path" "strings" "time" @@ -80,7 +80,7 @@ func (self *SQLStorage) RebuildReverseForPrefix(prefix string) error { } func (self *SQLStorage) CreateTablesFromScript(scriptPath string) error { - fileContent, err := ioutil.ReadFile(scriptPath) + fileContent, err := os.ReadFile(scriptPath) if err != nil { return err } diff --git a/engine/suretax.go b/engine/suretax.go index 86668beb1..c04b4a07d 100644 --- a/engine/suretax.go +++ b/engine/suretax.go @@ -24,7 +24,7 @@ import ( "encoding/json" "errors" "fmt" - "io/ioutil" + "io" "net/http" "strconv" "strings" @@ -202,7 +202,7 @@ func SureTaxProcessCdr(cdr *CDR) error { return err } defer resp.Body.Close() - respBody, err := ioutil.ReadAll(resp.Body) + respBody, err := io.ReadAll(resp.Body) if err != nil { return err } diff --git a/engine/tpimporter_csv.go b/engine/tpimporter_csv.go index cb8acf184..d472a3a53 100644 --- a/engine/tpimporter_csv.go +++ b/engine/tpimporter_csv.go @@ -20,8 +20,8 @@ package engine import ( "fmt" - "io/ioutil" "log" + "os" "github.com/cgrates/cgrates/utils" ) @@ -64,7 +64,7 @@ var fileHandlers = map[string]func(*TPCSVImporter, string) error{ func (self *TPCSVImporter) Run() error { self.csvr = NewFileCSVStorage(self.Sep, self.DirPath, false) - files, _ := ioutil.ReadDir(self.DirPath) + files, _ := os.ReadDir(self.DirPath) var withErrors bool for _, f := range files { fHandler, hasName := fileHandlers[f.Name()] diff --git a/ers/filecsv.go b/ers/filecsv.go index 8efa82c97..1eb3462e5 100644 --- a/ers/filecsv.go +++ b/ers/filecsv.go @@ -23,7 +23,6 @@ import ( "encoding/csv" "fmt" "io" - "io/ioutil" "os" "path" "strings" @@ -95,7 +94,7 @@ func (rdr *CSVFileER) Serve() (err error) { return default: } - filesInDir, _ := ioutil.ReadDir(rdr.rdrDir) + filesInDir, _ := os.ReadDir(rdr.rdrDir) for _, file := range filesInDir { if !strings.HasSuffix(file.Name(), utils.CSVSuffix) { // hardcoded file extension for csv event reader continue // used in order to filter the files from directory diff --git a/ers/filecsv_it_test.go b/ers/filecsv_it_test.go index 77816b9b4..d67cb0d94 100644 --- a/ers/filecsv_it_test.go +++ b/ers/filecsv_it_test.go @@ -21,7 +21,6 @@ along with this program. If not, see package ers import ( - "io/ioutil" "net/rpc" "os" "path" @@ -168,7 +167,7 @@ func testCsvITLoadTPFromFolder(t *testing.T) { func testCsvITHandleCdr1File(t *testing.T) { fileName := "file1.csv" tmpFilePath := path.Join("/tmp", fileName) - if err := ioutil.WriteFile(tmpFilePath, []byte(fileContent1), 0644); err != nil { + if err := os.WriteFile(tmpFilePath, []byte(fileContent1), 0644); err != nil { t.Fatal(err.Error()) } if err := os.Rename(tmpFilePath, path.Join("/tmp/ers/in", fileName)); err != nil { @@ -180,7 +179,7 @@ func testCsvITHandleCdr1File(t *testing.T) { func testCsvITHandleCdr2File(t *testing.T) { fileName := "file2.csv" tmpFilePath := path.Join("/tmp", fileName) - if err := ioutil.WriteFile(tmpFilePath, []byte(fileContent2), 0644); err != nil { + if err := os.WriteFile(tmpFilePath, []byte(fileContent2), 0644); err != nil { t.Fatal(err.Error()) } if err := os.Rename(tmpFilePath, path.Join("/tmp/ers2/in", fileName)); err != nil { @@ -206,7 +205,7 @@ func testCsvITHandleSessionFile(t *testing.T) { } fileName := "file3.csv" tmpFilePath := path.Join("/tmp", fileName) - if err := ioutil.WriteFile(tmpFilePath, []byte(fileContent3), 0644); err != nil { + if err := os.WriteFile(tmpFilePath, []byte(fileContent3), 0644); err != nil { t.Fatal(err.Error()) } if err := os.Rename(tmpFilePath, path.Join("/tmp/init_session/in", fileName)); err != nil { @@ -295,7 +294,7 @@ func testCsvITAnalyseCDRs(t *testing.T) { func testCsvITProcessFilteredCDR(t *testing.T) { fileName := "file1.csv" tmpFilePath := path.Join("/tmp", fileName) - if err := ioutil.WriteFile(tmpFilePath, []byte(fileContentForFilter), 0644); err != nil { + if err := os.WriteFile(tmpFilePath, []byte(fileContentForFilter), 0644); err != nil { t.Fatal(err.Error()) } if err := os.Rename(tmpFilePath, path.Join("/tmp/ers_with_filters/in", fileName)); err != nil { @@ -326,22 +325,22 @@ func testCsvITAnalyzeFilteredCDR(t *testing.T) { func testCsvITProcessedFiles(t *testing.T) { time.Sleep(time.Duration(1 * time.Second)) - if outContent1, err := ioutil.ReadFile("/tmp/ers/out/file1.csv"); err != nil { + if outContent1, err := os.ReadFile("/tmp/ers/out/file1.csv"); err != nil { t.Error(err) } else if fileContent1 != string(outContent1) { t.Errorf("Expecting: %q, received: %q", fileContent1, string(outContent1)) } - if outContent2, err := ioutil.ReadFile("/tmp/ers2/out/file2.csv"); err != nil { + if outContent2, err := os.ReadFile("/tmp/ers2/out/file2.csv"); err != nil { t.Error(err) } else if fileContent2 != string(outContent2) { t.Errorf("Expecting: %q, received: %q", fileContent2, string(outContent2)) } - if outContent3, err := ioutil.ReadFile("/tmp/cdrs/out/file3.csv"); err != nil { + if outContent3, err := os.ReadFile("/tmp/cdrs/out/file3.csv"); err != nil { t.Error(err) } else if fileContent3 != string(outContent3) { t.Errorf("Expecting: %q, received: %q", fileContent3, string(outContent3)) } - if outContent4, err := ioutil.ReadFile("/tmp/ers_with_filters/out/file1.csv"); err != nil { + if outContent4, err := os.ReadFile("/tmp/ers_with_filters/out/file1.csv"); err != nil { t.Error(err) } else if fileContentForFilter != string(outContent4) { t.Errorf("Expecting: %q, received: %q", fileContentForFilter, string(outContent4)) diff --git a/ers/filefwv.go b/ers/filefwv.go index d5fc49b9e..8d4c5bad9 100644 --- a/ers/filefwv.go +++ b/ers/filefwv.go @@ -22,7 +22,6 @@ import ( "bufio" "fmt" "io" - "io/ioutil" "os" "path" "strings" @@ -101,7 +100,7 @@ func (rdr *FWVFileER) Serve() (err error) { return default: } - filesInDir, _ := ioutil.ReadDir(rdr.rdrDir) + filesInDir, _ := os.ReadDir(rdr.rdrDir) for _, file := range filesInDir { if !strings.HasSuffix(file.Name(), utils.FWVSuffix) { // hardcoded file extension for xml event reader continue // used in order to filter the files from directory diff --git a/ers/filefwv_it_test.go b/ers/filefwv_it_test.go index e87f13259..a9f4fe58c 100644 --- a/ers/filefwv_it_test.go +++ b/ers/filefwv_it_test.go @@ -22,7 +22,6 @@ along with this program. If not, see package ers import ( - "io/ioutil" "net/rpc" "os" "path" @@ -189,7 +188,7 @@ TRL0001DDB ABC Some Connect A.B. func testFWVITHandleCdr1File(t *testing.T) { fileName := "file1.fwv" tmpFilePath := path.Join("/tmp", fileName) - if err := ioutil.WriteFile(tmpFilePath, []byte(fwvContent), 0644); err != nil { + if err := os.WriteFile(tmpFilePath, []byte(fwvContent), 0644); err != nil { t.Fatal(err.Error()) } if err := os.Rename(tmpFilePath, path.Join("/tmp/fwvErs/in", fileName)); err != nil { diff --git a/ers/filexml.go b/ers/filexml.go index a1443f31e..569a4e56d 100644 --- a/ers/filexml.go +++ b/ers/filexml.go @@ -20,7 +20,6 @@ package ers import ( "fmt" - "io/ioutil" "os" "path" "strings" @@ -95,7 +94,7 @@ func (rdr *XMLFileER) Serve() (err error) { return default: } - filesInDir, _ := ioutil.ReadDir(rdr.rdrDir) + filesInDir, _ := os.ReadDir(rdr.rdrDir) for _, file := range filesInDir { if !strings.HasSuffix(file.Name(), utils.XMLSuffix) { // hardcoded file extension for xml event reader continue // used in order to filter the files from directory diff --git a/ers/filexml_it_test.go b/ers/filexml_it_test.go index 53f1ff7a3..0cdccf769 100644 --- a/ers/filexml_it_test.go +++ b/ers/filexml_it_test.go @@ -21,7 +21,6 @@ along with this program. If not, see package ers import ( - "io/ioutil" "net/rpc" "os" "path" @@ -275,7 +274,7 @@ var cdrXmlBroadsoft = ` func testXMLITHandleCdr1File(t *testing.T) { fileName := "file1.xml" tmpFilePath := path.Join("/tmp", fileName) - if err := ioutil.WriteFile(tmpFilePath, []byte(cdrXmlBroadsoft), 0644); err != nil { + if err := os.WriteFile(tmpFilePath, []byte(cdrXmlBroadsoft), 0644); err != nil { t.Fatal(err.Error()) } if err := os.Rename(tmpFilePath, path.Join("/tmp/xmlErs/in", fileName)); err != nil { diff --git a/ers/flatstore.go b/ers/flatstore.go index add5b61b5..a49db1edf 100644 --- a/ers/flatstore.go +++ b/ers/flatstore.go @@ -24,7 +24,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "os" "path" "strconv" @@ -102,7 +101,7 @@ func (rdr *FlatstoreER) Serve() (err error) { return default: } - filesInDir, _ := ioutil.ReadDir(rdr.rdrDir) + filesInDir, _ := os.ReadDir(rdr.rdrDir) for _, file := range filesInDir { if !strings.HasSuffix(file.Name(), utils.CSVSuffix) { // hardcoded file extension for csv event reader continue // used in order to filter the files from directory diff --git a/ers/flatstore_it_test.go b/ers/flatstore_it_test.go index dcff13033..3682d1710 100644 --- a/ers/flatstore_it_test.go +++ b/ers/flatstore_it_test.go @@ -22,7 +22,6 @@ along with this program. If not, see package ers import ( - "io/ioutil" "net/rpc" "os" "path" @@ -168,16 +167,16 @@ func testFlatstoreITLoadTPFromFolder(t *testing.T) { // The default scenario, out of ers defined in .cfg file func testFlatstoreITHandleCdr1File(t *testing.T) { - if err := ioutil.WriteFile(path.Join("/tmp", "acc_1.log"), []byte(fullSuccessfull), 0644); err != nil { + if err := os.WriteFile(path.Join("/tmp", "acc_1.log"), []byte(fullSuccessfull), 0644); err != nil { t.Fatal(err.Error()) } - if err := ioutil.WriteFile(path.Join("/tmp", "missed_calls_1.log"), []byte(fullMissed), 0644); err != nil { + if err := os.WriteFile(path.Join("/tmp", "missed_calls_1.log"), []byte(fullMissed), 0644); err != nil { t.Fatal(err.Error()) } - if err := ioutil.WriteFile(path.Join("/tmp", "acc_2.log"), []byte(part1), 0644); err != nil { + if err := os.WriteFile(path.Join("/tmp", "acc_2.log"), []byte(part1), 0644); err != nil { t.Fatal(err.Error()) } - if err := ioutil.WriteFile(path.Join("/tmp", "acc_3.log"), []byte(part2), 0644); err != nil { + if err := os.WriteFile(path.Join("/tmp", "acc_3.log"), []byte(part2), 0644); err != nil { t.Fatal(err.Error()) } //Rename(oldpath, newpath string) @@ -188,16 +187,16 @@ func testFlatstoreITHandleCdr1File(t *testing.T) { } time.Sleep(3 * time.Second) // check the files to be processed - filesInDir, _ := ioutil.ReadDir("/tmp/flatstoreErs/in") + filesInDir, _ := os.ReadDir("/tmp/flatstoreErs/in") if len(filesInDir) != 0 { t.Errorf("Files in ersInDir: %+v", filesInDir) } - filesOutDir, _ := ioutil.ReadDir("/tmp/flatstoreErs/out") + filesOutDir, _ := os.ReadDir("/tmp/flatstoreErs/out") if len(filesOutDir) != 6 { t.Errorf("Unexpected number of files in output directory: %+v", len(filesOutDir)) } ePartContent := "INVITE|2daec40c|548625ac|dd0c4c617a9919d29a6175cdff223a9p@0:0:0:0:0:0:0:0|200|OK|1436454408|*prepaid|1001|1002||3401:2069362475\n" - if partContent, err := ioutil.ReadFile(path.Join("/tmp/flatstoreErs/out", "acc_3.log.tmp")); err != nil { + if partContent, err := os.ReadFile(path.Join("/tmp/flatstoreErs/out", "acc_3.log.tmp")); err != nil { t.Error(err) } else if (ePartContent) != (string(partContent)) { t.Errorf("Expecting:\n%s\nReceived:\n%s", ePartContent, string(partContent)) diff --git a/ers/partial_csv.go b/ers/partial_csv.go index afad29f25..922c49f26 100644 --- a/ers/partial_csv.go +++ b/ers/partial_csv.go @@ -23,7 +23,6 @@ import ( "encoding/csv" "fmt" "io" - "io/ioutil" "os" "path" "sort" @@ -109,7 +108,7 @@ func (rdr *PartialCSVFileER) Serve() (err error) { return default: } - filesInDir, _ := ioutil.ReadDir(rdr.rdrDir) + filesInDir, _ := os.ReadDir(rdr.rdrDir) for _, file := range filesInDir { if !strings.HasSuffix(file.Name(), utils.CSVSuffix) { // hardcoded file extension for csv event reader continue // used in order to filter the files from directory diff --git a/ers/partial_csv_it_test.go b/ers/partial_csv_it_test.go index 27d127d37..8230bcfa7 100644 --- a/ers/partial_csv_it_test.go +++ b/ers/partial_csv_it_test.go @@ -22,7 +22,6 @@ along with this program. If not, see package ers import ( - "io/ioutil" "net/rpc" "os" "path" @@ -167,7 +166,7 @@ func testPartITLoadTPFromFolder(t *testing.T) { func testPartITHandleCdr1File(t *testing.T) { fileName := "file1.csv" tmpFilePath := path.Join("/tmp", fileName) - if err := ioutil.WriteFile(tmpFilePath, []byte(partCsvFileContent1), 0644); err != nil { + if err := os.WriteFile(tmpFilePath, []byte(partCsvFileContent1), 0644); err != nil { t.Fatal(err.Error()) } if err := os.Rename(tmpFilePath, path.Join("/tmp/partErs1/in", fileName)); err != nil { @@ -179,7 +178,7 @@ func testPartITHandleCdr1File(t *testing.T) { func testPartITHandleCdr2File(t *testing.T) { fileName := "file2.csv" tmpFilePath := path.Join("/tmp", fileName) - if err := ioutil.WriteFile(tmpFilePath, []byte(partCsvFileContent2), 0644); err != nil { + if err := os.WriteFile(tmpFilePath, []byte(partCsvFileContent2), 0644); err != nil { t.Fatal(err.Error()) } if err := os.Rename(tmpFilePath, path.Join("/tmp/partErs1/in", fileName)); err != nil { @@ -191,7 +190,7 @@ func testPartITHandleCdr2File(t *testing.T) { func testPartITHandleCdr3File(t *testing.T) { fileName := "file3.csv" tmpFilePath := path.Join("/tmp", fileName) - if err := ioutil.WriteFile(tmpFilePath, []byte(partCsvFileContent3), 0644); err != nil { + if err := os.WriteFile(tmpFilePath, []byte(partCsvFileContent3), 0644); err != nil { t.Fatal(err.Error()) } if err := os.Rename(tmpFilePath, path.Join("/tmp/partErs2/in", fileName)); err != nil { @@ -201,7 +200,7 @@ func testPartITHandleCdr3File(t *testing.T) { } func testPartITVerifyFiles(t *testing.T) { - filesInDir, _ := ioutil.ReadDir("/tmp/partErs1/out/") + filesInDir, _ := os.ReadDir("/tmp/partErs1/out/") if len(filesInDir) == 0 { t.Errorf("No files found in folder: <%s>", "/tmp/partErs1/out") } @@ -212,7 +211,7 @@ func testPartITVerifyFiles(t *testing.T) { break } } - if contentCacheDump, err := ioutil.ReadFile(path.Join("/tmp/partErs1/out", fileName)); err != nil { + if contentCacheDump, err := os.ReadFile(path.Join("/tmp/partErs1/out", fileName)); err != nil { t.Error(err) } else if len(eCacheDumpFile1) != len(string(contentCacheDump)) { t.Errorf("Expecting: %q, \n received: %q", eCacheDumpFile1, string(contentCacheDump)) diff --git a/general_tests/cdrs_it_test.go b/general_tests/cdrs_it_test.go index f10862c30..15392ae54 100644 --- a/general_tests/cdrs_it_test.go +++ b/general_tests/cdrs_it_test.go @@ -605,7 +605,7 @@ func testV2CDRsGetThreshold1(t *testing.T) { expected := []string{"THD_ACNT_1001", "THD_PoccessCDR"} var result []string if err := cdrsRpc.Call(utils.APIerSv1GetThresholdProfileIDs, - utils.TenantArgWithPaginator{TenantArg: utils.TenantArg{"cgrates.org"}}, &result); err != nil { + utils.TenantArgWithPaginator{TenantArg: utils.TenantArg{Tenant: "cgrates.org"}}, &result); err != nil { t.Error(err) } else if len(expected) != len(result) { t.Errorf("Expecting : %+v, received: %+v", expected, result) diff --git a/general_tests/cdrs_onlexp_it_test.go b/general_tests/cdrs_onlexp_it_test.go index edeb2c088..94ffde28d 100644 --- a/general_tests/cdrs_onlexp_it_test.go +++ b/general_tests/cdrs_onlexp_it_test.go @@ -25,7 +25,6 @@ import ( "context" "encoding/json" "fmt" - "io/ioutil" "net/url" "os" "os/exec" @@ -230,7 +229,7 @@ func testCDRsOnExpDisableOnlineExport(t *testing.T) { t.Error("Unexpected reply received: ", reply) } time.Sleep(time.Duration(*waitRater) * time.Millisecond) - filesInDir, _ := ioutil.ReadDir(cdrsMasterCfg.GeneralCfg().FailedPostsDir) + filesInDir, _ := os.ReadDir(cdrsMasterCfg.GeneralCfg().FailedPostsDir) if len(filesInDir) != 0 { t.Fatalf("Should be no files in directory: %s", cdrsMasterCfg.GeneralCfg().FailedPostsDir) } @@ -485,7 +484,7 @@ func testCDRsOnExpFileFailover(t *testing.T) { v1.Set("OriginID", "httpjsonrpc1") v2.Set("OriginID", "amqpreconnect") httpContent := []interface{}{v1, v2} - filesInDir, _ := ioutil.ReadDir(cdrsMasterCfg.GeneralCfg().FailedPostsDir) + filesInDir, _ := os.ReadDir(cdrsMasterCfg.GeneralCfg().FailedPostsDir) if len(filesInDir) == 0 { t.Fatalf("No files in directory: %s", cdrsMasterCfg.GeneralCfg().FailedPostsDir) } diff --git a/general_tests/cdrs_post_failover_it_test.go b/general_tests/cdrs_post_failover_it_test.go index 3eaedea2c..f992ce0ca 100644 --- a/general_tests/cdrs_post_failover_it_test.go +++ b/general_tests/cdrs_post_failover_it_test.go @@ -22,8 +22,8 @@ along with this program. If not, see package general_tests import ( - "io/ioutil" "net/rpc" + "os" "path" "testing" "time" @@ -179,7 +179,7 @@ func testCDRsPostFailoverProcessCDR(t *testing.T) { func testCDRsPostFailoverToFile(t *testing.T) { time.Sleep(time.Duration(2 * time.Second)) - filesInDir, _ := ioutil.ReadDir(cdrsPostFailCfg.GeneralCfg().FailedPostsDir) + filesInDir, _ := os.ReadDir(cdrsPostFailCfg.GeneralCfg().FailedPostsDir) if len(filesInDir) == 0 { t.Fatalf("No files in directory: %s", cdrsPostFailCfg.GeneralCfg().FailedPostsDir) } diff --git a/general_tests/cdrs_processevent_it_test.go b/general_tests/cdrs_processevent_it_test.go index 9cdf38adb..4de351b12 100644 --- a/general_tests/cdrs_processevent_it_test.go +++ b/general_tests/cdrs_processevent_it_test.go @@ -22,8 +22,8 @@ package general_tests import ( "fmt" - "io/ioutil" "net/rpc" + "os" "path" "reflect" "sort" @@ -571,7 +571,7 @@ func testV1CDRsProcessEventExport(t *testing.T) { } func testV1CDRsProcessEventExportCheck(t *testing.T) { failoverContent := []byte(fmt.Sprintf(`{"CGRID":"%s"}`, utils.Sha1("test7_processEvent", "OriginHost7"))) - filesInDir, _ := ioutil.ReadDir(pecdrsCfg.GeneralCfg().FailedPostsDir) + filesInDir, _ := os.ReadDir(pecdrsCfg.GeneralCfg().FailedPostsDir) if len(filesInDir) == 0 { t.Fatalf("No files in directory: %s", pecdrsCfg.GeneralCfg().FailedPostsDir) } diff --git a/general_tests/oldtutorial_it_test.go b/general_tests/oldtutorial_it_test.go index fc66e221c..8e7535e47 100644 --- a/general_tests/oldtutorial_it_test.go +++ b/general_tests/oldtutorial_it_test.go @@ -22,7 +22,6 @@ along with this program. If not, see package general_tests // import ( -// "io/ioutil" // "net/rpc" // "net/rpc/jsonrpc" // "os" @@ -1449,7 +1448,7 @@ package general_tests // f0a92222a7d21b4d9f72744aabe82daef52e20d8,*default,testexportcdr1,*rated,cgrates.org,call,1001,1003,2016-11-30T18:06:04+01:00,98,1.33340,RETA // ` // expFilePath := path.Join(*exportArgs.ExportPath, *exportArgs.ExportFileName) -// if expContent, err := ioutil.ReadFile(expFilePath); err != nil { +// if expContent, err := os.ReadFile(expFilePath); err != nil { // t.Error(err) // } else if eExportContent != string(expContent) && eExportContent2 != string(expContent) { // CDRs are showing up randomly so we cannot predict order of export // t.Errorf("Expecting: <%q> or <%q> received: <%q>", eExportContent, eExportContent2, string(expContent)) diff --git a/general_tests/poster_it_test.go b/general_tests/poster_it_test.go index eff1ed536..cb0e5ba90 100644 --- a/general_tests/poster_it_test.go +++ b/general_tests/poster_it_test.go @@ -23,8 +23,8 @@ package general_tests import ( "encoding/json" "fmt" - "io/ioutil" "net/rpc" + "os" "path" "testing" "time" @@ -112,7 +112,7 @@ func testPosterITRpcConn(t *testing.T) { } } func testPosterReadFolder(format string) (expEv *engine.ExportEvents, err error) { - filesInDir, _ := ioutil.ReadDir(pstrCfg.GeneralCfg().FailedPostsDir) + filesInDir, _ := os.ReadDir(pstrCfg.GeneralCfg().FailedPostsDir) if len(filesInDir) == 0 { err = fmt.Errorf("No files in directory: %s", pstrCfg.GeneralCfg().FailedPostsDir) return diff --git a/loaders/loader.go b/loaders/loader.go index cc8a8207a..8d80e0bf0 100644 --- a/loaders/loader.go +++ b/loaders/loader.go @@ -22,7 +22,6 @@ import ( "encoding/csv" "fmt" "io" - "io/ioutil" "os" "path" "strings" @@ -151,7 +150,7 @@ func (ldr *Loader) unreferenceFile(loaderType, fileName string) (err error) { } func (ldr *Loader) moveFiles() (err error) { - filesInDir, _ := ioutil.ReadDir(ldr.tpInDir) + filesInDir, _ := os.ReadDir(ldr.tpInDir) for _, file := range filesInDir { fName := file.Name() if fName == ldr.lockFilename { diff --git a/loaders/loader_it_test.go b/loaders/loader_it_test.go index 3930d20e3..07392f911 100644 --- a/loaders/loader_it_test.go +++ b/loaders/loader_it_test.go @@ -21,7 +21,6 @@ along with this program. If not, see package loaders import ( - "io/ioutil" "net/rpc" "os" "path" @@ -128,7 +127,7 @@ func testLoaderRPCConn(t *testing.T) { func testLoaderPopulateData(t *testing.T) { fileName := utils.AttributesCsv tmpFilePath := path.Join("/tmp", fileName) - if err := ioutil.WriteFile(tmpFilePath, []byte(engine.AttributesCSVContent), 0777); err != nil { + if err := os.WriteFile(tmpFilePath, []byte(engine.AttributesCSVContent), 0777); err != nil { t.Fatal(err.Error()) } if err := os.Rename(tmpFilePath, path.Join(loaderPathIn, fileName)); err != nil { @@ -146,7 +145,7 @@ func testLoaderLoadAttributes(t *testing.T) { func testLoaderVerifyOutDir(t *testing.T) { time.Sleep(100 * time.Millisecond) - if outContent1, err := ioutil.ReadFile(path.Join(loaderPathOut, utils.AttributesCsv)); err != nil { + if outContent1, err := os.ReadFile(path.Join(loaderPathOut, utils.AttributesCsv)); err != nil { t.Error(err) } else if engine.AttributesCSVContent != string(outContent1) { t.Errorf("Expecting: %q, received: %q", engine.AttributesCSVContent, string(outContent1)) diff --git a/loaders/loader_test.go b/loaders/loader_test.go index a4e1bd1ed..47fc490c5 100644 --- a/loaders/loader_test.go +++ b/loaders/loader_test.go @@ -20,7 +20,7 @@ package loaders import ( "encoding/csv" - "io/ioutil" + "io" "reflect" "sort" "strings" @@ -90,7 +90,7 @@ func TestLoaderProcessContentSingleFile(t *testing.T) { Value: config.NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, }, } - rdr := ioutil.NopCloser(strings.NewReader(engine.AttributesCSVContent)) + rdr := io.NopCloser(strings.NewReader(engine.AttributesCSVContent)) csvRdr := csv.NewReader(rdr) csvRdr.Comment = '#' ldr.rdrs = map[string]map[string]*openedCSVFile{ @@ -176,10 +176,10 @@ func TestLoaderProcessContentMultiFiles(t *testing.T) { Value: config.NewRSRParsersMustCompile("10", true, utils.INFIELD_SEP)}, }, } - rdr1 := ioutil.NopCloser(strings.NewReader(file1CSV)) + rdr1 := io.NopCloser(strings.NewReader(file1CSV)) csvRdr1 := csv.NewReader(rdr1) csvRdr1.Comment = '#' - rdr2 := ioutil.NopCloser(strings.NewReader(file2CSV)) + rdr2 := io.NopCloser(strings.NewReader(file2CSV)) csvRdr2 := csv.NewReader(rdr2) csvRdr2.Comment = '#' ldr.rdrs = map[string]map[string]*openedCSVFile{ @@ -274,7 +274,7 @@ func TestLoaderProcessResource(t *testing.T) { Value: config.NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, }, } - rdr := ioutil.NopCloser(strings.NewReader(engine.ResourcesCSVContent)) + rdr := io.NopCloser(strings.NewReader(engine.ResourcesCSVContent)) csvRdr := csv.NewReader(rdr) csvRdr.Comment = '#' ldr.rdrs = map[string]map[string]*openedCSVFile{ @@ -372,7 +372,7 @@ func TestLoaderProcessFilters(t *testing.T) { Value: config.NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, }, } - rdr := ioutil.NopCloser(strings.NewReader(engine.FiltersCSVContent)) + rdr := io.NopCloser(strings.NewReader(engine.FiltersCSVContent)) csvRdr := csv.NewReader(rdr) csvRdr.Comment = '#' ldr.rdrs = map[string]map[string]*openedCSVFile{ @@ -503,7 +503,7 @@ func TestLoaderProcessThresholds(t *testing.T) { Value: config.NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, }, } - rdr := ioutil.NopCloser(strings.NewReader(engine.ThresholdsCSVContent)) + rdr := io.NopCloser(strings.NewReader(engine.ThresholdsCSVContent)) csvRdr := csv.NewReader(rdr) csvRdr.Comment = '#' ldr.rdrs = map[string]map[string]*openedCSVFile{ @@ -610,7 +610,7 @@ func TestLoaderProcessStats(t *testing.T) { Value: config.NewRSRParsersMustCompile("~12", true, utils.INFIELD_SEP)}, }, } - rdr := ioutil.NopCloser(strings.NewReader(engine.StatsCSVContent)) + rdr := io.NopCloser(strings.NewReader(engine.StatsCSVContent)) csvRdr := csv.NewReader(rdr) csvRdr.Comment = '#' ldr.rdrs = map[string]map[string]*openedCSVFile{ @@ -743,7 +743,7 @@ func TestLoaderProcessSuppliers(t *testing.T) { Value: config.NewRSRParsersMustCompile("~15", true, utils.INFIELD_SEP)}, }, } - rdr := ioutil.NopCloser(strings.NewReader(engine.SuppliersCSVContent)) + rdr := io.NopCloser(strings.NewReader(engine.SuppliersCSVContent)) csvRdr := csv.NewReader(rdr) csvRdr.Comment = '#' ldr.rdrs = map[string]map[string]*openedCSVFile{ @@ -865,7 +865,7 @@ func TestLoaderProcessChargers(t *testing.T) { Value: config.NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, }, } - rdr := ioutil.NopCloser(strings.NewReader(engine.ChargersCSVContent)) + rdr := io.NopCloser(strings.NewReader(engine.ChargersCSVContent)) csvRdr := csv.NewReader(rdr) csvRdr.Comment = '#' ldr.rdrs = map[string]map[string]*openedCSVFile{ @@ -993,7 +993,7 @@ func TestLoaderProcessDispatches(t *testing.T) { }, }, } - rdr := ioutil.NopCloser(strings.NewReader(engine.DispatcherCSVContent)) + rdr := io.NopCloser(strings.NewReader(engine.DispatcherCSVContent)) csvRdr := csv.NewReader(rdr) csvRdr.Comment = '#' ldr.rdrs = map[string]map[string]*openedCSVFile{ @@ -1097,7 +1097,7 @@ func TestLoaderProcessDispatcheHosts(t *testing.T) { }, }, } - rdr := ioutil.NopCloser(strings.NewReader(engine.DispatcherHostCSVContent)) + rdr := io.NopCloser(strings.NewReader(engine.DispatcherHostCSVContent)) csvRdr := csv.NewReader(rdr) csvRdr.Comment = '#' ldr.rdrs = map[string]map[string]*openedCSVFile{ @@ -1163,7 +1163,7 @@ func TestLoaderRemoveContentSingleFile(t *testing.T) { Mandatory: true}, }, } - rdr := ioutil.NopCloser(strings.NewReader(engine.AttributesCSVContent)) + rdr := io.NopCloser(strings.NewReader(engine.AttributesCSVContent)) csvRdr := csv.NewReader(rdr) csvRdr.Comment = '#' ldr.rdrs = map[string]map[string]*openedCSVFile{ diff --git a/utils/apitpdata.go b/utils/apitpdata.go index 5353b4c06..3158ad94d 100755 --- a/utils/apitpdata.go +++ b/utils/apitpdata.go @@ -755,9 +755,8 @@ func (fltr *CDRsFilter) Prepare() { // sort.Strings(fltr.DestinationPrefixes) // sort.Strings(fltr.NotDestinationPrefixes) - sort.Sort(sort.Float64Slice(fltr.Costs)) - sort.Sort(sort.Float64Slice(fltr.NotCosts)) - + sort.Float64s(fltr.Costs) + sort.Float64s(fltr.NotCosts) } // RPCCDRsFilter is a filter used in Rpc calls diff --git a/utils/basic_auth.go b/utils/basic_auth.go index 5820a12ff..d1bb08471 100644 --- a/utils/basic_auth.go +++ b/utils/basic_auth.go @@ -53,28 +53,28 @@ func basicAuth(userList map[string]string) basicAuthMiddleware { authHeader := strings.SplitN(r.Header.Get("Authorization"), " ", 2) if len(authHeader) != 2 { Logger.Warning(" Missing authorization header value") - http.Error(w, "Not authorized", 401) + http.Error(w, "Not authorized", http.StatusUnauthorized) return } authHeaderDecoded, err := base64.StdEncoding.DecodeString(authHeader[1]) if err != nil { Logger.Warning(" Unable to decode authorization header") - http.Error(w, err.Error(), 401) + http.Error(w, err.Error(), http.StatusUnauthorized) return } userPass := strings.SplitN(string(authHeaderDecoded), ":", 2) if len(userPass) != 2 { Logger.Warning(" Unauthorized API access. Missing or extra credential components") - http.Error(w, "Not authorized", 401) + http.Error(w, "Not authorized", http.StatusUnauthorized) return } valid := verifyCredential(userPass[0], userPass[1], userList) if !valid { Logger.Warning(fmt.Sprintf(" Unauthorized API access by user '%s'", userPass[0])) - http.Error(w, "Not authorized", 401) + http.Error(w, "Not authorized", http.StatusUnauthorized) return } diff --git a/utils/concureqs.go b/utils/concureqs.go index 8d41f7843..2ab59ad54 100644 --- a/utils/concureqs.go +++ b/utils/concureqs.go @@ -65,5 +65,4 @@ func (cR *ConcReqs) Deallocate() { return } cR.aReqs <- struct{}{} - return } diff --git a/utils/coreutils.go b/utils/coreutils.go index 813b59ad0..bf3aa8b9b 100644 --- a/utils/coreutils.go +++ b/utils/coreutils.go @@ -564,21 +564,21 @@ func FmtFieldWidth(fieldID, source string, width int, strip, padding string, man // Returns the string representation of iface or error if not convertible func CastIfToString(iface interface{}) (strVal string, casts bool) { - switch iface.(type) { + switch rawVal := iface.(type) { case string: - strVal = iface.(string) + strVal = rawVal casts = true case int: - strVal = strconv.Itoa(iface.(int)) + strVal = strconv.Itoa(rawVal) casts = true case int64: - strVal = strconv.FormatInt(iface.(int64), 10) + strVal = strconv.FormatInt(rawVal, 10) casts = true case float64: - strVal = strconv.FormatFloat(iface.(float64), 'f', -1, 64) + strVal = strconv.FormatFloat(rawVal, 'f', -1, 64) casts = true case bool: - strVal = strconv.FormatBool(iface.(bool)) + strVal = strconv.FormatBool(rawVal) casts = true case []uint8: var byteVal []byte @@ -734,7 +734,7 @@ func GetCGRVersion() (vers string, err error) { } func NewTenantID(tntID string) *TenantID { - if strings.Index(tntID, CONCATENATED_KEY_SEP) == -1 { // no :, ID without Tenant + if !strings.Contains(tntID, CONCATENATED_KEY_SEP) { // no :, ID without Tenant return &TenantID{ID: tntID} } tIDSplt := strings.Split(tntID, CONCATENATED_KEY_SEP) diff --git a/utils/dataconverter.go b/utils/dataconverter.go index 0b7322762..f1290b8ce 100644 --- a/utils/dataconverter.go +++ b/utils/dataconverter.go @@ -283,7 +283,7 @@ func (lc *PhoneNumberConverter) Convert(in interface{}) (out interface{}, err er // HexConvertor will round floats type IP2HexConverter struct{} -func (_ *IP2HexConverter) Convert(in interface{}) (out interface{}, err error) { +func (*IP2HexConverter) Convert(in interface{}) (out interface{}, err error) { var ip net.IP switch val := in.(type) { case string: diff --git a/utils/map.go b/utils/map.go index bd5aa6216..13e21b233 100644 --- a/utils/map.go +++ b/utils/map.go @@ -126,9 +126,7 @@ func (sm StringMap) Slice() []string { } func (sm StringMap) IsEmpty() bool { - return sm == nil || - len(sm) == 0 || - sm[ANY] == true + return len(sm) == 0 || sm[ANY] } func StringMapFromSlice(s []string) StringMap { @@ -289,7 +287,7 @@ func (fWp FlagsWithParams) GetBool(key string) (b bool) { if v, b = fWp[key]; !b { return // not present means false } - if v == nil || len(v) == 0 { + if len(v) == 0 { return true // empty slice } return v[0] == "true" // check only the first element diff --git a/utils/navigablemap.go b/utils/navigablemap.go index 064ccd69a..d51394d02 100644 --- a/utils/navigablemap.go +++ b/utils/navigablemap.go @@ -164,7 +164,7 @@ func (nm NavigableMap2) Type() NMType { // Empty returns true if the NM is empty(no data) func (nm NavigableMap2) Empty() bool { - return nm == nil || len(nm) == 0 + return len(nm) == 0 } // Len returns the lenght of the map diff --git a/utils/nmslice.go b/utils/nmslice.go index e7f6bff6b..13c1a567e 100644 --- a/utils/nmslice.go +++ b/utils/nmslice.go @@ -131,7 +131,7 @@ func (nms NMSlice) Type() NMType { // Empty returns true if the NM is empty(no data) func (nms NMSlice) Empty() bool { - return nms == nil || len(nms) == 0 + return len(nms) == 0 } // Len returns the lenght of the slice diff --git a/utils/reflect.go b/utils/reflect.go index 17faa57ba..1e92191ed 100644 --- a/utils/reflect.go +++ b/utils/reflect.go @@ -113,11 +113,11 @@ func ReflectFieldAsString(intf interface{}, fldName, extraFieldsLabel string) (s } func IfaceAsTime(itm interface{}, timezone string) (t time.Time, err error) { - switch itm.(type) { + switch val := itm.(type) { case time.Time: - return itm.(time.Time), nil + return val, nil case string: - return ParseTimeDetectLayout(itm.(string), timezone) + return ParseTimeDetectLayout(val, timezone) default: err = fmt.Errorf("cannot convert field: %+v to time.Time", itm) } @@ -137,7 +137,7 @@ func IfaceAsDuration(itm interface{}) (d time.Duration, err error) { case int32: return time.Duration(int64(it)), nil case int64: - return time.Duration(int64(it)), nil + return time.Duration(it), nil case uint: return time.Duration(int64(it)), nil case uint8: @@ -220,17 +220,17 @@ func IfaceAsFloat64(itm interface{}) (f float64, err error) { } func IfaceAsBool(itm interface{}) (b bool, err error) { - switch itm.(type) { + switch val := itm.(type) { case bool: - return itm.(bool), nil + return val, nil case string: - return strconv.ParseBool(itm.(string)) + return strconv.ParseBool(val) case int: - return itm.(int) > 0, nil + return val > 0, nil case int64: - return itm.(int64) > 0, nil + return val > 0, nil case float64: - return itm.(float64) > 0, nil + return val > 0, nil default: err = fmt.Errorf("cannot convert field: %+v to bool", itm) } diff --git a/utils/rsrfield.go b/utils/rsrfield.go index c34b815ce..639b78132 100644 --- a/utils/rsrfield.go +++ b/utils/rsrfield.go @@ -71,10 +71,8 @@ func NewRSRField(fldStr string) (fld *RSRField, err error) { if strings.HasPrefix(fldStr, STATIC_VALUE_PREFIX) { // Special case when RSR is defined as static header/value var staticHdr, staticVal string if splt := strings.Split(fldStr, STATIC_HDRVAL_SEP); len(splt) == 2 { // Using / as separator since ':' is often use in date/time fields - staticHdr, staticVal = splt[0][1:], splt[1] // Strip the / suffix - if strings.HasSuffix(staticVal, "/") { // If value ends with /, strip it since it is a part of the definition syntax - staticVal = staticVal[:len(staticVal)-1] - } + staticHdr, staticVal = splt[0][1:], splt[1] // Strip the / suffix + staticVal = strings.TrimSuffix(staticVal, "/") // If value ends with /, strip it since it is a part of the definition syntax } else if len(splt) > 2 { return nil, fmt.Errorf("Invalid RSRField string: %s", fldStr) } else { @@ -299,7 +297,7 @@ func (rsrFltr *RSRFilter) Pass(val string) bool { } return gt != rsrFltr.negative } - return (strings.Index(val, rsrFltr.filterRule) != -1) != rsrFltr.negative // default is string index + return strings.Contains(val, rsrFltr.filterRule) != rsrFltr.negative // default is string index } func ParseRSRFilters(fldsStr, sep string) (RSRFilters, error) { diff --git a/utils/server.go b/utils/server.go index dab83def0..681d9a412 100644 --- a/utils/server.go +++ b/utils/server.go @@ -25,13 +25,13 @@ import ( "encoding/gob" "fmt" "io" - "io/ioutil" "log" "net" "net/http" "net/http/pprof" "net/rpc" "net/url" + "os" "reflect" "strings" "sync" @@ -298,7 +298,7 @@ func (s *Server) ServeHTTP(addr string, jsonRPCURL string, wsRPCURL string, } Logger.Info(fmt.Sprintf(" start listening at <%s>", addr)) if err := http.ListenAndServe(addr, s.httpMux); err != nil { - log.Println(fmt.Sprintf("Error: %s when listening ", err)) + log.Printf("Error: %s when listening ", err) } exitChan <- true } @@ -397,7 +397,7 @@ func loadTLSConfig(serverCrt, serverKey, caCert string, serverPolicy int, } if caCert != "" { - ca, err := ioutil.ReadFile(caCert) + ca, err := os.ReadFile(caCert) if err != nil { log.Fatalf("Error: %s when read CA", err) return config, err @@ -434,7 +434,7 @@ func (s *Server) ServeGOBTLS(addr, serverCrt, serverKey, caCert string, } listener, err := tls.Listen(TCP, addr, &config) if err != nil { - log.Println(fmt.Sprintf("Error: %s when listening", err)) + log.Printf("Error: %s when listening", err) exitChan <- true return } @@ -477,7 +477,7 @@ func (s *Server) ServeJSONTLS(addr, serverCrt, serverKey, caCert string, } listener, err := tls.Listen(TCP, addr, &config) if err != nil { - log.Println(fmt.Sprintf("Error: %s when listening", err)) + log.Printf("Error: %s when listening", err) exitChan <- true return } @@ -566,8 +566,7 @@ func (s *Server) ServeHTTPTLS(addr, serverCrt, serverKey, caCert string, serverP } Logger.Info(fmt.Sprintf(" start listening at <%s>", addr)) if err := httpSrv.ListenAndServeTLS(serverCrt, serverKey); err != nil { - log.Println(fmt.Sprintf("Error: %s when listening ", err)) + log.Printf("Error: %s when listening ", err) } exitChan <- true - return } diff --git a/utils/struct.go b/utils/struct.go index d5cb9d04a..94b949b63 100644 --- a/utils/struct.go +++ b/utils/struct.go @@ -198,7 +198,6 @@ func SetMapExtraFields(in interface{}, values map[string]string, extraFields str } } } - return } func FromMapStringString(m map[string]string, in interface{}) { @@ -216,7 +215,6 @@ func FromMapStringString(m map[string]string, in interface{}) { } } } - return } func FromMapStringInterface(m map[string]interface{}, in interface{}) error {