summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <pbuetow@mimecast.com>2021-12-04 10:14:01 +0000
committerPaul Buetow <pbuetow@mimecast.com>2021-12-04 10:14:01 +0000
commit4330cc05007d6258d2a8c3b7838fc0ff58aecdfb (patch)
tree054cdbc606d04b85d6c4995f516332bb67565bcd /internal
parent4dce57cc018cca8cccf07570bae6f6ebdbf8b79c (diff)
Refactor runJobs method to reduce its Cognitive Complexity
Diffstat (limited to 'internal')
-rw-r--r--internal/server/scheduler.go77
1 files changed, 41 insertions, 36 deletions
diff --git a/internal/server/scheduler.go b/internal/server/scheduler.go
index 36f167d..cc51b7e 100644
--- a/internal/server/scheduler.go
+++ b/internal/server/scheduler.go
@@ -52,47 +52,52 @@ func (s *scheduler) runJobs(ctx context.Context) {
dlog.Server.Debug(job.Name, "Not running job out of time range")
continue
}
+ s.runJob(ctx, job)
+ }
+}
- files := fillDates(job.Files)
- outfile := fillDates(job.Outfile)
- _, err = os.Stat(outfile)
- if !os.IsNotExist(err) {
- dlog.Server.Debug(job.Name, "Not running job as outfile already exists", outfile)
- continue
- }
+func (s *scheduler) runJob(ctx context.Context, job config.Scheduled) {
+ files := fillDates(job.Files)
+ outfile := fillDates(job.Outfile)
- servers := strings.Join(job.Servers, ",")
- if servers == "" {
- servers = config.Server.SSHBindAddress
- }
- args := config.Args{
- ConnectionsPerCPU: config.DefaultConnectionsPerCPU,
- Discovery: job.Discovery,
- ServersStr: servers,
- What: files,
- Mode: omode.MapClient,
- UserName: config.ScheduleUser,
- }
+ _, err := os.Stat(outfile)
+ if !os.IsNotExist(err) {
+ dlog.Server.Debug(job.Name, "Not running job as outfile already exists", outfile)
+ return
+ }
- args.SSHAuthMethods = append(args.SSHAuthMethods, gossh.Password(job.Name))
- args.QueryStr = fmt.Sprintf("%s outfile %s", job.Query, outfile)
- client, err := clients.NewMaprClient(args, clients.CumulativeMode)
- if err != nil {
- dlog.Server.Error(fmt.Sprintf("Unable to create job %s", job.Name), err)
- continue
- }
+ servers := strings.Join(job.Servers, ",")
+ if servers == "" {
+ servers = config.Server.SSHBindAddress
+ }
+ args := config.Args{
+ ConnectionsPerCPU: config.DefaultConnectionsPerCPU,
+ Discovery: job.Discovery,
+ ServersStr: servers,
+ What: files,
+ Mode: omode.MapClient,
+ UserName: config.ScheduleUser,
+ }
+
+ args.SSHAuthMethods = append(args.SSHAuthMethods, gossh.Password(job.Name))
+ args.QueryStr = fmt.Sprintf("%s outfile %s", job.Query, outfile)
+ client, err := clients.NewMaprClient(args, clients.CumulativeMode)
+ if err != nil {
+ dlog.Server.Error(fmt.Sprintf("Unable to create job %s", job.Name), err)
+ return
+ }
- jobCtx, cancel := context.WithCancel(ctx)
- defer cancel()
+ jobCtx, cancel := context.WithCancel(ctx)
+ defer cancel()
- dlog.Server.Info(fmt.Sprintf("Starting job %s", job.Name))
- status := client.Start(jobCtx, make(chan string))
- logMessage := fmt.Sprintf("Job exited with status %d", status)
+ dlog.Server.Info(fmt.Sprintf("Starting job %s", job.Name))
+ status := client.Start(jobCtx, make(chan string))
+ logMessage := fmt.Sprintf("Job exited with status %d", status)
- if status != 0 {
- dlog.Server.Warn(logMessage)
- continue
- }
- dlog.Server.Info(logMessage)
+ if status != 0 {
+ dlog.Server.Warn(logMessage)
+ return
}
+
+ dlog.Server.Info(logMessage)
}