Fix ApierV1.LoadTariffPlanFromFolder on non-existent folder (thanks @catokx), increased category field to 32 char in SQL tables

This commit is contained in:
DanB
2015-03-05 12:15:22 +01:00
parent db4a146924
commit 6d4844afcf
9 changed files with 41 additions and 19 deletions

View File

@@ -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),

View File

@@ -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" {

View File

@@ -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)
}
}

View File

@@ -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,

View File

@@ -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,

View File

@@ -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,

View File

@@ -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,

View File

@@ -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
}

View File

@@ -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"