Added Replication APIs to dispatcher

This commit is contained in:
adragusin
2020-02-21 16:31:15 +02:00
committed by Dan Christian Bogos
parent c14b02d5eb
commit 029aaa6c6c
6 changed files with 542 additions and 51 deletions

View File

@@ -203,6 +203,7 @@ type ReplicatorSv1Interface interface {
SetThreshold(th *engine.ThresholdWithArgDispatcher, reply *string) error
SetFilterIndexes(args *utils.SetFilterIndexesArgWithArgDispatcher, reply *string) error
SetAccount(acc *engine.AccountWithArgDispatcher, reply *string) error
SetDestination(dst *engine.DestinationWithArgDispatcher, reply *string) error
SetReverseDestination(dst *engine.DestinationWithArgDispatcher, reply *string) error
SetStatQueue(ssq *engine.StoredStatQueueWithArgDispatcher, reply *string) error
SetFilter(fltr *engine.FilterWithArgDispatcher, reply *string) error
@@ -223,6 +224,7 @@ type ReplicatorSv1Interface interface {
SetAccountActionPlans(args *engine.SetAccountActionPlansArgWithArgDispatcher, reply *string) error
SetDispatcherHost(dpp *engine.DispatcherHostWithArgDispatcher, reply *string) error
RemoveThreshold(args *utils.TenantIDWithArgDispatcher, reply *string) error
SetLoadIDs(args *utils.LoadIDsWithArgDispatcher, reply *string) error
RemoveDestination(id *utils.StringWithApiKey, reply *string) error
RemoveAccount(id *utils.StringWithApiKey, reply *string) error
RemoveStatQueue(args *utils.TenantIDWithArgDispatcher, reply *string) error
@@ -232,4 +234,16 @@ type ReplicatorSv1Interface interface {
RemoveTiming(id *utils.StringWithApiKey, reply *string) error
RemoveResource(args *utils.TenantIDWithArgDispatcher, reply *string) error
RemoveResourceProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error
RemoveActionTriggers(id *utils.StringWithApiKey, reply *string) error
RemoveSharedGroup(id *utils.StringWithApiKey, reply *string) error
RemoveActions(id *utils.StringWithApiKey, reply *string) error
RemoveActionPlan(id *utils.StringWithApiKey, reply *string) error
RemAccountActionPlans(args *engine.RemAccountActionPlansArgsWithArgDispatcher, reply *string) error
RemoveRatingPlan(id *utils.StringWithApiKey, reply *string) error
RemoveRatingProfile(id *utils.StringWithApiKey, reply *string) error
RemoveSupplierProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error
RemoveAttributeProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error
RemoveChargerProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error
RemoveDispatcherProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error
RemoveDispatcherHost(args *utils.TenantIDWithArgDispatcher, reply *string) error
}

View File

@@ -998,6 +998,11 @@ func (dS *DispatcherReplicatorSv1) SetFilterIndexes(args *utils.SetFilterIndexes
return dS.dS.ReplicatorSv1SetFilterIndexes(args, reply)
}
// SetDestination
func (dS *DispatcherReplicatorSv1) SetDestination(args *engine.DestinationWithArgDispatcher, reply *string) error {
return dS.dS.ReplicatorSv1SetDestination(args, reply)
}
// SetAccount
func (dS *DispatcherReplicatorSv1) SetAccount(args *engine.AccountWithArgDispatcher, reply *string) error {
return dS.dS.ReplicatorSv1SetAccount(args, reply)
@@ -1103,6 +1108,11 @@ func (dS *DispatcherReplicatorSv1) RemoveThreshold(args *utils.TenantIDWithArgDi
return dS.dS.ReplicatorSv1RemoveThreshold(args, reply)
}
// SetLoadIDs
func (dS *DispatcherReplicatorSv1) SetLoadIDs(args *utils.LoadIDsWithArgDispatcher, reply *string) error {
return dS.dS.ReplicatorSv1SetLoadIDs(args, reply)
}
// RemoveDestination
func (dS *DispatcherReplicatorSv1) RemoveDestination(args *utils.StringWithApiKey, reply *string) error {
return dS.dS.ReplicatorSv1RemoveDestination(args, reply)
@@ -1147,3 +1157,63 @@ func (dS *DispatcherReplicatorSv1) RemoveResource(args *utils.TenantIDWithArgDis
func (dS *DispatcherReplicatorSv1) RemoveResourceProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error {
return dS.dS.ReplicatorSv1RemoveResourceProfile(args, reply)
}
// RemoveActionTriggers
func (dS *DispatcherReplicatorSv1) RemoveActionTriggers(args *utils.StringWithApiKey, reply *string) error {
return dS.dS.ReplicatorSv1RemoveActionTriggers(args, reply)
}
// RemoveSharedGroup
func (dS *DispatcherReplicatorSv1) RemoveSharedGroup(args *utils.StringWithApiKey, reply *string) error {
return dS.dS.ReplicatorSv1RemoveSharedGroup(args, reply)
}
// RemoveActions
func (dS *DispatcherReplicatorSv1) RemoveActions(args *utils.StringWithApiKey, reply *string) error {
return dS.dS.ReplicatorSv1RemoveActions(args, reply)
}
// RemoveActionPlan
func (dS *DispatcherReplicatorSv1) RemoveActionPlan(args *utils.StringWithApiKey, reply *string) error {
return dS.dS.ReplicatorSv1RemoveActionPlan(args, reply)
}
// RemAccountActionPlans
func (dS *DispatcherReplicatorSv1) RemAccountActionPlans(args *engine.RemAccountActionPlansArgsWithArgDispatcher, reply *string) error {
return dS.dS.ReplicatorSv1RemAccountActionPlans(args, reply)
}
// RemoveRatingPlan
func (dS *DispatcherReplicatorSv1) RemoveRatingPlan(args *utils.StringWithApiKey, reply *string) error {
return dS.dS.ReplicatorSv1RemoveRatingPlan(args, reply)
}
// RemoveRatingProfile
func (dS *DispatcherReplicatorSv1) RemoveRatingProfile(args *utils.StringWithApiKey, reply *string) error {
return dS.dS.ReplicatorSv1RemoveRatingProfile(args, reply)
}
// RemoveSupplierProfile
func (dS *DispatcherReplicatorSv1) RemoveSupplierProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error {
return dS.dS.ReplicatorSv1RemoveSupplierProfile(args, reply)
}
// RemoveAttributeProfile
func (dS *DispatcherReplicatorSv1) RemoveAttributeProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error {
return dS.dS.ReplicatorSv1RemoveAttributeProfile(args, reply)
}
// RemoveChargerProfile
func (dS *DispatcherReplicatorSv1) RemoveChargerProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error {
return dS.dS.ReplicatorSv1RemoveChargerProfile(args, reply)
}
// RemoveDispatcherProfile
func (dS *DispatcherReplicatorSv1) RemoveDispatcherProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error {
return dS.dS.ReplicatorSv1RemoveDispatcherProfile(args, reply)
}
// RemoveDispatcherHost
func (dS *DispatcherReplicatorSv1) RemoveDispatcherHost(args *utils.TenantIDWithArgDispatcher, reply *string) error {
return dS.dS.ReplicatorSv1RemoveDispatcherHost(args, reply)
}

View File

@@ -347,8 +347,8 @@ func (rplSv1 *ReplicatorSv1) SetAccount(acc *engine.AccountWithArgDispatcher, re
}
// SetDestination
func (rplSv1 *ReplicatorSv1) SetDestination(dst *engine.Destination, reply *string) error {
if err := rplSv1.dm.DataDB().SetDestinationDrv(dst, utils.NonTransactional); err != nil {
func (rplSv1 *ReplicatorSv1) SetDestination(dst *engine.DestinationWithArgDispatcher, reply *string) error {
if err := rplSv1.dm.DataDB().SetDestinationDrv(dst.Destination, utils.NonTransactional); err != nil {
return err
}
*reply = utils.OK
@@ -536,8 +536,8 @@ func (rplSv1 *ReplicatorSv1) RemoveThreshold(args *utils.TenantIDWithArgDispatch
}
// SetLoadIDs
func (rplSv1 *ReplicatorSv1) SetLoadIDs(loadIDs map[string]int64, reply *string) error {
if err := rplSv1.dm.DataDB().SetLoadIDsDrv(loadIDs); err != nil {
func (rplSv1 *ReplicatorSv1) SetLoadIDs(args *utils.LoadIDsWithArgDispatcher, reply *string) error {
if err := rplSv1.dm.DataDB().SetLoadIDsDrv(args.LoadIDs); err != nil {
return err
}
*reply = utils.OK
@@ -625,39 +625,39 @@ func (rplSv1 *ReplicatorSv1) RemoveResourceProfile(args *utils.TenantIDWithArgDi
return nil
}
func (rplSv1 *ReplicatorSv1) RemoveActionTriggers(id string, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveActionTriggersDrv(id); err != nil {
func (rplSv1 *ReplicatorSv1) RemoveActionTriggers(id *utils.StringWithApiKey, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveActionTriggersDrv(id.Arg); err != nil {
return err
}
*reply = utils.OK
return nil
}
func (rplSv1 *ReplicatorSv1) RemoveSharedGroup(id string, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveSharedGroupDrv(id); err != nil {
func (rplSv1 *ReplicatorSv1) RemoveSharedGroup(id *utils.StringWithApiKey, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveSharedGroupDrv(id.Arg); err != nil {
return err
}
*reply = utils.OK
return nil
}
func (rplSv1 *ReplicatorSv1) RemoveActions(id string, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveActionsDrv(id); err != nil {
func (rplSv1 *ReplicatorSv1) RemoveActions(id *utils.StringWithApiKey, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveActionsDrv(id.Arg); err != nil {
return err
}
*reply = utils.OK
return nil
}
func (rplSv1 *ReplicatorSv1) RemoveActionPlan(id string, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveActionPlanDrv(id, utils.NonTransactional); err != nil {
func (rplSv1 *ReplicatorSv1) RemoveActionPlan(id *utils.StringWithApiKey, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveActionPlanDrv(id.Arg, utils.NonTransactional); err != nil {
return err
}
*reply = utils.OK
return nil
}
func (rplSv1 *ReplicatorSv1) RemAccountActionPlans(args *engine.RemAccountActionPlansArgs, reply *string) error {
func (rplSv1 *ReplicatorSv1) RemAccountActionPlans(args *engine.RemAccountActionPlansArgsWithArgDispatcher, reply *string) error {
if err := rplSv1.dm.DataDB().RemAccountActionPlansDrv(args.AcntID, args.ApIDs); err != nil {
return err
}
@@ -665,23 +665,23 @@ func (rplSv1 *ReplicatorSv1) RemAccountActionPlans(args *engine.RemAccountAction
return nil
}
func (rplSv1 *ReplicatorSv1) RemoveRatingPlan(id string, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveRatingPlanDrv(id); err != nil {
func (rplSv1 *ReplicatorSv1) RemoveRatingPlan(id *utils.StringWithApiKey, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveRatingPlanDrv(id.Arg); err != nil {
return err
}
*reply = utils.OK
return nil
}
func (rplSv1 *ReplicatorSv1) RemoveRatingProfile(id string, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveRatingProfileDrv(id); err != nil {
func (rplSv1 *ReplicatorSv1) RemoveRatingProfile(id *utils.StringWithApiKey, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveRatingProfileDrv(id.Arg); err != nil {
return err
}
*reply = utils.OK
return nil
}
func (rplSv1 *ReplicatorSv1) RemoveSupplierProfile(args *utils.TenantID, reply *string) error {
func (rplSv1 *ReplicatorSv1) RemoveSupplierProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveSupplierProfileDrv(args.Tenant, args.ID); err != nil {
return err
}
@@ -689,7 +689,7 @@ func (rplSv1 *ReplicatorSv1) RemoveSupplierProfile(args *utils.TenantID, reply *
return nil
}
func (rplSv1 *ReplicatorSv1) RemoveAttributeProfile(args *utils.TenantID, reply *string) error {
func (rplSv1 *ReplicatorSv1) RemoveAttributeProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveAttributeProfileDrv(args.Tenant, args.ID); err != nil {
return err
}
@@ -697,7 +697,7 @@ func (rplSv1 *ReplicatorSv1) RemoveAttributeProfile(args *utils.TenantID, reply
return nil
}
func (rplSv1 *ReplicatorSv1) RemoveChargerProfile(args *utils.TenantID, reply *string) error {
func (rplSv1 *ReplicatorSv1) RemoveChargerProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveChargerProfileDrv(args.Tenant, args.ID); err != nil {
return err
}
@@ -705,7 +705,7 @@ func (rplSv1 *ReplicatorSv1) RemoveChargerProfile(args *utils.TenantID, reply *s
return nil
}
func (rplSv1 *ReplicatorSv1) RemoveDispatcherProfile(args *utils.TenantID, reply *string) error {
func (rplSv1 *ReplicatorSv1) RemoveDispatcherProfile(args *utils.TenantIDWithArgDispatcher, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveDispatcherProfileDrv(args.Tenant, args.ID); err != nil {
return err
}
@@ -713,7 +713,7 @@ func (rplSv1 *ReplicatorSv1) RemoveDispatcherProfile(args *utils.TenantID, reply
return nil
}
func (rplSv1 *ReplicatorSv1) RemoveDispatcherHost(args *utils.TenantID, reply *string) error {
func (rplSv1 *ReplicatorSv1) RemoveDispatcherHost(args *utils.TenantIDWithArgDispatcher, reply *string) error {
if err := rplSv1.dm.DataDB().RemoveDispatcherHostDrv(args.Tenant, args.ID); err != nil {
return err
}

View File

@@ -695,6 +695,28 @@ func (dS *DispatcherService) ReplicatorSv1SetFilterIndexes(args *utils.SetFilter
utils.ReplicatorSv1SetFilterIndexes, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1SetDestination(args *engine.DestinationWithArgDispatcher, rpl *string) (err error) {
if args == nil {
args = &engine.DestinationWithArgDispatcher{}
}
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1SetDestination, args.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1SetDestination, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1SetAccount(args *engine.AccountWithArgDispatcher, rpl *string) (err error) {
if args == nil {
args = &engine.AccountWithArgDispatcher{}
@@ -1179,6 +1201,28 @@ func (dS *DispatcherService) ReplicatorSv1RemoveDestination(args *utils.StringWi
utils.ReplicatorSv1RemoveDestination, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1SetLoadIDs(args *utils.LoadIDsWithArgDispatcher, rpl *string) (err error) {
if args == nil {
args = &utils.LoadIDsWithArgDispatcher{}
}
args.TenantArg.Tenant = utils.FirstNonEmpty(args.TenantArg.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1SetLoadIDs, args.TenantArg.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.TenantArg.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1SetLoadIDs, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveAccount(args *utils.StringWithApiKey, rpl *string) (err error) {
if args == nil {
args = &utils.StringWithApiKey{}
@@ -1354,3 +1398,267 @@ func (dS *DispatcherService) ReplicatorSv1RemoveResourceProfile(args *utils.Tena
return dS.Dispatch(&utils.CGREvent{Tenant: args.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveResourceProfile, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveActionTriggers(args *utils.StringWithApiKey, rpl *string) (err error) {
if args == nil {
args = &utils.StringWithApiKey{}
}
args.TenantArg.Tenant = utils.FirstNonEmpty(args.TenantArg.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemoveActionTriggers, args.TenantArg.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.TenantArg.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveActionTriggers, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveSharedGroup(args *utils.StringWithApiKey, rpl *string) (err error) {
if args == nil {
args = &utils.StringWithApiKey{}
}
args.TenantArg.Tenant = utils.FirstNonEmpty(args.TenantArg.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemoveSharedGroup, args.TenantArg.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.TenantArg.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveSharedGroup, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveActions(args *utils.StringWithApiKey, rpl *string) (err error) {
if args == nil {
args = &utils.StringWithApiKey{}
}
args.TenantArg.Tenant = utils.FirstNonEmpty(args.TenantArg.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemoveActions, args.TenantArg.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.TenantArg.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveActions, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveActionPlan(args *utils.StringWithApiKey, rpl *string) (err error) {
if args == nil {
args = &utils.StringWithApiKey{}
}
args.TenantArg.Tenant = utils.FirstNonEmpty(args.TenantArg.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemoveActionPlan, args.TenantArg.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.TenantArg.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveActionPlan, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemAccountActionPlans(args *engine.RemAccountActionPlansArgsWithArgDispatcher, rpl *string) (err error) {
if args == nil {
args = &engine.RemAccountActionPlansArgsWithArgDispatcher{}
}
args.TenantArg.Tenant = utils.FirstNonEmpty(args.TenantArg.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemAccountActionPlans, args.TenantArg.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.TenantArg.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemAccountActionPlans, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveRatingPlan(args *utils.StringWithApiKey, rpl *string) (err error) {
if args == nil {
args = &utils.StringWithApiKey{}
}
args.TenantArg.Tenant = utils.FirstNonEmpty(args.TenantArg.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemoveRatingPlan, args.TenantArg.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.TenantArg.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveRatingPlan, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveRatingProfile(args *utils.StringWithApiKey, rpl *string) (err error) {
if args == nil {
args = &utils.StringWithApiKey{}
}
args.TenantArg.Tenant = utils.FirstNonEmpty(args.TenantArg.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemoveRatingProfile, args.TenantArg.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.TenantArg.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveRatingProfile, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveSupplierProfile(args *utils.TenantIDWithArgDispatcher, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithArgDispatcher{}
}
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemoveSupplierProfile, args.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveSupplierProfile, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveAttributeProfile(args *utils.TenantIDWithArgDispatcher, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithArgDispatcher{}
}
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemoveAttributeProfile, args.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveAttributeProfile, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveChargerProfile(args *utils.TenantIDWithArgDispatcher, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithArgDispatcher{}
}
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemoveChargerProfile, args.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveChargerProfile, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherProfile(args *utils.TenantIDWithArgDispatcher, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithArgDispatcher{}
}
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemoveDispatcherProfile, args.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveDispatcherProfile, args, rpl)
}
func (dS *DispatcherService) ReplicatorSv1RemoveDispatcherHost(args *utils.TenantIDWithArgDispatcher, rpl *string) (err error) {
if args == nil {
args = &utils.TenantIDWithArgDispatcher{}
}
args.Tenant = utils.FirstNonEmpty(args.Tenant, dS.cfg.GeneralCfg().DefaultTenant)
if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 {
if args.ArgDispatcher == nil {
return utils.NewErrMandatoryIeMissing(utils.ArgDispatcherField)
}
if err = dS.authorize(utils.ReplicatorSv1RemoveDispatcherHost, args.Tenant,
args.APIKey, utils.TimePointer(time.Now())); err != nil {
return
}
}
var routeID *string
if args.ArgDispatcher != nil {
routeID = args.ArgDispatcher.RouteID
}
return dS.Dispatch(&utils.CGREvent{Tenant: args.Tenant}, utils.MetaReplicator, routeID,
utils.ReplicatorSv1RemoveDispatcherHost, args, rpl)
}

View File

@@ -345,10 +345,17 @@ func (dm *DataManager) SetDestination(dest *Destination, transactionID string) (
if err = dm.dataDB.SetDestinationDrv(dest, transactionID); err != nil {
return
}
if config.CgrConfig().DataDbCfg().Items[utils.MetaDestinations].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaDestinations]; itm.Replicate {
var reply string
if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1SetDestination, dest, &reply); err != nil {
utils.ReplicatorSv1SetDestination,
&DestinationWithArgDispatcher{
Destination: dest,
TenantArg: utils.TenantArg{Tenant: config.CgrConfig().GeneralCfg().DefaultTenant},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply); err != nil {
err = utils.CastRPCErr(err)
return
}
@@ -1307,10 +1314,17 @@ func (dm *DataManager) RemoveActionTriggers(id, transactionID string) (err error
}
Cache.Remove(utils.CacheActionTriggers, id,
cacheCommit(transactionID), transactionID)
if config.CgrConfig().DataDbCfg().Items[utils.MetaActionTriggers].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaActionTriggers]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemoveActionTriggers, id, &reply)
utils.ReplicatorSv1RemoveActionTriggers,
&utils.StringWithApiKey{
Arg: id,
TenantArg: utils.TenantArg{Tenant: config.CgrConfig().GeneralCfg().DefaultTenant},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -1420,10 +1434,17 @@ func (dm *DataManager) RemoveSharedGroup(id, transactionID string) (err error) {
}
Cache.Remove(utils.CacheSharedGroups, id,
cacheCommit(transactionID), transactionID)
if config.CgrConfig().DataDbCfg().Items[utils.MetaSharedGroups].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaSharedGroups]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemoveSharedGroup, id, &reply)
utils.ReplicatorSv1RemoveSharedGroup,
&utils.StringWithApiKey{
Arg: id,
TenantArg: utils.TenantArg{Tenant: config.CgrConfig().GeneralCfg().DefaultTenant},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -1507,10 +1528,16 @@ func (dm *DataManager) RemoveActions(key, transactionID string) (err error) {
}
Cache.Remove(utils.CacheActions, key,
cacheCommit(transactionID), transactionID)
if config.CgrConfig().DataDbCfg().Items[utils.MetaActions].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaActions]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemoveActions, key, &reply)
utils.ReplicatorSv1RemoveActions, &utils.StringWithApiKey{
Arg: key,
TenantArg: utils.TenantArg{Tenant: config.CgrConfig().GeneralCfg().DefaultTenant},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -1595,10 +1622,17 @@ func (dm *DataManager) RemoveActionPlan(key string, transactionID string) (err e
if err = dm.dataDB.RemoveActionPlanDrv(key, transactionID); err != nil {
return
}
if config.CgrConfig().DataDbCfg().Items[utils.MetaActionPlans].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaActionPlans]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemoveActionPlan, key, &reply)
utils.ReplicatorSv1RemoveActionPlan,
&utils.StringWithApiKey{
Arg: key,
TenantArg: utils.TenantArg{Tenant: config.CgrConfig().GeneralCfg().DefaultTenant},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -1658,20 +1692,29 @@ func (dm *DataManager) SetAccountActionPlans(acntID string, aPlIDs []string, ove
return
}
type RemAccountActionPlansArgs struct {
// RemAccountActionPlansArgsWithArgDispatcher is used in replicatorV1 for dispatcher
type RemAccountActionPlansArgsWithArgDispatcher struct {
AcntID string
ApIDs []string
utils.TenantArg
*utils.ArgDispatcher
}
func (dm *DataManager) RemAccountActionPlans(acntID string, apIDs []string) (err error) {
if err = dm.dataDB.RemAccountActionPlansDrv(acntID, apIDs); err != nil {
return
}
if config.CgrConfig().DataDbCfg().Items[utils.MetaAccountActionPlans].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaAccountActionPlans]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemAccountActionPlans,
&RemAccountActionPlansArgs{AcntID: acntID, ApIDs: apIDs}, &reply)
&RemAccountActionPlansArgsWithArgDispatcher{
AcntID: acntID, ApIDs: apIDs,
TenantArg: utils.TenantArg{Tenant: config.CgrConfig().GeneralCfg().DefaultTenant},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -1746,10 +1789,17 @@ func (dm *DataManager) RemoveRatingPlan(key string, transactionID string) (err e
}
Cache.Remove(utils.CacheRatingPlans, key,
cacheCommit(transactionID), transactionID)
if config.CgrConfig().DataDbCfg().Items[utils.MetaRatingPlans].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaRatingPlans]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemoveRatingPlan, key, &reply)
utils.ReplicatorSv1RemoveRatingPlan,
&utils.StringWithApiKey{
Arg: key,
TenantArg: utils.TenantArg{Tenant: config.CgrConfig().GeneralCfg().DefaultTenant},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -1830,10 +1880,17 @@ func (dm *DataManager) RemoveRatingProfile(key string,
}
Cache.Remove(utils.CacheRatingProfiles, key,
cacheCommit(transactionID), transactionID)
if config.CgrConfig().DataDbCfg().Items[utils.MetaRatingProfiles].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaRatingProfiles]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemoveRatingProfile, key, &reply)
utils.ReplicatorSv1RemoveRatingProfile,
&utils.StringWithApiKey{
Arg: key,
TenantArg: utils.TenantArg{Tenant: config.CgrConfig().GeneralCfg().DefaultTenant},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -2069,11 +2126,16 @@ func (dm *DataManager) RemoveSupplierProfile(tenant, id, transactionID string, w
return
}
}
if config.CgrConfig().DataDbCfg().Items[utils.MetaSupplierProfiles].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaSupplierProfiles]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemoveSupplierProfile,
&utils.TenantID{Tenant: tenant, ID: id}, &reply)
&utils.TenantIDWithArgDispatcher{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -2210,10 +2272,16 @@ func (dm *DataManager) RemoveAttributeProfile(tenant, id string, transactionID s
}
}
}
if config.CgrConfig().DataDbCfg().Items[utils.MetaAttributeProfiles].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaAttributeProfiles]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemoveAttributeProfile, &utils.TenantID{Tenant: tenant, ID: id}, &reply)
utils.ReplicatorSv1RemoveAttributeProfile,
&utils.TenantIDWithArgDispatcher{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -2323,10 +2391,16 @@ func (dm *DataManager) RemoveChargerProfile(tenant, id string,
return
}
}
if config.CgrConfig().DataDbCfg().Items[utils.MetaChargerProfiles].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaChargerProfiles]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemoveChargerProfile, &utils.TenantID{Tenant: tenant, ID: id}, &reply)
utils.ReplicatorSv1RemoveChargerProfile,
&utils.TenantIDWithArgDispatcher{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -2445,10 +2519,16 @@ func (dm *DataManager) RemoveDispatcherProfile(tenant, id string,
}
}
}
if config.CgrConfig().DataDbCfg().Items[utils.MetaDispatcherProfiles].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaDispatcherProfiles]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemoveDispatcherProfile, &utils.TenantID{Tenant: tenant, ID: id}, &reply)
utils.ReplicatorSv1RemoveDispatcherProfile,
&utils.TenantIDWithArgDispatcher{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -2538,10 +2618,16 @@ func (dm *DataManager) RemoveDispatcherHost(tenant, id string,
if oldDpp == nil {
return utils.ErrNotFound
}
if config.CgrConfig().DataDbCfg().Items[utils.MetaDispatcherHosts].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaDispatcherHosts]; itm.Replicate {
var reply string
dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1RemoveDispatcherHost, &utils.TenantID{Tenant: tenant, ID: id}, &reply)
utils.ReplicatorSv1RemoveDispatcherHost,
&utils.TenantIDWithArgDispatcher{
TenantID: &utils.TenantID{Tenant: tenant, ID: id},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply)
}
return
}
@@ -2588,10 +2674,17 @@ func (dm *DataManager) SetLoadIDs(loadIDs map[string]int64) (err error) {
if err = dm.DataDB().SetLoadIDsDrv(loadIDs); err != nil {
return
}
if config.CgrConfig().DataDbCfg().Items[utils.MetaLoadIDs].Replicate {
if itm := config.CgrConfig().DataDbCfg().Items[utils.MetaLoadIDs]; itm.Replicate {
var reply string
if err = dm.connMgr.Call(config.CgrConfig().DataDbCfg().RplConns, nil,
utils.ReplicatorSv1SetLoadIDs, loadIDs, &reply); err != nil {
utils.ReplicatorSv1SetLoadIDs,
&utils.LoadIDsWithArgDispatcher{
LoadIDs: loadIDs,
TenantArg: utils.TenantArg{Tenant: config.CgrConfig().GeneralCfg().DefaultTenant},
ArgDispatcher: &utils.ArgDispatcher{
APIKey: utils.StringPointer(itm.APIKey),
RouteID: utils.StringPointer(itm.RouteID),
}}, &reply); err != nil {
err = utils.CastRPCErr(err)
return
}

View File

@@ -936,3 +936,9 @@ type SetFilterIndexesArgWithArgDispatcher struct {
TenantArg
*ArgDispatcher
}
type LoadIDsWithArgDispatcher struct {
LoadIDs map[string]int64
TenantArg
*ArgDispatcher
}