mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-12 02:26:26 +05:00
Partialy added filter_indexes_remove
This commit is contained in:
committed by
Dan Christian Bogos
parent
765950daba
commit
90f163ea12
@@ -20,9 +20,10 @@ package v1
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/cgrates/cgrates/engine"
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type AttrGetFilterIndexes struct {
|
||||
@@ -35,6 +36,42 @@ type AttrGetFilterIndexes struct {
|
||||
utils.Paginator
|
||||
}
|
||||
|
||||
type AttrRemFilterIndexes struct {
|
||||
Tenant string
|
||||
Context string
|
||||
ItemType string
|
||||
}
|
||||
|
||||
func (self *ApierV1) RemoveFilterIndexes(arg AttrRemFilterIndexes, reply *string) (err error) {
|
||||
if missing := utils.MissingStructFields(&arg, []string{"Tenant", "ItemType"}); len(missing) != 0 { //Params missing
|
||||
return utils.NewErrMandatoryIeMissing(missing...)
|
||||
}
|
||||
key := arg.Tenant
|
||||
switch arg.ItemType {
|
||||
case utils.MetaThresholds:
|
||||
arg.ItemType = utils.ThresholdProfilePrefix
|
||||
case utils.MetaSuppliers:
|
||||
arg.ItemType = utils.SupplierProfilePrefix
|
||||
case utils.MetaStats:
|
||||
arg.ItemType = utils.StatQueueProfilePrefix
|
||||
case utils.MetaResources:
|
||||
arg.ItemType = utils.ResourceProfilesPrefix
|
||||
case utils.MetaChargers:
|
||||
arg.ItemType = utils.ChargerProfilePrefix
|
||||
case utils.MetaAttributes:
|
||||
if missing := utils.MissingStructFields(&arg, []string{"Context"}); len(missing) != 0 { //Params missing
|
||||
return utils.NewErrMandatoryIeMissing(missing...)
|
||||
}
|
||||
arg.ItemType = utils.AttributeProfilePrefix
|
||||
key = utils.ConcatenatedKey(arg.Tenant, arg.Context)
|
||||
}
|
||||
if err = self.DataManager.RemoveFilterIndexes(utils.PrefixToIndexCache[arg.ItemType], key); err != nil {
|
||||
return err
|
||||
}
|
||||
*reply = utils.OK
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *ApierV1) GetFilterIndexes(arg AttrGetFilterIndexes, reply *[]string) (err error) {
|
||||
var indexes map[string]utils.StringMap
|
||||
var indexedSlice []string
|
||||
|
||||
@@ -20,7 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
package v1
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/rpc"
|
||||
"net/rpc/jsonrpc"
|
||||
"path"
|
||||
@@ -35,15 +34,9 @@ import (
|
||||
|
||||
var (
|
||||
tFIdxRpc *rpc.Client
|
||||
rdsITdb *engine.RedisStorage
|
||||
mgoITdb *engine.MongoStorage
|
||||
onStor *engine.DataManager
|
||||
err error
|
||||
indexes map[string]utils.StringMap
|
||||
)
|
||||
|
||||
var sTestsFilterIndexesSV1 = []func(t *testing.T){
|
||||
testFlush,
|
||||
testV1FIdxLoadConfig,
|
||||
testV1FIdxdxInitDataDb,
|
||||
testV1FIdxResetStorDb,
|
||||
@@ -81,7 +74,7 @@ var sTestsFilterIndexesSV1 = []func(t *testing.T){
|
||||
testV1FIdxSecondComputeAttributeProfileIndexes,
|
||||
testV1FIdxRemoveAttributeProfile,
|
||||
|
||||
testFlush,
|
||||
testV1FIdxdxInitDataDb,
|
||||
testV1FIdxPopulateDatabase,
|
||||
testV1FIdxGetFilterIndexes1,
|
||||
testV1FIdxGetFilterIndexes2,
|
||||
@@ -93,16 +86,6 @@ var sTestsFilterIndexesSV1 = []func(t *testing.T){
|
||||
|
||||
// Test start here
|
||||
func TestFIdxV1ITMySQL(t *testing.T) {
|
||||
cfg, _ := config.NewDefaultCGRConfig()
|
||||
rdsITdb, err = engine.NewRedisStorage(
|
||||
fmt.Sprintf("%s:%s", cfg.DataDbCfg().DataDbHost, cfg.DataDbCfg().DataDbPort),
|
||||
10, cfg.DataDbCfg().DataDbPass, cfg.GeneralCfg().DBDataEncoding,
|
||||
utils.REDIS_MAX_CONNS, nil, "")
|
||||
|
||||
if err != nil {
|
||||
t.Fatal("Could not connect to Redis", err.Error())
|
||||
}
|
||||
onStor = engine.NewDataManager(rdsITdb)
|
||||
tSv1ConfDIR = "tutmysql"
|
||||
for _, stest := range sTestsFilterIndexesSV1 {
|
||||
t.Run(tSv1ConfDIR, stest)
|
||||
@@ -110,18 +93,6 @@ func TestFIdxV1ITMySQL(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestFIdxV1ITMongo(t *testing.T) {
|
||||
cdrsMongoCfgPath := path.Join(*dataDir, "conf", "samples", "tutmongo")
|
||||
mgoITCfg, err := config.NewCGRConfigFromFolder(cdrsMongoCfgPath)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if mgoITdb, err = engine.NewMongoStorage(mgoITCfg.DataDbCfg().DataDbHost,
|
||||
mgoITCfg.DataDbCfg().DataDbPort, mgoITCfg.DataDbCfg().DataDbName,
|
||||
mgoITCfg.DataDbCfg().DataDbUser, mgoITCfg.DataDbCfg().DataDbPass,
|
||||
utils.DataDB, nil, mgoITCfg.CacheCfg()); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
onStor = engine.NewDataManager(mgoITdb)
|
||||
tSv1ConfDIR = "tutmongo"
|
||||
time.Sleep(time.Duration(2 * time.Second)) // give time for engine to start
|
||||
for _, stest := range sTestsFilterIndexesSV1 {
|
||||
@@ -130,9 +101,8 @@ func TestFIdxV1ITMongo(t *testing.T) {
|
||||
}
|
||||
|
||||
func testV1FIdxLoadConfig(t *testing.T) {
|
||||
var err error
|
||||
tSv1CfgPath = path.Join(*dataDir, "conf", "samples", tSv1ConfDIR)
|
||||
if tSv1Cfg, err = config.NewCGRConfigFromFolder(tSv1CfgPath); err != nil {
|
||||
if tSv1Cfg, err := config.NewCGRConfigFromFolder(tSv1CfgPath); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
switch tSv1ConfDIR {
|
||||
@@ -156,13 +126,6 @@ func testV1FIdxResetStorDb(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func testFlush(t *testing.T) {
|
||||
onStor.DataDB().Flush("")
|
||||
if err := engine.SetDBVersions(onStor.DataDB()); err != nil {
|
||||
t.Error("Error ", err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func testV1FIdxStartEngine(t *testing.T) {
|
||||
if _, err := engine.StopStartEngine(tSv1CfgPath, thdsDelay); err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -234,12 +197,17 @@ func testV1FIdxSetThresholdProfile(t *testing.T) {
|
||||
} else if !reflect.DeepEqual(tPrfl, reply) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", tPrfl, reply)
|
||||
}
|
||||
if err = onStor.RemoveFilterIndexes(utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
tenant); err != nil {
|
||||
if err := tFIdxRpc.Call("ApierV1.RemoveFilterIndexes", &AttrRemFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
Tenant: tenant}, &result); err != nil {
|
||||
t.Error(err)
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
if indexes, err = onStor.GetFilterIndexes(utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
tenant, engine.MetaString, nil); err != utils.ErrNotFound {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
@@ -265,10 +233,10 @@ func testV1FIdxComputeThresholdsIndexes(t *testing.T) {
|
||||
}
|
||||
expectedIDX := map[string]utils.StringMap{
|
||||
"*string:Account:1001": {"TEST_PROFILE1": true}}
|
||||
indexes, err := onStor.GetFilterIndexes(
|
||||
utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
tenant, engine.MetaString, nil)
|
||||
if err != nil {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if !reflect.DeepEqual(expectedIDX, indexes) {
|
||||
@@ -332,14 +300,17 @@ func testV1FIdxSetSecondThresholdProfile(t *testing.T) {
|
||||
} else if !reflect.DeepEqual(tPrfl, reply) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", tPrfl, reply)
|
||||
}
|
||||
if err = onStor.RemoveFilterIndexes(
|
||||
utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
tenant); err != nil {
|
||||
if err := tFIdxRpc.Call("ApierV1.RemoveFilterIndexes", &AttrRemFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
Tenant: tenant}, &result); err != nil {
|
||||
t.Error(err)
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
if _, err = onStor.GetFilterIndexes(
|
||||
utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
tenant, engine.MetaString, nil); err != utils.ErrNotFound {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
@@ -366,10 +337,10 @@ func testV1FIdxSecondComputeThresholdsIndexes(t *testing.T) {
|
||||
}
|
||||
expectedIDX := map[string]utils.StringMap{
|
||||
"*string:Account:1002": {"TEST_PROFILE2": true}}
|
||||
indexes, err := onStor.GetFilterIndexes(
|
||||
utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
tenant, engine.MetaString, nil)
|
||||
if err != nil {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
if !reflect.DeepEqual(expectedIDX, indexes) {
|
||||
@@ -401,10 +372,10 @@ func testV1FIdxThirdComputeThresholdsIndexes(t *testing.T) {
|
||||
"*string:Account:1002": {
|
||||
"TEST_PROFILE2": true},
|
||||
}
|
||||
indexes, err := onStor.GetFilterIndexes(
|
||||
utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
tenant, engine.MetaString, nil)
|
||||
if err != nil {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
if !reflect.DeepEqual(expectedIDX, indexes) {
|
||||
@@ -455,8 +426,11 @@ func testV1FIdxRemoveThresholdProfile(t *testing.T) {
|
||||
err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, err = onStor.GetFilterIndexes(utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
tenant, engine.MetaString, nil); err != nil && err != utils.ErrNotFound {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err != nil &&
|
||||
err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
@@ -528,12 +502,17 @@ func testV1FIdxSetStatQueueProfileIndexes(t *testing.T) {
|
||||
} else if !reflect.DeepEqual(statConfig, reply) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", statConfig, reply)
|
||||
}
|
||||
if err = onStor.RemoveFilterIndexes(utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
tenant); err != nil {
|
||||
if err := tFIdxRpc.Call("ApierV1.RemoveFilterIndexes", &AttrRemFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
Tenant: tenant}, &result); err != nil {
|
||||
t.Error(err)
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
if indexes, err = onStor.GetFilterIndexes(utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
tenant, engine.MetaString, nil); err != utils.ErrNotFound {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
@@ -558,10 +537,10 @@ func testV1FIdxComputeStatQueueProfileIndexes(t *testing.T) {
|
||||
}
|
||||
expectedIDX := map[string]utils.StringMap{
|
||||
"*string:Account:1001": {"TEST_PROFILE1": true}}
|
||||
indexes, err := onStor.GetFilterIndexes(
|
||||
utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
tenant, engine.MetaString, nil)
|
||||
if err != nil {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if !reflect.DeepEqual(expectedIDX, indexes) {
|
||||
@@ -636,14 +615,17 @@ func testV1FIdxSetSecondStatQueueProfileIndexes(t *testing.T) {
|
||||
} else if !reflect.DeepEqual(statConfig, reply) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", statConfig, reply)
|
||||
}
|
||||
if err = onStor.RemoveFilterIndexes(
|
||||
utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
tenant); err != nil {
|
||||
if err := tFIdxRpc.Call("ApierV1.RemoveFilterIndexes", &AttrRemFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
Tenant: tenant}, &result); err != nil {
|
||||
t.Error(err)
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
if indexes, err = onStor.GetFilterIndexes(
|
||||
utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
tenant, engine.MetaString, nil); err != utils.ErrNotFound {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
@@ -670,10 +652,10 @@ func testV1FIdxSecondComputeStatQueueProfileIndexes(t *testing.T) {
|
||||
}
|
||||
expectedIDX := map[string]utils.StringMap{
|
||||
"*string:Account:1001": {"TEST_PROFILE2": true}}
|
||||
indexes, err := onStor.GetFilterIndexes(
|
||||
utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
tenant, engine.MetaString, nil)
|
||||
if err != nil {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if !reflect.DeepEqual(expectedIDX, indexes) {
|
||||
@@ -723,8 +705,11 @@ func testV1FIdxRemoveStatQueueProfile(t *testing.T) {
|
||||
err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, err = onStor.GetFilterIndexes(utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
tenant, engine.MetaString, nil); err != nil && err != utils.ErrNotFound {
|
||||
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
@@ -784,12 +769,17 @@ func testV1FIdxSetResourceProfileIndexes(t *testing.T) {
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
if err = onStor.RemoveFilterIndexes(utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
tenant); err != nil {
|
||||
if err := tFIdxRpc.Call("ApierV1.RemoveFilterIndexes", &AttrRemFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
Tenant: tenant}, &result); err != nil {
|
||||
t.Error(err)
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
if indexes, err = onStor.GetFilterIndexes(utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
tenant, engine.MetaString, nil); err != utils.ErrNotFound {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
@@ -814,10 +804,10 @@ func testV1FIdxComputeResourceProfileIndexes(t *testing.T) {
|
||||
}
|
||||
expectedIDX := map[string]utils.StringMap{
|
||||
"*string:Account:1001": {"RCFG1": true}}
|
||||
indexes, err := onStor.GetFilterIndexes(
|
||||
utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
tenant, engine.MetaString, nil)
|
||||
if err != nil {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if !reflect.DeepEqual(expectedIDX, indexes) {
|
||||
@@ -880,13 +870,17 @@ func testV1FIdxSetSecondResourceProfileIndexes(t *testing.T) {
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
if err = onStor.RemoveFilterIndexes(utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
tenant); err != nil {
|
||||
if err := tFIdxRpc.Call("ApierV1.RemoveFilterIndexes", &AttrRemFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
Tenant: tenant}, &result); err != nil {
|
||||
t.Error(err)
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
if indexes, err = onStor.GetFilterIndexes(
|
||||
utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
tenant, engine.MetaString, nil); err != utils.ErrNotFound {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
@@ -912,9 +906,10 @@ func testV1FIdxSecondComputeResourceProfileIndexes(t *testing.T) {
|
||||
t.Errorf("Error: %+v", reply2)
|
||||
}
|
||||
expectedIDX := map[string]utils.StringMap{"*string:Account:1001": {"RCFG2": true}}
|
||||
indexes, err := onStor.GetFilterIndexes(utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
tenant, engine.MetaString, nil)
|
||||
if err != nil {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if !reflect.DeepEqual(expectedIDX, indexes) {
|
||||
@@ -961,8 +956,10 @@ func testV1FIdxRemoveResourceProfile(t *testing.T) {
|
||||
&reply2); err == nil || err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, err = onStor.GetFilterIndexes(utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
tenant, engine.MetaString, nil); err != nil && err != utils.ErrNotFound {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err != nil && err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
@@ -1028,12 +1025,17 @@ func testV1FIdxSetSupplierProfileIndexes(t *testing.T) {
|
||||
} else if !reflect.DeepEqual(splPrf, reply) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", splPrf, reply)
|
||||
}
|
||||
if err = onStor.RemoveFilterIndexes(utils.PrefixToIndexCache[utils.SupplierProfilePrefix],
|
||||
tenant); err != nil {
|
||||
if err := tFIdxRpc.Call("ApierV1.RemoveFilterIndexes", &AttrRemFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.SupplierProfilePrefix],
|
||||
Tenant: tenant}, &result); err != nil {
|
||||
t.Error(err)
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
if indexes, err = onStor.GetFilterIndexes(utils.PrefixToIndexCache[utils.SupplierProfilePrefix],
|
||||
tenant, engine.MetaString, nil); err != utils.ErrNotFound {
|
||||
var indexes []string
|
||||
if err := tFIdxRpc.Call("ApierV1.GetFilterIndexes", &AttrGetFilterIndexes{
|
||||
ItemType: utils.PrefixToIndexCache[utils.SupplierProfilePrefix],
|
||||
Tenant: tenant, FilterType: engine.MetaString}, &indexes); err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ import (
|
||||
var tFIdxCaRpc *rpc.Client
|
||||
|
||||
var sTestsFilterIndexesSV1Ca = []func(t *testing.T){
|
||||
testFlush,
|
||||
testV1FIdxdxInitDataDb,
|
||||
testV1FIdxCaLoadConfig,
|
||||
testV1FIdxCadxInitDataDb,
|
||||
testV1FIdxCaResetStorDb,
|
||||
@@ -51,7 +51,7 @@ var sTestsFilterIndexesSV1Ca = []func(t *testing.T){
|
||||
testV1FIdxCaUpdateThresholdProfileFromTP,
|
||||
testV1FIdxCaRemoveThresholdProfile,
|
||||
|
||||
testFlush,
|
||||
testV1FIdxdxInitDataDb,
|
||||
testV1FIdxCaGetStatQueuesWithNotFound,
|
||||
testV1FIdxCaSetStatQueueProfile,
|
||||
testV1FIdxCaFromFolder,
|
||||
@@ -60,7 +60,7 @@ var sTestsFilterIndexesSV1Ca = []func(t *testing.T){
|
||||
testV1FIdxCaUpdateStatQueueProfileFromTP,
|
||||
testV1FIdxCaRemoveStatQueueProfile,
|
||||
|
||||
testFlush,
|
||||
testV1FIdxdxInitDataDb,
|
||||
testV1FIdxCaProcessAttributeProfileEventWithNotFound,
|
||||
testV1FIdxCaSetAttributeProfile,
|
||||
testV1FIdxCaFromFolder,
|
||||
@@ -69,7 +69,7 @@ var sTestsFilterIndexesSV1Ca = []func(t *testing.T){
|
||||
testV1FIdxCaUpdateAttributeProfileFromTP,
|
||||
testV1FIdxCaRemoveAttributeProfile,
|
||||
|
||||
testFlush,
|
||||
testV1FIdxdxInitDataDb,
|
||||
testV1FIdxCaGetResourceProfileWithNotFound,
|
||||
testV1FIdxCaSetResourceProfile,
|
||||
testV1FIdxCaFromFolder,
|
||||
|
||||
65
console/filter_indexes_remove.go
Normal file
65
console/filter_indexes_remove.go
Normal file
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
|
||||
Copyright (C) ITsysCOM GmbH
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
package console
|
||||
|
||||
import (
|
||||
"github.com/cgrates/cgrates/apier/v1"
|
||||
)
|
||||
|
||||
func init() {
|
||||
c := &CmdRemoveFilterIndexes{
|
||||
name: "filter_indexes_remove",
|
||||
rpcMethod: "ApierV1.RemoveFilterIndexes",
|
||||
rpcParams: &v1.AttrRemFilterIndexes{},
|
||||
}
|
||||
commands[c.Name()] = c
|
||||
c.CommandExecuter = &CommandExecuter{c}
|
||||
}
|
||||
|
||||
// Commander implementation
|
||||
type CmdRemoveFilterIndexes struct {
|
||||
name string
|
||||
rpcMethod string
|
||||
rpcParams *v1.AttrRemFilterIndexes
|
||||
*CommandExecuter
|
||||
}
|
||||
|
||||
func (self *CmdRemoveFilterIndexes) Name() string {
|
||||
return self.name
|
||||
}
|
||||
|
||||
func (self *CmdRemoveFilterIndexes) RpcMethod() string {
|
||||
return self.rpcMethod
|
||||
}
|
||||
|
||||
func (self *CmdRemoveFilterIndexes) RpcParams(reset bool) interface{} {
|
||||
if reset || self.rpcParams == nil {
|
||||
self.rpcParams = &v1.AttrRemFilterIndexes{}
|
||||
}
|
||||
return self.rpcParams
|
||||
}
|
||||
|
||||
func (self *CmdRemoveFilterIndexes) PostprocessRpcParams() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *CmdRemoveFilterIndexes) RpcResult() interface{} {
|
||||
var atr string
|
||||
return &atr
|
||||
}
|
||||
Reference in New Issue
Block a user