Implement GetTpIds method for InternalDB as StorDB

This commit is contained in:
TeoV
2020-03-01 10:57:08 +02:00
committed by Dan Christian Bogos
parent 39d41bb6db
commit d7e421911d
3 changed files with 25 additions and 4 deletions

View File

@@ -453,7 +453,7 @@ func TestActionPlanFunctionNotAvailable(t *testing.T) {
func TestActionTimingPriorityListSortByWeight(t *testing.T) {
at1 := &ActionTiming{Timing: &RateInterval{
Timing: &RITiming{
Years: utils.Years{2020},
Years: utils.Years{2040},
Months: utils.Months{time.January, time.February, time.March,
time.April, time.May, time.June, time.July, time.August, time.September,
time.October, time.November, time.December},
@@ -464,7 +464,7 @@ func TestActionTimingPriorityListSortByWeight(t *testing.T) {
}}
at2 := &ActionTiming{Timing: &RateInterval{
Timing: &RITiming{
Years: utils.Years{2020},
Years: utils.Years{2040},
Months: utils.Months{time.January, time.February, time.March,
time.April, time.May, time.June, time.July, time.August, time.September,
time.October, time.November, time.December},
@@ -477,7 +477,8 @@ func TestActionTimingPriorityListSortByWeight(t *testing.T) {
atpl = append(atpl, at2, at1)
atpl.Sort()
if atpl[0] != at1 || atpl[1] != at2 {
t.Error("Timing list not sorted correctly: ", at1, at2, atpl)
t.Errorf("Timing list not sorted correctly: \n %+v, \n %+v \n %+v",
utils.ToJSON(at1), utils.ToJSON(at2), utils.ToJSON(atpl))
}
}

View File

@@ -29,7 +29,22 @@ import (
//implement LoadReader interface
func (iDB *InternalDB) GetTpIds(colName string) (ids []string, err error) {
return nil, utils.ErrNotImplemented
tpIDs := utils.NewStringSet(nil)
if colName == "" { // if colName is empty we need to parse all partitions
for _, conNm := range utils.CacheStorDBPartitions.AsSlice() {
keys := iDB.db.GetItemIDs(conNm, utils.EmptyString)
for _, key := range keys {
tpIDs.Add(strings.Split(key, utils.InInFieldSep)[0])
}
}
// iterate through all columns
} else {
keys := iDB.db.GetItemIDs(colName, utils.EmptyString)
for _, key := range keys {
tpIDs.Add(strings.Split(key, utils.InInFieldSep)[0])
}
}
return tpIDs.AsSlice(), nil
}
func (iDB *InternalDB) GetTpTableIds(tpid, table string, distinct utils.TPDistinctIds,

View File

@@ -130,6 +130,11 @@ var (
CacheThresholdFilterIndexes, CacheSupplierFilterIndexes, CacheAttributeFilterIndexes,
CacheChargerFilterIndexes, CacheDispatcherFilterIndexes, CacheLoadIDs, CacheAccounts})
CacheStorDBPartitions = NewStringSet([]string{TBLTPTimings, TBLTPDestinations, TBLTPRates,
TBLTPDestinationRates, TBLTPRatingPlans, TBLTPRateProfiles, TBLTPSharedGroups,
TBLTPActions, TBLTPActionPlans, TBLTPActionTriggers, TBLTPAccountActions, TBLTPResources, TBLTPStats,
TBLTPThresholds, TBLTPFilters, SessionCostsTBL, CDRsTBL,
TBLTPSuppliers, TBLTPAttributes, TBLTPChargers, TBLTPDispatchers, TBLTPDispatcherHosts})
// ProtectedSFlds are the fields that sessions should not alter
ProtectedSFlds = NewStringSet([]string{CGRID, OriginHost, OriginID, Usage})
)