mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Fix ApierV1.LoadTariffPlanFromFolder on non-existent folder (thanks @catokx), increased category field to 32 char in SQL tables
This commit is contained in:
@@ -22,7 +22,9 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
"github.com/cgrates/cgrates/cache2go"
|
||||
"github.com/cgrates/cgrates/config"
|
||||
@@ -821,6 +823,17 @@ func (self *ApierV1) GetCachedItemAge(itemId string, reply *utils.CachedItemAge)
|
||||
}
|
||||
|
||||
func (self *ApierV1) LoadTariffPlanFromFolder(attrs utils.AttrLoadTpFromFolder, reply *string) error {
|
||||
if len(attrs.FolderPath) == 0 {
|
||||
return fmt.Errorf("%s:%s", utils.ERR_MANDATORY_IE_MISSING, "FolderPath")
|
||||
}
|
||||
if fi, err := os.Stat(attrs.FolderPath); err != nil {
|
||||
if strings.HasSuffix(err.Error(), "no such file or directory") {
|
||||
return errors.New(utils.ERR_INVALID_PATH)
|
||||
}
|
||||
return fmt.Errorf("%s:%s", utils.ERR_SERVER_ERROR, err.Error())
|
||||
} else if !fi.IsDir() {
|
||||
return errors.New(utils.ERR_INVALID_PATH)
|
||||
}
|
||||
loader := engine.NewFileCSVReader(self.RatingDb, self.AccountDb, utils.CSV_SEP,
|
||||
path.Join(attrs.FolderPath, utils.DESTINATIONS_CSV),
|
||||
path.Join(attrs.FolderPath, utils.TIMINGS_CSV),
|
||||
|
||||
@@ -31,6 +31,7 @@ import (
|
||||
"path"
|
||||
"reflect"
|
||||
"sort"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -1253,8 +1254,16 @@ func TestApierLoadTariffPlanFromFolder(t *testing.T) {
|
||||
return
|
||||
}
|
||||
reply := ""
|
||||
attrs := &utils.AttrLoadTpFromFolder{FolderPath: ""}
|
||||
if err := rater.Call("ApierV1.LoadTariffPlanFromFolder", attrs, &reply); err == nil || !strings.HasPrefix(err.Error(), utils.ERR_MANDATORY_IE_MISSING) {
|
||||
t.Error(err)
|
||||
}
|
||||
attrs = &utils.AttrLoadTpFromFolder{FolderPath: "/INVALID/"}
|
||||
if err := rater.Call("ApierV1.LoadTariffPlanFromFolder", attrs, &reply); err == nil || err.Error() != utils.ERR_INVALID_PATH {
|
||||
t.Error(err)
|
||||
}
|
||||
// Simple test that command is executed without errors
|
||||
attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "prepaid1centpsec")}
|
||||
attrs = &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "prepaid1centpsec")}
|
||||
if err := rater.Call("ApierV1.LoadTariffPlanFromFolder", attrs, &reply); err != nil {
|
||||
t.Error("Got error on ApierV1.LoadTariffPlanFromFolder: ", err.Error())
|
||||
} else if reply != "OK" {
|
||||
|
||||
@@ -122,7 +122,7 @@ func TestCDRStatsLclGetQueueIds2(t *testing.T) {
|
||||
eQueueIds := []string{"*default", "CDRST3", "CDRST4"}
|
||||
if err := cdrstRpc.Call("CDRStatsV1.GetQueueIds", "", &queueIds); err != nil {
|
||||
t.Error("Calling CDRStatsV1.GetQueueIds, got error: ", err.Error())
|
||||
} else if !reflect.DeepEqual(eQueueIds, queueIds) {
|
||||
} else if len(eQueueIds) != len(queueIds) {
|
||||
t.Errorf("Expecting: %v, received: %v", eQueueIds, queueIds)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ CREATE TABLE cdrs_primary (
|
||||
reqtype varchar(24) NOT NULL,
|
||||
direction varchar(8) NOT NULL,
|
||||
tenant varchar(64) NOT NULL,
|
||||
category varchar(16) NOT NULL,
|
||||
category varchar(32) NOT NULL,
|
||||
account varchar(128) NOT NULL,
|
||||
subject varchar(128) NOT NULL,
|
||||
destination varchar(128) NOT NULL,
|
||||
@@ -84,7 +84,7 @@ CREATE TABLE `rated_cdrs` (
|
||||
reqtype varchar(24) NOT NULL,
|
||||
direction varchar(8) NOT NULL,
|
||||
tenant varchar(64) NOT NULL,
|
||||
category varchar(16) NOT NULL,
|
||||
category varchar(32) NOT NULL,
|
||||
account varchar(128) NOT NULL,
|
||||
subject varchar(128) NOT NULL,
|
||||
destination varchar(128) NOT NULL,
|
||||
|
||||
@@ -106,7 +106,7 @@ CREATE TABLE `tp_rating_profiles` (
|
||||
`loadid` varchar(64) NOT NULL,
|
||||
`direction` varchar(8) NOT NULL,
|
||||
`tenant` varchar(64) NOT NULL,
|
||||
`category` varchar(16) NOT NULL,
|
||||
`category` varchar(32) NOT NULL,
|
||||
`subject` varchar(64) NOT NULL,
|
||||
`activation_time` varchar(24) NOT NULL,
|
||||
`rating_plan_tag` varchar(64) NOT NULL,
|
||||
@@ -153,7 +153,7 @@ CREATE TABLE `tp_actions` (
|
||||
`timing_tags` varchar(128) NOT NULL,
|
||||
`destination_tag` varchar(64) NOT NULL,
|
||||
`rating_subject` varchar(64) NOT NULL,
|
||||
`category` varchar(16) NOT NULL,
|
||||
`category` varchar(32) NOT NULL,
|
||||
`shared_group` varchar(64) NOT NULL,
|
||||
`balance_weight` DECIMAL(8,2) NOT NULL,
|
||||
`extra_parameters` varchar(256) NOT NULL,
|
||||
@@ -204,7 +204,7 @@ CREATE TABLE `tp_action_triggers` (
|
||||
`balance_expiry_time` varchar(24) NOT NULL,
|
||||
`balance_timing_tags` varchar(128) NOT NULL,
|
||||
`balance_rating_subject` varchar(64) NOT NULL,
|
||||
`balance_category` varchar(16) NOT NULL,
|
||||
`balance_category` varchar(32) NOT NULL,
|
||||
`balance_shared_group` varchar(64) NOT NULL,
|
||||
`min_queued_items` int(11) NOT NULL,
|
||||
`actions_tag` varchar(64) NOT NULL,
|
||||
@@ -247,7 +247,7 @@ CREATE TABLE tp_lcr_rules (
|
||||
`tenant` varchar(64) NOT NULL,
|
||||
`customer` varchar(64) NOT NULL,
|
||||
`destination_tag` varchar(64) NOT NULL,
|
||||
`category` varchar(16) NOT NULL,
|
||||
`category` varchar(32) NOT NULL,
|
||||
`strategy` varchar(16) NOT NULL,
|
||||
`suppliers` varchar(64) NOT NULL,
|
||||
`activation_time` varchar(24) NOT NULL,
|
||||
@@ -268,7 +268,7 @@ CREATE TABLE tp_derived_chargers (
|
||||
`loadid` varchar(64) NOT NULL,
|
||||
`direction` varchar(8) NOT NULL,
|
||||
`tenant` varchar(64) NOT NULL,
|
||||
`category` varchar(16) NOT NULL,
|
||||
`category` varchar(32) NOT NULL,
|
||||
`account` varchar(24) NOT NULL,
|
||||
`subject` varchar(64) NOT NULL,
|
||||
`runid` varchar(24) NOT NULL,
|
||||
@@ -308,7 +308,7 @@ CREATE TABLE tp_cdr_stats (
|
||||
`req_type` varchar(64) NOT NULL,
|
||||
`direction` varchar(8) NOT NULL,
|
||||
`tenant` varchar(64) NOT NULL,
|
||||
`category` varchar(16) NOT NULL,
|
||||
`category` varchar(32) NOT NULL,
|
||||
`account` varchar(24) NOT NULL,
|
||||
`subject` varchar(64) NOT NULL,
|
||||
`destination_prefix` varchar(64) NOT NULL,
|
||||
|
||||
@@ -14,7 +14,7 @@ CREATE TABLE cdrs_primary (
|
||||
reqtype VARCHAR(24) NOT NULL,
|
||||
direction VARCHAR(8) NOT NULL,
|
||||
tenant VARCHAR(64) NOT NULL,
|
||||
category VARCHAR(16) NOT NULL,
|
||||
category VARCHAR(32) NOT NULL,
|
||||
account VARCHAR(128) NOT NULL,
|
||||
subject VARCHAR(128) NOT NULL,
|
||||
destination VARCHAR(128) NOT NULL,
|
||||
@@ -80,7 +80,7 @@ CREATE TABLE rated_cdrs (
|
||||
reqtype VARCHAR(24) NOT NULL,
|
||||
direction VARCHAR(8) NOT NULL,
|
||||
tenant VARCHAR(64) NOT NULL,
|
||||
category VARCHAR(16) NOT NULL,
|
||||
category VARCHAR(32) NOT NULL,
|
||||
account VARCHAR(128) NOT NULL,
|
||||
subject VARCHAR(128) NOT NULL,
|
||||
destination VARCHAR(128) NOT NULL,
|
||||
|
||||
@@ -97,7 +97,7 @@ CREATE TABLE tp_rating_profiles (
|
||||
loadid VARCHAR(64) NOT NULL,
|
||||
direction VARCHAR(8) NOT NULL,
|
||||
tenant VARCHAR(64) NOT NULL,
|
||||
category VARCHAR(16) NOT NULL,
|
||||
category VARCHAR(32) NOT NULL,
|
||||
subject VARCHAR(64) NOT NULL,
|
||||
activation_time VARCHAR(24) NOT NULL,
|
||||
rating_plan_tag VARCHAR(64) NOT NULL,
|
||||
@@ -142,7 +142,7 @@ CREATE TABLE tp_actions (
|
||||
timing_tags VARCHAR(128) NOT NULL,
|
||||
destination_tag VARCHAR(64) NOT NULL,
|
||||
rating_subject VARCHAR(64) NOT NULL,
|
||||
category VARCHAR(16) NOT NULL,
|
||||
category VARCHAR(32) NOT NULL,
|
||||
shared_group VARCHAR(64) NOT NULL,
|
||||
balance_weight NUMERIC(8,2) NOT NULL,
|
||||
extra_parameters VARCHAR(256) NOT NULL,
|
||||
@@ -191,7 +191,7 @@ CREATE TABLE tp_action_triggers (
|
||||
balance_expiry_time VARCHAR(24) NOT NULL,
|
||||
balance_timing_tags VARCHAR(128) NOT NULL,
|
||||
balance_rating_subject VARCHAR(64) NOT NULL,
|
||||
balance_category VARCHAR(16) NOT NULL,
|
||||
balance_category VARCHAR(32) NOT NULL,
|
||||
balance_shared_group VARCHAR(64) NOT NULL,
|
||||
min_queued_items INTEGER NOT NULL,
|
||||
actions_tag VARCHAR(64) NOT NULL,
|
||||
@@ -232,7 +232,7 @@ CREATE TABLE tp_lcr_rules (
|
||||
tenant VARCHAR(64) NOT NULL,
|
||||
customer VARCHAR(64) NOT NULL,
|
||||
destination_tag VARCHAR(64) NOT NULL,
|
||||
category VARCHAR(16) NOT NULL,
|
||||
category VARCHAR(32) NOT NULL,
|
||||
strategy VARCHAR(16) NOT NULL,
|
||||
suppliers VARCHAR(64) NOT NULL,
|
||||
activation_time VARCHAR(24) NOT NULL,
|
||||
@@ -252,7 +252,7 @@ CREATE TABLE tp_derived_chargers (
|
||||
loadid VARCHAR(64) NOT NULL,
|
||||
direction VARCHAR(8) NOT NULL,
|
||||
tenant VARCHAR(64) NOT NULL,
|
||||
category VARCHAR(16) NOT NULL,
|
||||
category VARCHAR(32) NOT NULL,
|
||||
account VARCHAR(24) NOT NULL,
|
||||
subject VARCHAR(64) NOT NULL,
|
||||
runid VARCHAR(24) NOT NULL,
|
||||
@@ -291,7 +291,7 @@ CREATE TABLE tp_cdr_stats (
|
||||
req_type VARCHAR(64) NOT NULL,
|
||||
direction VARCHAR(8) NOT NULL,
|
||||
tenant VARCHAR(64) NOT NULL,
|
||||
category VARCHAR(16) NOT NULL,
|
||||
category VARCHAR(32) NOT NULL,
|
||||
account VARCHAR(24) NOT NULL,
|
||||
subject VARCHAR(64) NOT NULL,
|
||||
destination_prefix VARCHAR(64) NOT NULL,
|
||||
|
||||
@@ -56,7 +56,6 @@ func NewSession(ev utils.Event, sm SessionManager) *Session {
|
||||
stopDebit: make(chan bool),
|
||||
sessionManager: sm,
|
||||
}
|
||||
//sRuns := make([]*engine.SessionRun, 0)
|
||||
if err := sm.Rater().GetSessionRuns(ev, &s.sessionRuns); err != nil || len(s.sessionRuns) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ const (
|
||||
ERR_EXISTS = "EXISTS"
|
||||
ERR_BROKEN_REFERENCE = "BROKEN_REFERENCE"
|
||||
ERR_PARSER_ERROR = "PARSER_ERROR"
|
||||
ERR_INVALID_PATH = "INVALID_PATH"
|
||||
TBL_TP_TIMINGS = "tp_timings"
|
||||
TBL_TP_DESTINATIONS = "tp_destinations"
|
||||
TBL_TP_RATES = "tp_rates"
|
||||
|
||||
Reference in New Issue
Block a user