Update CacheSv1 API's to accept ArgDispatcher parameters

This commit is contained in:
TeoV
2019-05-09 13:24:48 +03:00
committed by Dan Christian Bogos
parent f4eba504a5
commit 2a90b270f6
32 changed files with 282 additions and 274 deletions

View File

@@ -271,10 +271,11 @@ func (self *ApierV1) LoadSharedGroup(attrs AttrLoadSharedGroup, reply *string) e
}
type AttrLoadTpFromStorDb struct {
TPid string
FlushDb bool // Flush dataDB before loading
DryRun bool // Only simulate, no write
Validate bool // Run structural checks
TPid string
FlushDb bool // Flush dataDB before loading
DryRun bool // Only simulate, no write
Validate bool // Run structural checks
ArgDispatcher *utils.ArgDispatcher
}
// Loads complete data in a TP from storDb
@@ -303,7 +304,7 @@ func (self *ApierV1) LoadTariffPlanFromStorDb(attrs AttrLoadTpFromStorDb, reply
}
// reload cache
utils.Logger.Info("ApierV1.LoadTariffPlanFromStorDb, reloading cache.")
if err := dbReader.ReloadCache(attrs.FlushDb, true); err != nil {
if err := dbReader.ReloadCache(attrs.FlushDb, true, attrs.ArgDispatcher); err != nil {
return utils.NewErrServerError(err)
}
@@ -804,7 +805,7 @@ func (self *ApierV1) LoadTariffPlanFromFolder(attrs utils.AttrLoadTpFromFolder,
}
// reload cache
utils.Logger.Info("ApierV1.LoadTariffPlanFromFolder, reloading cache.")
if err := loader.ReloadCache(attrs.FlushDb, true); err != nil {
if err := loader.ReloadCache(attrs.FlushDb, true, attrs.ArgDispatcher); err != nil {
return utils.NewErrServerError(err)
}
*reply = utils.OK
@@ -1058,25 +1059,29 @@ func (v1 *ApierV1) ReplayFailedPosts(args ArgsReplyFailedPosts, reply *string) (
// CallCache caching the item based on cacheopt
// visible in ApierV2
func (v1 *ApierV1) CallCache(cacheOpt string, args engine.ArgsGetCacheItem) (err error) {
func (v1 *ApierV1) CallCache(cacheOpt string, args utils.ArgsGetCacheItem) (err error) {
var reply string
switch cacheOpt {
case utils.META_NONE:
return
case utils.MetaReload:
if err = v1.CacheS.Call(utils.CacheSv1ReloadCache, composeArgsReload(args), &reply); err != nil {
if err = v1.CacheS.Call(utils.CacheSv1ReloadCache, utils.AttrReloadCacheWithArgDispatcher{
AttrReloadCache: composeArgsReload(args)}, &reply); err != nil {
return err
}
case utils.MetaLoad:
if err = v1.CacheS.Call(utils.CacheSv1LoadCache, composeArgsReload(args), &reply); err != nil {
if err = v1.CacheS.Call(utils.CacheSv1LoadCache, utils.AttrReloadCacheWithArgDispatcher{
AttrReloadCache: composeArgsReload(args)}, &reply); err != nil {
return err
}
case utils.MetaRemove:
if err = v1.CacheS.Call(utils.CacheSv1RemoveItem, &args, &reply); err != nil {
if err = v1.CacheS.Call(utils.CacheSv1RemoveItem,
&utils.ArgsGetCacheItemWithArgDispatcher{ArgsGetCacheItem: args}, &reply); err != nil {
return err
}
case utils.MetaClear:
if err = v1.CacheS.Call(utils.CacheSv1FlushCache, composeArgsReload(args), &reply); err != nil {
if err = v1.CacheS.Call(utils.CacheSv1FlushCache, utils.AttrReloadCacheWithArgDispatcher{
AttrReloadCache: composeArgsReload(args)}, &reply); err != nil {
return err
}
}

View File

@@ -91,7 +91,7 @@ func (apierV1 *ApierV1) SetAttributeProfile(alsWrp *AttributeWithCache, reply *s
if err := apierV1.DataManager.SetLoadIDs(map[string]int64{utils.CacheAttributeProfiles: time.Now().UnixNano()}); err != nil {
return utils.APIErrorHandler(err)
}
args := engine.ArgsGetCacheItem{
args := utils.ArgsGetCacheItem{
CacheID: utils.CacheAttributeProfiles,
ItemID: alsWrp.TenantID(),
}
@@ -115,7 +115,7 @@ func (apierV1 *ApierV1) RemoveAttributeProfile(arg *utils.TenantIDWithCache, rep
if err := apierV1.DataManager.SetLoadIDs(map[string]int64{utils.CacheAttributeProfiles: time.Now().UnixNano()}); err != nil {
return utils.APIErrorHandler(err)
}
args := engine.ArgsGetCacheItem{
args := utils.ArgsGetCacheItem{
CacheID: utils.CacheAttributeProfiles,
ItemID: utils.ConcatenatedKey(arg.Tenant, arg.ID),
}

View File

@@ -1219,7 +1219,7 @@ func testAttributeSCachingMetaNone(t *testing.T) {
t.Error("Unexpected reply returned", result)
}
var reply bool
argsCache := engine.ArgsGetCacheItem{
argsCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheAttributeProfiles,
ItemID: "cgrates.org:ATTR_1",
}
@@ -1230,7 +1230,7 @@ func testAttributeSCachingMetaNone(t *testing.T) {
}
var rcvKeys []string
argsCache2 := engine.ArgsGetCacheItemIDs{
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheAttributeProfiles,
}
if err := attrSRPC.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
@@ -1278,7 +1278,7 @@ func testAttributeSCachingMetaLoad(t *testing.T) {
t.Error("Unexpected reply returned", result)
}
var reply bool
argsCache := engine.ArgsGetCacheItem{
argsCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheAttributeProfiles,
ItemID: "cgrates.org:ATTR_1",
}
@@ -1290,7 +1290,7 @@ func testAttributeSCachingMetaLoad(t *testing.T) {
var rcvKeys []string
expectedIDs := []string{"cgrates.org:ATTR_1"}
argsCache2 := engine.ArgsGetCacheItemIDs{
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheAttributeProfiles,
}
if err := attrSRPC.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {
@@ -1317,7 +1317,7 @@ func testAttributeSCachingMetaLoad(t *testing.T) {
t.Error("Unexpected reply returned", resp)
}
argsCache = engine.ArgsGetCacheItem{
argsCache = utils.ArgsGetCacheItem{
CacheID: utils.CacheAttributeProfiles,
ItemID: "cgrates.org:ATTR_1",
}
@@ -1370,7 +1370,7 @@ func testAttributeSCachingMetaReload1(t *testing.T) {
t.Error("Unexpected reply returned", result)
}
var reply bool
argsCache := engine.ArgsGetCacheItem{
argsCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheAttributeProfiles,
ItemID: "cgrates.org:ATTR_1",
}
@@ -1381,7 +1381,7 @@ func testAttributeSCachingMetaReload1(t *testing.T) {
}
var rcvKeys []string
argsCache2 := engine.ArgsGetCacheItemIDs{
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheAttributeProfiles,
}
if err := attrSRPC.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err == nil ||
@@ -1508,7 +1508,7 @@ func testAttributeSCachingMetaRemove(t *testing.T) {
t.Error("Unexpected reply returned", result)
}
var reply bool
argsCache := engine.ArgsGetCacheItem{
argsCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheAttributeProfiles,
ItemID: "cgrates.org:ATTR_1",
}
@@ -1520,7 +1520,7 @@ func testAttributeSCachingMetaRemove(t *testing.T) {
var rcvKeys []string
expectedIDs := []string{"cgrates.org:ATTR_1"}
argsCache2 := engine.ArgsGetCacheItemIDs{
argsCache2 := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheAttributeProfiles,
}
if err := attrSRPC.Call(utils.CacheSv1GetItemIDs, argsCache2, &rcvKeys); err != nil {

View File

@@ -21,7 +21,6 @@ package v1
import (
"time"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
@@ -37,77 +36,77 @@ type CacheSv1 struct {
}
// GetItemIDs returns the IDs for cacheID with given prefix
func (chSv1 *CacheSv1) GetItemIDs(args *dispatchers.ArgsGetCacheItemIDsWithApiKey,
func (chSv1 *CacheSv1) GetItemIDs(args *utils.ArgsGetCacheItemIDsWithArgDispatcher,
reply *[]string) error {
return chSv1.cacheS.V1GetItemIDs(&args.ArgsGetCacheItemIDs, reply)
return chSv1.cacheS.V1GetItemIDs(args, reply)
}
// HasItem verifies the existence of an Item in cache
func (chSv1 *CacheSv1) HasItem(args *dispatchers.ArgsGetCacheItemWithApiKey,
func (chSv1 *CacheSv1) HasItem(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *bool) error {
return chSv1.cacheS.V1HasItem(&args.ArgsGetCacheItem, reply)
return chSv1.cacheS.V1HasItem(args, reply)
}
// GetItemExpiryTime returns the expiryTime for an item
func (chSv1 *CacheSv1) GetItemExpiryTime(args *dispatchers.ArgsGetCacheItemWithApiKey,
func (chSv1 *CacheSv1) GetItemExpiryTime(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *time.Time) error {
return chSv1.cacheS.V1GetItemExpiryTime(&args.ArgsGetCacheItem, reply)
return chSv1.cacheS.V1GetItemExpiryTime(args, reply)
}
// RemoveItem removes the Item with ID from cache
func (chSv1 *CacheSv1) RemoveItem(args *dispatchers.ArgsGetCacheItemWithApiKey,
func (chSv1 *CacheSv1) RemoveItem(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *string) error {
return chSv1.cacheS.V1RemoveItem(&args.ArgsGetCacheItem, reply)
return chSv1.cacheS.V1RemoveItem(args, reply)
}
// Clear will clear partitions in the cache (nil fol all, empty slice for none)
func (chSv1 *CacheSv1) Clear(args *dispatchers.AttrCacheIDsWithApiKey,
func (chSv1 *CacheSv1) Clear(args *utils.AttrCacheIDsWithArgDispatcher,
reply *string) error {
return chSv1.cacheS.V1Clear(args.CacheIDs, reply)
return chSv1.cacheS.V1Clear(args, reply)
}
// FlushCache wipes out cache for a prefix or completely
func (chSv1 *CacheSv1) FlushCache(args dispatchers.AttrReloadCacheWithApiKey, reply *string) (err error) {
return chSv1.cacheS.V1FlushCache(args.AttrReloadCache, reply)
func (chSv1 *CacheSv1) FlushCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
return chSv1.cacheS.V1FlushCache(args, reply)
}
// GetCacheStats returns CacheStats filtered by cacheIDs
func (chSv1 *CacheSv1) GetCacheStats(args *dispatchers.AttrCacheIDsWithApiKey,
func (chSv1 *CacheSv1) GetCacheStats(args *utils.AttrCacheIDsWithArgDispatcher,
rply *map[string]*ltcache.CacheStats) error {
return chSv1.cacheS.V1GetCacheStats(args.CacheIDs, rply)
return chSv1.cacheS.V1GetCacheStats(args, rply)
}
// PrecacheStatus checks status of active precache processes
func (chSv1 *CacheSv1) PrecacheStatus(args *dispatchers.AttrCacheIDsWithApiKey, rply *map[string]string) error {
return chSv1.cacheS.V1PrecacheStatus(args.CacheIDs, rply)
func (chSv1 *CacheSv1) PrecacheStatus(args *utils.AttrCacheIDsWithArgDispatcher, rply *map[string]string) error {
return chSv1.cacheS.V1PrecacheStatus(args, rply)
}
// HasGroup checks existence of a group in cache
func (chSv1 *CacheSv1) HasGroup(args *dispatchers.ArgsGetGroupWithApiKey,
func (chSv1 *CacheSv1) HasGroup(args *utils.ArgsGetGroupWithArgDispatcher,
rply *bool) (err error) {
return chSv1.cacheS.V1HasGroup(&args.ArgsGetGroup, rply)
return chSv1.cacheS.V1HasGroup(args, rply)
}
// GetGroupItemIDs returns a list of itemIDs in a cache group
func (chSv1 *CacheSv1) GetGroupItemIDs(args *dispatchers.ArgsGetGroupWithApiKey,
func (chSv1 *CacheSv1) GetGroupItemIDs(args *utils.ArgsGetGroupWithArgDispatcher,
rply *[]string) (err error) {
return chSv1.cacheS.V1GetGroupItemIDs(&args.ArgsGetGroup, rply)
return chSv1.cacheS.V1GetGroupItemIDs(args, rply)
}
// RemoveGroup will remove a group and all items belonging to it from cache
func (chSv1 *CacheSv1) RemoveGroup(args *dispatchers.ArgsGetGroupWithApiKey,
func (chSv1 *CacheSv1) RemoveGroup(args *utils.ArgsGetGroupWithArgDispatcher,
rply *string) (err error) {
return chSv1.cacheS.V1RemoveGroup(&args.ArgsGetGroup, rply)
return chSv1.cacheS.V1RemoveGroup(args, rply)
}
// ReloadCache reloads cache from DB for a prefix or completely
func (chSv1 *CacheSv1) ReloadCache(args dispatchers.AttrReloadCacheWithApiKey, reply *string) (err error) {
return chSv1.cacheS.V1ReloadCache(args.AttrReloadCache, reply)
func (chSv1 *CacheSv1) ReloadCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
return chSv1.cacheS.V1ReloadCache(args, reply)
}
// LoadCache loads cache from DB for a prefix or completely
func (chSv1 *CacheSv1) LoadCache(args dispatchers.AttrReloadCacheWithApiKey, reply *string) (err error) {
return chSv1.cacheS.V1LoadCache(args.AttrReloadCache, reply)
func (chSv1 *CacheSv1) LoadCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
return chSv1.cacheS.V1LoadCache(args, reply)
}
// Ping used to detreminate if component is active

View File

@@ -221,7 +221,7 @@ func testCacheSReload(t *testing.T) {
func testCacheSGetItemIDs(t *testing.T) {
var rcvKeys []string
var expKeys []string
argsAPI := engine.ArgsGetCacheItemIDs{
argsAPI := utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheThresholdProfiles,
ItemIDPrefix: "NotExistent",
}
@@ -230,7 +230,7 @@ func testCacheSGetItemIDs(t *testing.T) {
}
expKeys = []string{"cgrates.org:Threshold1"}
argsAPI = engine.ArgsGetCacheItemIDs{
argsAPI = utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheThresholdProfiles,
}
if err := chcRPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
@@ -244,7 +244,7 @@ func testCacheSGetItemIDs(t *testing.T) {
func testCacheSHasItem(t *testing.T) {
var reply bool
var expected bool
argsAPI := engine.ArgsGetCacheItem{
argsAPI := utils.ArgsGetCacheItem{
CacheID: utils.CacheThresholdProfiles,
ItemID: "NotExistent",
}
@@ -255,7 +255,7 @@ func testCacheSHasItem(t *testing.T) {
}
expected = true
argsAPI = engine.ArgsGetCacheItem{
argsAPI = utils.ArgsGetCacheItem{
CacheID: utils.CacheThresholdProfiles,
ItemID: "cgrates.org:Threshold1",
}
@@ -269,7 +269,7 @@ func testCacheSHasItem(t *testing.T) {
func testCacheSGetItemExpiryTime(t *testing.T) {
var reply time.Time
var expected time.Time
argsAPI := engine.ArgsGetCacheItem{
argsAPI := utils.ArgsGetCacheItem{
CacheID: utils.CacheThresholdProfiles,
ItemID: "NotExistent",
}
@@ -278,7 +278,7 @@ func testCacheSGetItemExpiryTime(t *testing.T) {
}
// expected = true
argsAPI = engine.ArgsGetCacheItem{
argsAPI = utils.ArgsGetCacheItem{
CacheID: utils.CacheThresholdProfiles,
ItemID: "cgrates.org:Threshold1",
}
@@ -301,7 +301,7 @@ func testCacheSReloadCache(t *testing.T) {
func testCacheSRemoveItem(t *testing.T) {
var reply bool
argsAPI := engine.ArgsGetCacheItem{
argsAPI := utils.ArgsGetCacheItem{
CacheID: utils.CacheThresholdProfiles,
ItemID: "cgrates.org:Threshold1",
}

View File

@@ -77,7 +77,7 @@ func (apierV1 *ApierV1) SetChargerProfile(arg *ChargerWithCache, reply *string)
return utils.APIErrorHandler(err)
}
//handle caching for ChargerProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheChargerProfiles,
ItemID: arg.TenantID(),
}
@@ -102,7 +102,7 @@ func (apierV1 *ApierV1) RemoveChargerProfile(arg utils.TenantIDWithCache, reply
return utils.APIErrorHandler(err)
}
//handle caching for ChargerProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheChargerProfiles,
ItemID: arg.TenantID(),
}

View File

@@ -82,7 +82,7 @@ func (apierV1 *ApierV1) SetDispatcherProfile(args *DispatcherWithCache, reply *s
return utils.APIErrorHandler(err)
}
//handle caching for DispatcherProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheDispatcherProfiles,
ItemID: args.TenantID(),
}
@@ -107,7 +107,7 @@ func (apierV1 *ApierV1) RemoveDispatcherProfile(arg *utils.TenantIDWithCache, re
return utils.APIErrorHandler(err)
}
//handle caching for DispatcherProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheDispatcherProfiles,
ItemID: arg.TenantID(),
}
@@ -171,7 +171,7 @@ func (apierV1 *ApierV1) SetDispatcherHost(args *DispatcherHostWithCache, reply *
return utils.APIErrorHandler(err)
}
//handle caching for DispatcherProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheDispatcherHosts,
ItemID: args.TenantID(),
}
@@ -196,7 +196,7 @@ func (apierV1 *ApierV1) RemoveDispatcherHost(arg *utils.TenantIDWithCache, reply
return utils.APIErrorHandler(err)
}
//handle caching for DispatcherProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheDispatcherHosts,
ItemID: arg.TenantID(),
}
@@ -552,76 +552,76 @@ type DispatcherCacheSv1 struct {
}
// GetItemIDs returns the IDs for cacheID with given prefix
func (dS *DispatcherCacheSv1) GetItemIDs(args *dispatchers.ArgsGetCacheItemIDsWithApiKey,
func (dS *DispatcherCacheSv1) GetItemIDs(args *utils.ArgsGetCacheItemIDsWithArgDispatcher,
reply *[]string) error {
return dS.dS.CacheSv1GetItemIDs(args, reply)
}
// HasItem verifies the existence of an Item in cache
func (dS *DispatcherCacheSv1) HasItem(args *dispatchers.ArgsGetCacheItemWithApiKey,
func (dS *DispatcherCacheSv1) HasItem(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *bool) error {
return dS.dS.CacheSv1HasItem(args, reply)
}
// GetItemExpiryTime returns the expiryTime for an item
func (dS *DispatcherCacheSv1) GetItemExpiryTime(args *dispatchers.ArgsGetCacheItemWithApiKey,
func (dS *DispatcherCacheSv1) GetItemExpiryTime(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *time.Time) error {
return dS.dS.CacheSv1GetItemExpiryTime(args, reply)
}
// RemoveItem removes the Item with ID from cache
func (dS *DispatcherCacheSv1) RemoveItem(args *dispatchers.ArgsGetCacheItemWithApiKey,
func (dS *DispatcherCacheSv1) RemoveItem(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *string) error {
return dS.dS.CacheSv1RemoveItem(args, reply)
}
// Clear will clear partitions in the cache (nil fol all, empty slice for none)
func (dS *DispatcherCacheSv1) Clear(args *dispatchers.AttrCacheIDsWithApiKey,
func (dS *DispatcherCacheSv1) Clear(args *utils.AttrCacheIDsWithArgDispatcher,
reply *string) error {
return dS.dS.CacheSv1Clear(args, reply)
}
// FlushCache wipes out cache for a prefix or completely
func (dS *DispatcherCacheSv1) FlushCache(args dispatchers.AttrReloadCacheWithApiKey, reply *string) (err error) {
func (dS *DispatcherCacheSv1) FlushCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
return dS.dS.CacheSv1FlushCache(args, reply)
}
// GetCacheStats returns CacheStats filtered by cacheIDs
func (dS *DispatcherCacheSv1) GetCacheStats(args *dispatchers.AttrCacheIDsWithApiKey,
func (dS *DispatcherCacheSv1) GetCacheStats(args *utils.AttrCacheIDsWithArgDispatcher,
reply *map[string]*ltcache.CacheStats) error {
return dS.dS.CacheSv1GetCacheStats(args, reply)
}
// PrecacheStatus checks status of active precache processes
func (dS *DispatcherCacheSv1) PrecacheStatus(args *dispatchers.AttrCacheIDsWithApiKey, reply *map[string]string) error {
func (dS *DispatcherCacheSv1) PrecacheStatus(args *utils.AttrCacheIDsWithArgDispatcher, reply *map[string]string) error {
return dS.dS.CacheSv1PrecacheStatus(args, reply)
}
// HasGroup checks existence of a group in cache
func (dS *DispatcherCacheSv1) HasGroup(args *dispatchers.ArgsGetGroupWithApiKey,
func (dS *DispatcherCacheSv1) HasGroup(args *utils.ArgsGetGroupWithArgDispatcher,
reply *bool) (err error) {
return dS.dS.CacheSv1HasGroup(args, reply)
}
// GetGroupItemIDs returns a list of itemIDs in a cache group
func (dS *DispatcherCacheSv1) GetGroupItemIDs(args *dispatchers.ArgsGetGroupWithApiKey,
func (dS *DispatcherCacheSv1) GetGroupItemIDs(args *utils.ArgsGetGroupWithArgDispatcher,
reply *[]string) (err error) {
return dS.dS.CacheSv1GetGroupItemIDs(args, reply)
}
// RemoveGroup will remove a group and all items belonging to it from cache
func (dS *DispatcherCacheSv1) RemoveGroup(args *dispatchers.ArgsGetGroupWithApiKey,
func (dS *DispatcherCacheSv1) RemoveGroup(args *utils.ArgsGetGroupWithArgDispatcher,
reply *string) (err error) {
return dS.dS.CacheSv1RemoveGroup(args, reply)
}
// ReloadCache reloads cache from DB for a prefix or completely
func (dS *DispatcherCacheSv1) ReloadCache(args dispatchers.AttrReloadCacheWithApiKey, reply *string) (err error) {
func (dS *DispatcherCacheSv1) ReloadCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
return dS.dS.CacheSv1ReloadCache(args, reply)
}
// LoadCache loads cache from DB for a prefix or completely
func (dS *DispatcherCacheSv1) LoadCache(args dispatchers.AttrReloadCacheWithApiKey, reply *string) (err error) {
func (dS *DispatcherCacheSv1) LoadCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
return dS.dS.CacheSv1LoadCache(args, reply)
}

View File

@@ -104,19 +104,19 @@ type ResponderInterface interface {
}
type CacheSv1Interface interface {
GetItemIDs(args *dispatchers.ArgsGetCacheItemIDsWithApiKey, reply *[]string) error
HasItem(args *dispatchers.ArgsGetCacheItemWithApiKey, reply *bool) error
GetItemExpiryTime(args *dispatchers.ArgsGetCacheItemWithApiKey, reply *time.Time) error
RemoveItem(args *dispatchers.ArgsGetCacheItemWithApiKey, reply *string) error
Clear(cacheIDs *dispatchers.AttrCacheIDsWithApiKey, reply *string) error
FlushCache(args dispatchers.AttrReloadCacheWithApiKey, reply *string) error
GetCacheStats(cacheIDs *dispatchers.AttrCacheIDsWithApiKey, rply *map[string]*ltcache.CacheStats) error
PrecacheStatus(cacheIDs *dispatchers.AttrCacheIDsWithApiKey, rply *map[string]string) error
HasGroup(args *dispatchers.ArgsGetGroupWithApiKey, rply *bool) error
GetGroupItemIDs(args *dispatchers.ArgsGetGroupWithApiKey, rply *[]string) error
RemoveGroup(args *dispatchers.ArgsGetGroupWithApiKey, rply *string) error
ReloadCache(attrs dispatchers.AttrReloadCacheWithApiKey, reply *string) error
LoadCache(args dispatchers.AttrReloadCacheWithApiKey, reply *string) error
GetItemIDs(args *utils.ArgsGetCacheItemIDsWithArgDispatcher, reply *[]string) error
HasItem(args *utils.ArgsGetCacheItemWithArgDispatcher, reply *bool) error
GetItemExpiryTime(args *utils.ArgsGetCacheItemWithArgDispatcher, reply *time.Time) error
RemoveItem(args *utils.ArgsGetCacheItemWithArgDispatcher, reply *string) error
Clear(cacheIDs *utils.AttrCacheIDsWithArgDispatcher, reply *string) error
FlushCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) error
GetCacheStats(cacheIDs *utils.AttrCacheIDsWithArgDispatcher, rply *map[string]*ltcache.CacheStats) error
PrecacheStatus(cacheIDs *utils.AttrCacheIDsWithArgDispatcher, rply *map[string]string) error
HasGroup(args *utils.ArgsGetGroupWithArgDispatcher, rply *bool) error
GetGroupItemIDs(args *utils.ArgsGetGroupWithArgDispatcher, rply *[]string) error
RemoveGroup(args *utils.ArgsGetGroupWithArgDispatcher, rply *string) error
ReloadCache(attrs utils.AttrReloadCacheWithArgDispatcher, reply *string) error
LoadCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) error
Ping(ign *utils.CGREventWithArgDispatcher, reply *string) error
}

View File

@@ -43,7 +43,7 @@ func (apierV1 *ApierV1) SetFilter(arg *FilterWithCache, reply *string) error {
return utils.APIErrorHandler(err)
}
//handle caching for Filter
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheFilters,
ItemID: arg.TenantID(),
}
@@ -101,7 +101,7 @@ func (apierV1 *ApierV1) RemoveFilter(arg utils.TenantIDWithCache, reply *string)
return utils.APIErrorHandler(err)
}
//handle caching for Filter
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheFilters,
ItemID: arg.TenantID(),
}

View File

@@ -20,7 +20,6 @@ package v1
import (
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -37,7 +36,7 @@ func GetCacheOpt(apiOpt *string) string {
// composeArgsReload add the ItemID to AttrReloadCache
// for a specific CacheID
func composeArgsReload(args engine.ArgsGetCacheItem) (rpl utils.AttrReloadCache) {
func composeArgsReload(args utils.ArgsGetCacheItem) (rpl utils.AttrReloadCache) {
rpl = utils.InitAttrReloadCache()
switch args.CacheID {
case utils.CacheResourceProfiles:

View File

@@ -29,7 +29,6 @@ import (
"time"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/dispatchers"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
@@ -102,7 +101,7 @@ func testPrecacheRpcConn(t *testing.T) {
}
func testPrecacheGetItemIDs(t *testing.T) {
args := &engine.ArgsGetCacheItemIDs{
args := &utils.ArgsGetCacheItemIDs{
CacheID: utils.MetaDefault,
}
var reply *[]string
@@ -114,7 +113,7 @@ func testPrecacheGetItemIDs(t *testing.T) {
func testPrecacheGetCacheStatsBeforeLoad(t *testing.T) {
var reply *map[string]*ltcache.CacheStats
args := &dispatchers.AttrCacheIDsWithApiKey{
args := &utils.AttrCacheIDsWithArgDispatcher{
CacheIDs: []string{},
}
dfltStats := engine.GetDefaultEmptyCacheStats()
@@ -148,7 +147,7 @@ func testPrecacheRestartEngine(t *testing.T) {
func testPrecacheGetCacheStatsAfterRestart(t *testing.T) {
var reply *map[string]*ltcache.CacheStats
args := &dispatchers.AttrCacheIDsWithApiKey{
args := &utils.AttrCacheIDsWithArgDispatcher{
CacheIDs: []string{},
}
expectedStats := &map[string]*ltcache.CacheStats{

View File

@@ -120,7 +120,7 @@ func (apierV1 *ApierV1) SetResourceProfile(arg *ResourceWithCache, reply *string
return utils.APIErrorHandler(err)
}
//handle caching for ResourceProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheResourceProfiles,
ItemID: arg.TenantID(),
}
@@ -138,7 +138,7 @@ func (apierV1 *ApierV1) SetResourceProfile(arg *ResourceWithCache, reply *string
return utils.APIErrorHandler(err)
}
//handle caching for Resource
argCache = engine.ArgsGetCacheItem{
argCache = utils.ArgsGetCacheItem{
CacheID: utils.CacheResources,
ItemID: arg.TenantID(),
}
@@ -160,7 +160,7 @@ func (apierV1 *ApierV1) RemoveResourceProfile(arg utils.TenantIDWithCache, reply
return utils.APIErrorHandler(err)
}
//handle caching for ResourceProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheResourceProfiles,
ItemID: arg.TenantID(),
}
@@ -177,7 +177,7 @@ func (apierV1 *ApierV1) RemoveResourceProfile(arg utils.TenantIDWithCache, reply
return utils.APIErrorHandler(err)
}
//handle caching for Resource
argCache = engine.ArgsGetCacheItem{
argCache = utils.ArgsGetCacheItem{
CacheID: utils.CacheResources,
ItemID: arg.TenantID(),
}

View File

@@ -80,7 +80,7 @@ func (apierV1 *ApierV1) SetStatQueueProfile(arg *StatQueueWithCache, reply *stri
return utils.APIErrorHandler(err)
}
//handle caching for StatQueueProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheStatQueueProfiles,
ItemID: arg.TenantID(),
}
@@ -103,7 +103,7 @@ func (apierV1 *ApierV1) SetStatQueueProfile(arg *StatQueueWithCache, reply *stri
return utils.APIErrorHandler(err)
}
//handle caching for StatQueues
argCache = engine.ArgsGetCacheItem{
argCache = utils.ArgsGetCacheItem{
CacheID: utils.CacheStatQueues,
ItemID: arg.TenantID(),
}
@@ -125,7 +125,7 @@ func (apierV1 *ApierV1) RemoveStatQueueProfile(args *utils.TenantIDWithCache, re
return utils.APIErrorHandler(err)
}
//handle caching for StatQueueProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheStatQueueProfiles,
ItemID: args.TenantID(),
}
@@ -142,7 +142,7 @@ func (apierV1 *ApierV1) RemoveStatQueueProfile(args *utils.TenantIDWithCache, re
return utils.APIErrorHandler(err)
}
//handle caching for StatQueues
argCache = engine.ArgsGetCacheItem{
argCache = utils.ArgsGetCacheItem{
CacheID: utils.CacheStatQueues,
ItemID: args.TenantID(),
}

View File

@@ -77,7 +77,7 @@ func (apierV1 *ApierV1) SetSupplierProfile(args *SupplierWithCache, reply *strin
return utils.APIErrorHandler(err)
}
//handle caching for SupplierProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheSupplierProfiles,
ItemID: args.TenantID(),
}
@@ -101,7 +101,7 @@ func (apierV1 *ApierV1) RemoveSupplierProfile(args *utils.TenantIDWithCache, rep
return utils.APIErrorHandler(err)
}
//handle caching for SupplierProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheSupplierProfiles,
ItemID: args.TenantID(),
}

View File

@@ -114,7 +114,7 @@ func (apierV1 *ApierV1) SetThresholdProfile(args *ThresholdWithCache, reply *str
return utils.APIErrorHandler(err)
}
//handle caching for ThresholdProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheThresholdProfiles,
ItemID: args.TenantID(),
}
@@ -129,7 +129,7 @@ func (apierV1 *ApierV1) SetThresholdProfile(args *ThresholdWithCache, reply *str
return err
}
//handle caching for Threshold
argCache = engine.ArgsGetCacheItem{
argCache = utils.ArgsGetCacheItem{
CacheID: utils.CacheThresholds,
ItemID: args.TenantID(),
}
@@ -151,7 +151,7 @@ func (apierV1 *ApierV1) RemoveThresholdProfile(args *utils.TenantIDWithCache, re
return utils.APIErrorHandler(err)
}
//handle caching for ThresholdProfile
argCache := engine.ArgsGetCacheItem{
argCache := utils.ArgsGetCacheItem{
CacheID: utils.CacheThresholdProfiles,
ItemID: args.TenantID(),
}
@@ -168,7 +168,7 @@ func (apierV1 *ApierV1) RemoveThresholdProfile(args *utils.TenantIDWithCache, re
return utils.APIErrorHandler(err)
}
//handle caching for Threshold
argCache = engine.ArgsGetCacheItem{
argCache = utils.ArgsGetCacheItem{
CacheID: utils.CacheThresholds,
ItemID: args.TenantID(),
}

View File

@@ -149,7 +149,7 @@ func (self *ApierV2) LoadTariffPlanFromFolder(attrs utils.AttrLoadTpFromFolder,
}
utils.Logger.Info("ApierV2.LoadTariffPlanFromFolder, reloading cache.")
if err := loader.ReloadCache(attrs.FlushDb, true); err != nil {
if err := loader.ReloadCache(attrs.FlushDb, true, attrs.ArgDispatcher); err != nil {
return utils.NewErrServerError(err)
}
loadHistList, err := self.DataManager.DataDB().GetLoadHistory(1, true, utils.NonTransactional)

View File

@@ -48,7 +48,7 @@ func (apierV2 *ApierV2) SetAttributeProfile(arg *AttributeWithCache, reply *stri
map[string]int64{utils.CacheAttributeProfiles: time.Now().UnixNano()}); err != nil {
return utils.APIErrorHandler(err)
}
args := engine.ArgsGetCacheItem{
args := utils.ArgsGetCacheItem{
CacheID: utils.CacheAttributeProfiles,
ItemID: alsPrf.TenantID(),
}

View File

@@ -96,6 +96,8 @@ var (
disableReverse = cgrLoaderFlags.Bool("disable_reverse_mappings", false, "Will disable reverse mappings rebuilding")
flushStorDB = cgrLoaderFlags.Bool("flush_stordb", false, "Remove tariff plan data for id from the database")
remove = cgrLoaderFlags.Bool("remove", false, "Will remove instead of adding data from DB")
apiKey = cgrLoaderFlags.String("api_key", "", "Api Key used to comosed ArgDispatcher")
routeID = cgrLoaderFlags.String("route_id", "", "RouteID used to comosed ArgDispatcher")
err error
dm *engine.DataManager
@@ -351,7 +353,10 @@ func main() {
log.Fatal("Could not write to database: ", err)
}
// reload cache
if err := tpReader.ReloadCache(*flush, *verbose); err != nil {
if err := tpReader.ReloadCache(*flush, *verbose, &utils.ArgDispatcher{
APIKey: apiKey,
RouteID: routeID,
}); err != nil {
log.Fatal("Could not reload cache: ", err)
}
} else {

View File

@@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package console
import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -27,7 +26,7 @@ func init() {
c := &CmdCacheGetGroupItemIDs{
name: "cache_group_item_ids",
rpcMethod: utils.CacheSv1GetGroupItemIDs,
rpcParams: &engine.ArgsGetGroup{},
rpcParams: &utils.ArgsGetGroup{},
}
commands[c.Name()] = c
c.CommandExecuter = &CommandExecuter{c}
@@ -37,7 +36,7 @@ func init() {
type CmdCacheGetGroupItemIDs struct {
name string
rpcMethod string
rpcParams *engine.ArgsGetGroup
rpcParams *utils.ArgsGetGroup
*CommandExecuter
}
@@ -51,7 +50,7 @@ func (self *CmdCacheGetGroupItemIDs) RpcMethod() string {
func (self *CmdCacheGetGroupItemIDs) RpcParams(reset bool) interface{} {
if reset || self.rpcParams == nil {
self.rpcParams = &engine.ArgsGetGroup{}
self.rpcParams = &utils.ArgsGetGroup{}
}
return self.rpcParams
}

View File

@@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package console
import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -27,7 +26,7 @@ func init() {
c := &CmdCacheHasGroup{
name: "cache_has_group",
rpcMethod: utils.CacheSv1HasGroup,
rpcParams: &engine.ArgsGetGroup{},
rpcParams: &utils.ArgsGetGroup{},
}
commands[c.Name()] = c
c.CommandExecuter = &CommandExecuter{c}
@@ -37,7 +36,7 @@ func init() {
type CmdCacheHasGroup struct {
name string
rpcMethod string
rpcParams *engine.ArgsGetGroup
rpcParams *utils.ArgsGetGroup
*CommandExecuter
}
@@ -51,7 +50,7 @@ func (self *CmdCacheHasGroup) RpcMethod() string {
func (self *CmdCacheHasGroup) RpcParams(reset bool) interface{} {
if reset || self.rpcParams == nil {
self.rpcParams = &engine.ArgsGetGroup{}
self.rpcParams = &utils.ArgsGetGroup{}
}
return self.rpcParams
}

View File

@@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package console
import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -27,7 +26,7 @@ func init() {
c := &CmdCacheHasItem{
name: "cache_has_item",
rpcMethod: utils.CacheSv1HasItem,
rpcParams: &engine.ArgsGetCacheItem{},
rpcParams: &utils.ArgsGetCacheItem{},
}
commands[c.Name()] = c
c.CommandExecuter = &CommandExecuter{c}
@@ -37,7 +36,7 @@ func init() {
type CmdCacheHasItem struct {
name string
rpcMethod string
rpcParams *engine.ArgsGetCacheItem
rpcParams *utils.ArgsGetCacheItem
*CommandExecuter
}
@@ -51,7 +50,7 @@ func (self *CmdCacheHasItem) RpcMethod() string {
func (self *CmdCacheHasItem) RpcParams(reset bool) interface{} {
if reset || self.rpcParams == nil {
self.rpcParams = &engine.ArgsGetCacheItem{}
self.rpcParams = &utils.ArgsGetCacheItem{}
}
return self.rpcParams
}

View File

@@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package console
import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -27,7 +26,7 @@ func init() {
c := &CmdCacheGetItemExpiryTime{
name: "cache_item_expiry_time",
rpcMethod: utils.CacheSv1GetItemExpiryTime,
rpcParams: &engine.ArgsGetCacheItem{},
rpcParams: &utils.ArgsGetCacheItem{},
}
commands[c.Name()] = c
c.CommandExecuter = &CommandExecuter{c}
@@ -37,7 +36,7 @@ func init() {
type CmdCacheGetItemExpiryTime struct {
name string
rpcMethod string
rpcParams *engine.ArgsGetCacheItem
rpcParams *utils.ArgsGetCacheItem
*CommandExecuter
}
@@ -51,7 +50,7 @@ func (self *CmdCacheGetItemExpiryTime) RpcMethod() string {
func (self *CmdCacheGetItemExpiryTime) RpcParams(reset bool) interface{} {
if reset || self.rpcParams == nil {
self.rpcParams = &engine.ArgsGetCacheItem{}
self.rpcParams = &utils.ArgsGetCacheItem{}
}
return self.rpcParams
}

View File

@@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package console
import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -27,7 +26,7 @@ func init() {
c := &CmdCacheGetItemIDs{
name: "cache_item_ids",
rpcMethod: utils.CacheSv1GetItemIDs,
rpcParams: &engine.ArgsGetCacheItemIDs{},
rpcParams: &utils.ArgsGetCacheItemIDs{},
}
commands[c.Name()] = c
c.CommandExecuter = &CommandExecuter{c}
@@ -37,7 +36,7 @@ func init() {
type CmdCacheGetItemIDs struct {
name string
rpcMethod string
rpcParams *engine.ArgsGetCacheItemIDs
rpcParams *utils.ArgsGetCacheItemIDs
*CommandExecuter
}
@@ -51,7 +50,7 @@ func (self *CmdCacheGetItemIDs) RpcMethod() string {
func (self *CmdCacheGetItemIDs) RpcParams(reset bool) interface{} {
if reset || self.rpcParams == nil {
self.rpcParams = &engine.ArgsGetCacheItemIDs{}
self.rpcParams = &utils.ArgsGetCacheItemIDs{}
}
return self.rpcParams
}

View File

@@ -33,7 +33,7 @@ func init() {
type CmdReloadCache struct {
name string
rpcMethod string
rpcParams *utils.AttrReloadCache
rpcParams *utils.AttrReloadCacheWithArgDispatcher
rpcResult string
*CommandExecuter
}
@@ -48,7 +48,7 @@ func (self *CmdReloadCache) RpcMethod() string {
func (self *CmdReloadCache) RpcParams(reset bool) interface{} {
if reset || self.rpcParams == nil {
self.rpcParams = &utils.AttrReloadCache{}
self.rpcParams = &utils.AttrReloadCacheWithArgDispatcher{}
}
return self.rpcParams
}

View File

@@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package console
import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -27,7 +26,7 @@ func init() {
c := &CmdCacheRemoveGroup{
name: "cache_remove_group",
rpcMethod: utils.CacheSv1RemoveGroup,
rpcParams: &engine.ArgsGetGroup{},
rpcParams: &utils.ArgsGetGroup{},
}
commands[c.Name()] = c
c.CommandExecuter = &CommandExecuter{c}
@@ -37,7 +36,7 @@ func init() {
type CmdCacheRemoveGroup struct {
name string
rpcMethod string
rpcParams *engine.ArgsGetGroup
rpcParams *utils.ArgsGetGroup
*CommandExecuter
}
@@ -51,7 +50,7 @@ func (self *CmdCacheRemoveGroup) RpcMethod() string {
func (self *CmdCacheRemoveGroup) RpcParams(reset bool) interface{} {
if reset || self.rpcParams == nil {
self.rpcParams = &engine.ArgsGetGroup{}
self.rpcParams = &utils.ArgsGetGroup{}
}
return self.rpcParams
}

View File

@@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package console
import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -27,7 +26,7 @@ func init() {
c := &CmdCacheRemoveItem{
name: "cache_remove_item",
rpcMethod: utils.CacheSv1RemoveItem,
rpcParams: &engine.ArgsGetCacheItem{},
rpcParams: &utils.ArgsGetCacheItem{},
}
commands[c.Name()] = c
c.CommandExecuter = &CommandExecuter{c}
@@ -37,7 +36,7 @@ func init() {
type CmdCacheRemoveItem struct {
name string
rpcMethod string
rpcParams *engine.ArgsGetCacheItem
rpcParams *utils.ArgsGetCacheItem
*CommandExecuter
}
@@ -51,7 +50,7 @@ func (self *CmdCacheRemoveItem) RpcMethod() string {
func (self *CmdCacheRemoveItem) RpcParams(reset bool) interface{} {
if reset || self.rpcParams == nil {
self.rpcParams = &engine.ArgsGetCacheItem{}
self.rpcParams = &utils.ArgsGetCacheItem{}
}
return self.rpcParams
}

View File

@@ -43,7 +43,7 @@ func (dS *DispatcherService) CacheSv1Ping(args *utils.CGREventWithArgDispatcher,
}
// GetItemIDs returns the IDs for cacheID with given prefix
func (dS *DispatcherService) CacheSv1GetItemIDs(args *ArgsGetCacheItemIDsWithApiKey,
func (dS *DispatcherService) CacheSv1GetItemIDs(args *utils.ArgsGetCacheItemIDsWithArgDispatcher,
reply *[]string) (err error) {
if dS.attrS != nil {
if err = dS.authorize(utils.CacheSv1GetItemIDs,
@@ -57,7 +57,7 @@ func (dS *DispatcherService) CacheSv1GetItemIDs(args *ArgsGetCacheItemIDsWithApi
}
// HasItem verifies the existence of an Item in cache
func (dS *DispatcherService) CacheSv1HasItem(args *ArgsGetCacheItemWithApiKey,
func (dS *DispatcherService) CacheSv1HasItem(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *bool) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
@@ -74,7 +74,7 @@ func (dS *DispatcherService) CacheSv1HasItem(args *ArgsGetCacheItemWithApiKey,
}
// GetItemExpiryTime returns the expiryTime for an item
func (dS *DispatcherService) CacheSv1GetItemExpiryTime(args *ArgsGetCacheItemWithApiKey,
func (dS *DispatcherService) CacheSv1GetItemExpiryTime(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *time.Time) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
@@ -91,7 +91,7 @@ func (dS *DispatcherService) CacheSv1GetItemExpiryTime(args *ArgsGetCacheItemWit
}
// RemoveItem removes the Item with ID from cache
func (dS *DispatcherService) CacheSv1RemoveItem(args *ArgsGetCacheItemWithApiKey,
func (dS *DispatcherService) CacheSv1RemoveItem(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *string) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
@@ -108,7 +108,7 @@ func (dS *DispatcherService) CacheSv1RemoveItem(args *ArgsGetCacheItemWithApiKey
}
// Clear will clear partitions in the cache (nil fol all, empty slice for none)
func (dS *DispatcherService) CacheSv1Clear(args *AttrCacheIDsWithApiKey,
func (dS *DispatcherService) CacheSv1Clear(args *utils.AttrCacheIDsWithArgDispatcher,
reply *string) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
@@ -125,7 +125,7 @@ func (dS *DispatcherService) CacheSv1Clear(args *AttrCacheIDsWithApiKey,
}
// FlushCache wipes out cache for a prefix or completely
func (dS *DispatcherService) CacheSv1FlushCache(args AttrReloadCacheWithApiKey, reply *string) (err error) {
func (dS *DispatcherService) CacheSv1FlushCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
}
@@ -141,7 +141,7 @@ func (dS *DispatcherService) CacheSv1FlushCache(args AttrReloadCacheWithApiKey,
}
// GetCacheStats returns CacheStats filtered by cacheIDs
func (dS *DispatcherService) CacheSv1GetCacheStats(args *AttrCacheIDsWithApiKey,
func (dS *DispatcherService) CacheSv1GetCacheStats(args *utils.AttrCacheIDsWithArgDispatcher,
reply *map[string]*ltcache.CacheStats) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
@@ -158,7 +158,7 @@ func (dS *DispatcherService) CacheSv1GetCacheStats(args *AttrCacheIDsWithApiKey,
}
// PrecacheStatus checks status of active precache processes
func (dS *DispatcherService) CacheSv1PrecacheStatus(args *AttrCacheIDsWithApiKey, reply *map[string]string) (err error) {
func (dS *DispatcherService) CacheSv1PrecacheStatus(args *utils.AttrCacheIDsWithArgDispatcher, reply *map[string]string) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
}
@@ -174,7 +174,7 @@ func (dS *DispatcherService) CacheSv1PrecacheStatus(args *AttrCacheIDsWithApiKey
}
// HasGroup checks existence of a group in cache
func (dS *DispatcherService) CacheSv1HasGroup(args *ArgsGetGroupWithApiKey,
func (dS *DispatcherService) CacheSv1HasGroup(args *utils.ArgsGetGroupWithArgDispatcher,
reply *bool) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
@@ -191,7 +191,7 @@ func (dS *DispatcherService) CacheSv1HasGroup(args *ArgsGetGroupWithApiKey,
}
// GetGroupItemIDs returns a list of itemIDs in a cache group
func (dS *DispatcherService) CacheSv1GetGroupItemIDs(args *ArgsGetGroupWithApiKey,
func (dS *DispatcherService) CacheSv1GetGroupItemIDs(args *utils.ArgsGetGroupWithArgDispatcher,
reply *[]string) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
@@ -208,7 +208,7 @@ func (dS *DispatcherService) CacheSv1GetGroupItemIDs(args *ArgsGetGroupWithApiKe
}
// RemoveGroup will remove a group and all items belonging to it from cache
func (dS *DispatcherService) CacheSv1RemoveGroup(args *ArgsGetGroupWithApiKey,
func (dS *DispatcherService) CacheSv1RemoveGroup(args *utils.ArgsGetGroupWithArgDispatcher,
reply *string) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
@@ -225,7 +225,7 @@ func (dS *DispatcherService) CacheSv1RemoveGroup(args *ArgsGetGroupWithApiKey,
}
// ReloadCache reloads cache from DB for a prefix or completely
func (dS *DispatcherService) CacheSv1ReloadCache(args AttrReloadCacheWithApiKey, reply *string) (err error) {
func (dS *DispatcherService) CacheSv1ReloadCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
}
@@ -241,7 +241,7 @@ func (dS *DispatcherService) CacheSv1ReloadCache(args AttrReloadCacheWithApiKey,
}
// LoadCache loads cache from DB for a prefix or completely
func (dS *DispatcherService) CacheSv1LoadCache(args AttrReloadCacheWithApiKey, reply *string) (err error) {
func (dS *DispatcherService) CacheSv1LoadCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing("ArgDispatcher")
}

View File

@@ -84,7 +84,7 @@ func testDspChcLoadAfterFolder(t *testing.T) {
expStats[utils.CacheActions].Items = 1
expStats[utils.CacheDestinations].Items = 4
expStats[utils.CacheLoadIDs].Items = 17
args := AttrCacheIDsWithApiKey{
args := utils.AttrCacheIDsWithArgDispatcher{
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer("chc12345"),
},
@@ -99,7 +99,7 @@ func testDspChcLoadAfterFolder(t *testing.T) {
}
reply := ""
// Simple test that command is executed without errors
if err := dispEngine.RCP.Call(utils.CacheSv1LoadCache, AttrReloadCacheWithApiKey{
if err := dispEngine.RCP.Call(utils.CacheSv1LoadCache, utils.AttrReloadCacheWithArgDispatcher{
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer("chc12345"),
},
@@ -169,7 +169,7 @@ func testDspChcPrecacheStatus(t *testing.T) {
utils.CacheLoadIDs: utils.MetaReady,
}
if err := dispEngine.RCP.Call(utils.CacheSv1PrecacheStatus, AttrCacheIDsWithApiKey{
if err := dispEngine.RCP.Call(utils.CacheSv1PrecacheStatus, utils.AttrCacheIDsWithArgDispatcher{
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer("chc12345"),
},
@@ -186,8 +186,8 @@ func testDspChcPrecacheStatus(t *testing.T) {
func testDspChcGetItemIDs(t *testing.T) {
var rcvKeys []string
expKeys := []string{"cgrates.org:DEFAULT"}
argsAPI := ArgsGetCacheItemIDsWithApiKey{
ArgsGetCacheItemIDs: engine.ArgsGetCacheItemIDs{
argsAPI := utils.ArgsGetCacheItemIDsWithArgDispatcher{
ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
CacheID: utils.CacheChargerProfiles,
},
ArgDispatcher: &utils.ArgDispatcher{
@@ -208,8 +208,8 @@ func testDspChcGetItemIDs(t *testing.T) {
func testDspChcHasItem(t *testing.T) {
var reply bool
expected := true
argsAPI := ArgsGetCacheItemWithApiKey{
ArgsGetCacheItem: engine.ArgsGetCacheItem{
argsAPI := utils.ArgsGetCacheItemWithArgDispatcher{
ArgsGetCacheItem: utils.ArgsGetCacheItem{
CacheID: utils.CacheChargerProfiles,
ItemID: "cgrates.org:DEFAULT",
},
@@ -230,8 +230,8 @@ func testDspChcHasItem(t *testing.T) {
func testDspChcGetItemExpiryTime(t *testing.T) {
var reply time.Time
var expected time.Time
argsAPI := ArgsGetCacheItemWithApiKey{
ArgsGetCacheItem: engine.ArgsGetCacheItem{
argsAPI := utils.ArgsGetCacheItemWithArgDispatcher{
ArgsGetCacheItem: utils.ArgsGetCacheItem{
CacheID: utils.CacheChargerProfiles,
ItemID: "cgrates.org:DEFAULT",
},
@@ -251,7 +251,7 @@ func testDspChcGetItemExpiryTime(t *testing.T) {
func testDspChcReloadCache(t *testing.T) {
reply := ""
if err := dispEngine.RCP.Call(utils.CacheSv1ReloadCache, AttrReloadCacheWithApiKey{
if err := dispEngine.RCP.Call(utils.CacheSv1ReloadCache, utils.AttrReloadCacheWithArgDispatcher{
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer("chc12345"),
},
@@ -267,8 +267,8 @@ func testDspChcReloadCache(t *testing.T) {
func testDspChcRemoveItem(t *testing.T) {
var reply bool
argsAPI := ArgsGetCacheItemWithApiKey{
ArgsGetCacheItem: engine.ArgsGetCacheItem{
argsAPI := utils.ArgsGetCacheItemWithArgDispatcher{
ArgsGetCacheItem: utils.ArgsGetCacheItem{
CacheID: utils.CacheChargerProfiles,
ItemID: "cgrates.org:DEFAULT",
},
@@ -299,7 +299,7 @@ func testDspChcRemoveItem(t *testing.T) {
func testDspChcClear(t *testing.T) {
reply := ""
if err := dispEngine.RCP.Call(utils.CacheSv1Clear, AttrCacheIDsWithApiKey{
if err := dispEngine.RCP.Call(utils.CacheSv1Clear, utils.AttrCacheIDsWithArgDispatcher{
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer("chc12345"),
},
@@ -313,7 +313,7 @@ func testDspChcClear(t *testing.T) {
}
var rcvStats map[string]*ltcache.CacheStats
expStats := engine.GetDefaultEmptyCacheStats()
if err := dispEngine.RCP.Call(utils.CacheSv1GetCacheStats, AttrCacheIDsWithApiKey{
if err := dispEngine.RCP.Call(utils.CacheSv1GetCacheStats, utils.AttrCacheIDsWithArgDispatcher{
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer("chc12345"),
},
@@ -329,7 +329,7 @@ func testDspChcClear(t *testing.T) {
func testDspChcFlush(t *testing.T) {
reply := ""
if err := dispEngine.RCP.Call(utils.CacheSv1FlushCache, AttrReloadCacheWithApiKey{
if err := dispEngine.RCP.Call(utils.CacheSv1FlushCache, utils.AttrReloadCacheWithArgDispatcher{
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer("chc12345"),
},
@@ -346,7 +346,7 @@ func testDspChcFlush(t *testing.T) {
}
var rcvStats map[string]*ltcache.CacheStats
expStats := engine.GetDefaultEmptyCacheStats()
if err := dispEngine.RCP.Call(utils.CacheSv1GetCacheStats, AttrCacheIDsWithApiKey{
if err := dispEngine.RCP.Call(utils.CacheSv1GetCacheStats, utils.AttrCacheIDsWithArgDispatcher{
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer("chc12345"),
},

View File

@@ -24,7 +24,6 @@ import (
"github.com/cgrates/cgrates/servmanager"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
)
@@ -53,36 +52,6 @@ type ArgsReplicateSessionsWithApiKey struct {
sessions.ArgsReplicateSessions
}
type ArgsGetCacheItemIDsWithApiKey struct {
*utils.ArgDispatcher
utils.TenantArg
engine.ArgsGetCacheItemIDs
}
type ArgsGetCacheItemWithApiKey struct {
*utils.ArgDispatcher
utils.TenantArg
engine.ArgsGetCacheItem
}
type AttrReloadCacheWithApiKey struct {
*utils.ArgDispatcher
utils.TenantArg
utils.AttrReloadCache
}
type AttrCacheIDsWithApiKey struct {
*utils.ArgDispatcher
utils.TenantArg
CacheIDs []string
}
type ArgsGetGroupWithApiKey struct {
*utils.ArgDispatcher
utils.TenantArg
engine.ArgsGetGroup
}
type AttrRemoteLockWithApiKey struct {
*utils.ArgDispatcher
utils.TenantArg

View File

@@ -148,12 +148,7 @@ func (chS *CacheS) Call(serviceMethod string, args interface{}, reply interface{
return utils.RPCCall(chS, serviceMethod, args, reply)
}
type ArgsGetCacheItemIDs struct {
CacheID string
ItemIDPrefix string
}
func (chS *CacheS) V1GetItemIDs(args *ArgsGetCacheItemIDs,
func (chS *CacheS) V1GetItemIDs(args *utils.ArgsGetCacheItemIDsWithArgDispatcher,
reply *[]string) (err error) {
itmIDs := Cache.GetItemIDs(args.CacheID, args.ItemIDPrefix)
if len(itmIDs) == 0 {
@@ -163,18 +158,13 @@ func (chS *CacheS) V1GetItemIDs(args *ArgsGetCacheItemIDs,
return
}
type ArgsGetCacheItem struct {
CacheID string
ItemID string
}
func (chS *CacheS) V1HasItem(args *ArgsGetCacheItem,
func (chS *CacheS) V1HasItem(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *bool) (err error) {
*reply = Cache.HasItem(args.CacheID, args.ItemID)
return
}
func (chS *CacheS) V1GetItemExpiryTime(args *ArgsGetCacheItem,
func (chS *CacheS) V1GetItemExpiryTime(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *time.Time) (err error) {
expTime, has := Cache.GetItemExpiryTime(args.CacheID, args.ItemID)
if !has {
@@ -184,35 +174,35 @@ func (chS *CacheS) V1GetItemExpiryTime(args *ArgsGetCacheItem,
return
}
func (chS *CacheS) V1RemoveItem(args *ArgsGetCacheItem,
func (chS *CacheS) V1RemoveItem(args *utils.ArgsGetCacheItemWithArgDispatcher,
reply *string) (err error) {
Cache.Remove(args.CacheID, args.ItemID, true, utils.NonTransactional)
*reply = utils.OK
return
}
func (chS *CacheS) V1Clear(cacheIDs []string,
func (chS *CacheS) V1Clear(args *utils.AttrCacheIDsWithArgDispatcher,
reply *string) (err error) {
Cache.Clear(cacheIDs)
Cache.Clear(args.CacheIDs)
*reply = utils.OK
return
}
func (chS *CacheS) V1GetCacheStats(cacheIDs []string,
func (chS *CacheS) V1GetCacheStats(args *utils.AttrCacheIDsWithArgDispatcher,
rply *map[string]*ltcache.CacheStats) (err error) {
cs := Cache.GetCacheStats(cacheIDs)
cs := Cache.GetCacheStats(args.CacheIDs)
*rply = cs
return
}
func (chS *CacheS) V1PrecacheStatus(cacheIDs []string, rply *map[string]string) (err error) {
if len(cacheIDs) == 0 {
func (chS *CacheS) V1PrecacheStatus(args *utils.AttrCacheIDsWithArgDispatcher, rply *map[string]string) (err error) {
if len(args.CacheIDs) == 0 {
for cacheID := range precachedPartitions {
cacheIDs = append(cacheIDs, cacheID)
args.CacheIDs = append(args.CacheIDs, cacheID)
}
}
pCacheStatus := make(map[string]string)
for _, cacheID := range cacheIDs {
for _, cacheID := range args.CacheIDs {
if _, has := chS.pcItems[cacheID]; !has {
return fmt.Errorf("unknown cacheID: %s", cacheID)
}
@@ -227,18 +217,13 @@ func (chS *CacheS) V1PrecacheStatus(cacheIDs []string, rply *map[string]string)
return
}
type ArgsGetGroup struct {
CacheID string
GroupID string
}
func (chS *CacheS) V1HasGroup(args *ArgsGetGroup,
func (chS *CacheS) V1HasGroup(args *utils.ArgsGetGroupWithArgDispatcher,
rply *bool) (err error) {
*rply = Cache.HasGroup(args.CacheID, args.GroupID)
return
}
func (chS *CacheS) V1GetGroupItemIDs(args *ArgsGetGroup,
func (chS *CacheS) V1GetGroupItemIDs(args *utils.ArgsGetGroupWithArgDispatcher,
rply *[]string) (err error) {
if has := Cache.HasGroup(args.CacheID, args.GroupID); !has {
return utils.ErrNotFound
@@ -247,7 +232,7 @@ func (chS *CacheS) V1GetGroupItemIDs(args *ArgsGetGroup,
return
}
func (chS *CacheS) V1RemoveGroup(args *ArgsGetGroup,
func (chS *CacheS) V1RemoveGroup(args *utils.ArgsGetGroupWithArgDispatcher,
rply *string) (err error) {
Cache.RemoveGroup(args.CacheID, args.GroupID, true, utils.NonTransactional)
*rply = utils.OK
@@ -261,7 +246,7 @@ func (chS *CacheS) reloadCache(chID string, IDs *[]string) error {
return chS.dm.CacheDataFromDB(chID, *IDs, true)
}
func (chS *CacheS) V1ReloadCache(attrs utils.AttrReloadCache, reply *string) (err error) {
func (chS *CacheS) V1ReloadCache(attrs utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
if attrs.FlushAll {
Cache.Clear(nil)
return
@@ -356,7 +341,7 @@ func (chS *CacheS) V1ReloadCache(attrs utils.AttrReloadCache, reply *string) (er
if err != nil {
return err
}
cacheLoadIDs := populateCacheLoadIDs(loadIDs, attrs)
cacheLoadIDs := populateCacheLoadIDs(loadIDs, attrs.AttrReloadCache)
for key, val := range cacheLoadIDs {
Cache.Set(utils.CacheLoadIDs, key, val, nil,
cacheCommit(utils.NonTransactional), utils.NonTransactional)
@@ -373,7 +358,7 @@ func toStringSlice(in *[]string) []string {
return *in
}
func (chS *CacheS) V1LoadCache(args utils.AttrReloadCache, reply *string) (err error) {
func (chS *CacheS) V1LoadCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
if args.FlushAll {
Cache.Clear(nil)
}
@@ -407,7 +392,7 @@ func (chS *CacheS) V1LoadCache(args utils.AttrReloadCache, reply *string) (err e
if err != nil {
return err
}
cacheLoadIDs := populateCacheLoadIDs(loadIDs, args)
cacheLoadIDs := populateCacheLoadIDs(loadIDs, args.AttrReloadCache)
for key, val := range cacheLoadIDs {
Cache.Set(utils.CacheLoadIDs, key, val, nil,
cacheCommit(utils.NonTransactional), utils.NonTransactional)
@@ -427,7 +412,7 @@ func flushCache(chID string, IDs *[]string) {
}
// FlushCache wipes out cache for a prefix or completely
func (chS *CacheS) V1FlushCache(args utils.AttrReloadCache, reply *string) (err error) {
func (chS *CacheS) V1FlushCache(args utils.AttrReloadCacheWithArgDispatcher, reply *string) (err error) {
if args.FlushAll {
Cache.Clear(nil)
*reply = utils.OK
@@ -459,7 +444,7 @@ func (chS *CacheS) V1FlushCache(args utils.AttrReloadCache, reply *string) (err
if err != nil {
return err
}
cacheLoadIDs := populateCacheLoadIDs(loadIDs, args)
cacheLoadIDs := populateCacheLoadIDs(loadIDs, args.AttrReloadCache)
for key, val := range cacheLoadIDs {
Cache.Set(utils.CacheLoadIDs, key, val, nil,
cacheCommit(utils.NonTransactional), utils.NonTransactional)

View File

@@ -2361,7 +2361,7 @@ func (tpr *TpReader) RemoveFromDatabase(verbose, disable_reverse bool) (err erro
return
}
func (tpr *TpReader) ReloadCache(flush, verbose bool) (err error) {
func (tpr *TpReader) ReloadCache(flush, verbose bool, argDispatcher *utils.ArgDispatcher) (err error) {
if tpr.cacheS == nil {
log.Print("Disabled automatic reload")
return
@@ -2390,31 +2390,34 @@ func (tpr *TpReader) ReloadCache(flush, verbose bool) (err error) {
aps, _ := tpr.GetLoadedIds(utils.ACTION_PLAN_PREFIX)
//compose Reload Cache argument
cacheArgs := utils.AttrReloadCache{
ArgsCache: utils.ArgsCache{
DestinationIDs: &dstIds,
ReverseDestinationIDs: &revDstIDs,
RatingPlanIDs: &rplIds,
RatingProfileIDs: &rpfIds,
ActionIDs: &actIds,
ActionPlanIDs: &aps,
AccountActionPlanIDs: &aapIDs,
SharedGroupIDs: &shgIds,
ResourceProfileIDs: &rspIDs,
ResourceIDs: &resIDs,
ActionTriggerIDs: &aatIDs,
StatsQueueIDs: &stqIDs,
StatsQueueProfileIDs: &stqpIDs,
ThresholdIDs: &trsIDs,
ThresholdProfileIDs: &trspfIDs,
FilterIDs: &flrIDs,
SupplierProfileIDs: &spfIDs,
AttributeProfileIDs: &apfIDs,
ChargerProfileIDs: &chargerIDs,
DispatcherProfileIDs: &dppIDs,
DispatcherHostIDs: &dphIDs,
cacheArgs := utils.AttrReloadCacheWithArgDispatcher{
ArgDispatcher: argDispatcher,
AttrReloadCache: utils.AttrReloadCache{
ArgsCache: utils.ArgsCache{
DestinationIDs: &dstIds,
ReverseDestinationIDs: &revDstIDs,
RatingPlanIDs: &rplIds,
RatingProfileIDs: &rpfIds,
ActionIDs: &actIds,
ActionPlanIDs: &aps,
AccountActionPlanIDs: &aapIDs,
SharedGroupIDs: &shgIds,
ResourceProfileIDs: &rspIDs,
ResourceIDs: &resIDs,
ActionTriggerIDs: &aatIDs,
StatsQueueIDs: &stqIDs,
StatsQueueProfileIDs: &stqpIDs,
ThresholdIDs: &trsIDs,
ThresholdProfileIDs: &trspfIDs,
FilterIDs: &flrIDs,
SupplierProfileIDs: &spfIDs,
AttributeProfileIDs: &apfIDs,
ChargerProfileIDs: &chargerIDs,
DispatcherProfileIDs: &dppIDs,
DispatcherHostIDs: &dphIDs,
},
FlushAll: flush,
},
FlushAll: flush,
}
if verbose {
@@ -2466,7 +2469,11 @@ func (tpr *TpReader) ReloadCache(flush, verbose bool) (err error) {
if verbose {
log.Print("Clearing indexes")
}
if err = tpr.cacheS.Call(utils.CacheSv1Clear, cacheIDs, &reply); err != nil {
clearArgs := &utils.AttrCacheIDsWithArgDispatcher{
ArgDispatcher: argDispatcher,
CacheIDs: cacheIDs,
}
if err = tpr.cacheS.Call(utils.CacheSv1Clear, clearArgs, &reply); err != nil {
log.Printf("WARNING: Got error on cache clear: %s\n", err.Error())
}
@@ -2486,7 +2493,7 @@ func (tpr *TpReader) ReloadCache(flush, verbose bool) (err error) {
if err != nil {
return err
}
cacheLoadIDs := populateCacheLoadIDs(loadIDs, cacheArgs)
cacheLoadIDs := populateCacheLoadIDs(loadIDs, cacheArgs.AttrReloadCache)
for key, val := range cacheLoadIDs {
Cache.Set(utils.CacheLoadIDs, key, val, nil,
cacheCommit(utils.NonTransactional), utils.NonTransactional)

View File

@@ -678,17 +678,19 @@ type AttrRemCdrs struct {
}
type AttrLoadTpFromFolder struct {
FolderPath string // Take files from folder absolute path
DryRun bool // Do not write to database but parse only
FlushDb bool // Flush previous data before loading new one
Validate bool // Run structural checks on data
FolderPath string // Take files from folder absolute path
DryRun bool // Do not write to database but parse only
FlushDb bool // Flush previous data before loading new one
Validate bool // Run structural checks on data
ArgDispatcher *ArgDispatcher
}
type AttrImportTPFromFolder struct {
TPid string
FolderPath string
RunId string
CsvSeparator string
TPid string
FolderPath string
RunId string
CsvSeparator string
ArgDispatcher *ArgDispatcher
}
type AttrGetDestination struct {
@@ -1369,3 +1371,48 @@ type RPCCDRsFilterWithArgDispatcher struct {
*RPCCDRsFilter
*TenantWithArgDispatcher
}
type ArgsGetCacheItemIDsWithArgDispatcher struct {
*ArgDispatcher
TenantArg
ArgsGetCacheItemIDs
}
type ArgsGetCacheItemWithArgDispatcher struct {
*ArgDispatcher
TenantArg
ArgsGetCacheItem
}
type AttrReloadCacheWithArgDispatcher struct {
*ArgDispatcher
TenantArg
AttrReloadCache
}
type AttrCacheIDsWithArgDispatcher struct {
*ArgDispatcher
TenantArg
CacheIDs []string
}
type ArgsGetGroupWithArgDispatcher struct {
*ArgDispatcher
TenantArg
ArgsGetGroup
}
type ArgsGetCacheItemIDs struct {
CacheID string
ItemIDPrefix string
}
type ArgsGetCacheItem struct {
CacheID string
ItemID string
}
type ArgsGetGroup struct {
CacheID string
GroupID string
}