summaryrefslogtreecommitdiff
path: root/internal/server/scheduler.go
diff options
context:
space:
mode:
authorPaul Buetow <pbuetow@mimecast.com>2020-02-27 16:28:10 +0000
committerPaul Buetow <pbuetow@mimecast.com>2020-02-27 16:28:10 +0000
commit40728693d9cfbd99458f12d5183119ec699b8907 (patch)
treef2903f90f0db132b38d9c36639e908eae9e87541 /internal/server/scheduler.go
parentb4176ce3443567b16fef9f91c5a42a63d8d5e026 (diff)
can run scheduled queries across a storage volume
Diffstat (limited to 'internal/server/scheduler.go')
-rw-r--r--internal/server/scheduler.go22
1 files changed, 8 insertions, 14 deletions
diff --git a/internal/server/scheduler.go b/internal/server/scheduler.go
index e0cecfd..d2657d0 100644
--- a/internal/server/scheduler.go
+++ b/internal/server/scheduler.go
@@ -3,7 +3,6 @@ package server
import (
"context"
"fmt"
- "math/rand"
"os"
"strconv"
"strings"
@@ -21,23 +20,17 @@ const authLength = 64
const authCharset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@$%^&*()_+[]"
type scheduler struct {
- authPayload string
}
func newScheduler() *scheduler {
- seededRand := rand.New(rand.NewSource(time.Now().UnixNano()))
-
- b := make([]byte, authLength)
- for i := range b {
- b[i] = authCharset[seededRand.Intn(len(authCharset))]
- }
-
- return &scheduler{
- authPayload: string(b),
- }
+ return &scheduler{}
}
func (s *scheduler) start(ctx context.Context) {
+ // First run after just 10s!
+ time.Sleep(time.Second * 10)
+ s.runJobs(ctx)
+
for {
select {
case <-time.After(time.Minute):
@@ -75,7 +68,7 @@ func (s *scheduler) runJobs(ctx context.Context) {
continue
}
- servers := scheduled.Servers
+ servers := strings.Join(scheduled.Servers, ",")
if servers == "" {
servers = config.Server.SSHBindAddress
}
@@ -88,7 +81,8 @@ func (s *scheduler) runJobs(ctx context.Context) {
Mode: omode.MapClient,
UserName: config.ScheduledUser,
}
- args.SSHAuthMethods = append(args.SSHAuthMethods, gossh.Password(s.authPayload))
+
+ args.SSHAuthMethods = append(args.SSHAuthMethods, gossh.Password(scheduled.Name))
tmpOutfile := fmt.Sprintf("%s.tmp", outfile)
query := fmt.Sprintf("%s outfile %s", scheduled.Query, tmpOutfile)