From a7347184211fbd39ff17ad790357cafe49cf824e Mon Sep 17 00:00:00 2001 From: andronache Date: Tue, 6 Jul 2021 16:19:25 +0300 Subject: [PATCH] Added sleep and ping API on DispatcherSv1 --- apier/v1/dispatcher.go | 8 ++++++++ dispatchers/dispatchers.go | 31 +++++++++++++++++++++++++++++++ utils/consts.go | 2 ++ 3 files changed, 41 insertions(+) diff --git a/apier/v1/dispatcher.go b/apier/v1/dispatcher.go index c48c2f7b8..775bb9b20 100644 --- a/apier/v1/dispatcher.go +++ b/apier/v1/dispatcher.go @@ -758,6 +758,14 @@ func (dS *DispatcherSv1) RemoteStatus(args *utils.TenantWithAPIOpts, reply *map[ return dS.dS.DispatcherSv1RemoteStatus(args, reply) } +func (dS *DispatcherSv1) RemotePing(args *utils.CGREvent, reply *string) (err error) { + return dS.dS.DispatcherSv1RemotePing(args, reply) +} + +func (dS *DispatcherSv1) RemoteSleep(args *utils.DurationArgs, reply *string) (err error) { + return dS.dS.DispatcherSv1RemoteSleep(args, reply) +} + /* func (dSv1 DispatcherSv1) Apier(args *utils.MethodParameters, reply *interface{}) (err error) { return dSv1.dS.V1Apier(new(APIerSv1), args, reply) diff --git a/dispatchers/dispatchers.go b/dispatchers/dispatchers.go index 13e379c3f..a2db8e44b 100644 --- a/dispatchers/dispatchers.go +++ b/dispatchers/dispatchers.go @@ -379,3 +379,34 @@ func (dS *DispatcherService) DispatcherSv1RemoteStatus(args *utils.TenantWithAPI APIOpts: args.APIOpts, }, utils.MetaCore, utils.CoreSv1Status, args, reply) } + +func (dS *DispatcherService) DispatcherSv1RemoteSleep(args *utils.DurationArgs, reply *string) (err error) { + tnt := dS.cfg.GeneralCfg().DefaultTenant + if args.Tenant != utils.EmptyString { + tnt = args.Tenant + } + if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 { + if err = dS.authorize(utils.CoreSv1Sleep, tnt, + utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey]), utils.TimePointer(time.Now())); err != nil { + return + } + } + return dS.Dispatch(&utils.CGREvent{ + Tenant: tnt, + APIOpts: args.APIOpts, + }, utils.MetaCore, utils.CoreSv1Sleep, args, reply) +} + +func (dS *DispatcherService) DispatcherSv1RemotePing(args *utils.CGREvent, reply *string) (err error) { + tnt := dS.cfg.GeneralCfg().DefaultTenant + if args != nil && args.Tenant != utils.EmptyString { + tnt = args.Tenant + } + if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 { + if err = dS.authorize(utils.CoreSv1Ping, tnt, + utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey]), args.Time); err != nil { + return + } + } + return dS.Dispatch(args, utils.MetaCore, utils.CoreSv1Ping, args, reply) +} diff --git a/utils/consts.go b/utils/consts.go index 09e44c7f6..946b0c1cd 100644 --- a/utils/consts.go +++ b/utils/consts.go @@ -1661,6 +1661,8 @@ const ( DispatcherSv1Apier = "DispatcherSv1.Apier" DispatcherServicePing = "DispatcherService.Ping" DispatcherSv1RemoteStatus = "DispatcherSv1.RemoteStatus" + DispatcherSv1RemoteSleep = "DispatcherSv1.RemoteSleep" + DispatcherSv1RemotePing = "DispatcherSv1.RemotePing" ) // RegistrarS APIs