summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <pbuetow@mimecast.com>2020-02-28 13:14:29 +0000
committerPaul Buetow <pbuetow@mimecast.com>2020-02-28 13:14:29 +0000
commit71d2786aeaa793d9cf51c389d2e91cf472d25f7a (patch)
treeb2cf5a8e3f86f05b5d4870809637bcd9b967906c /internal
parentcb2de4109632932bccf5d13e77f40157d4e84c18 (diff)
more on scheduled commands
Diffstat (limited to 'internal')
-rw-r--r--internal/config/config.go2
-rw-r--r--internal/mapr/query.go3
-rw-r--r--internal/server/handlers/mapcommand.go10
-rw-r--r--internal/server/handlers/readcommand.go4
-rw-r--r--internal/server/handlers/serverhandler.go2
-rw-r--r--internal/server/scheduler.go2
-rw-r--r--internal/server/server.go10
-rw-r--r--internal/user/server/user.go2
8 files changed, 18 insertions, 17 deletions
diff --git a/internal/config/config.go b/internal/config/config.go
index d20a480..166e143 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -10,7 +10,7 @@ import (
const ControlUser string = "DTAIL-CONTROL-USER"
// ScheduledUser is used for scheduled queries.
-const ScheduledUser string = "DTAIL-SCHEDULED-USER"
+const ScheduleUser string = "DTAIL-SCHEDULED-USER"
// Client holds a DTail client configuration.
var Client *ClientConfig
diff --git a/internal/mapr/query.go b/internal/mapr/query.go
index 0127be3..ec93e14 100644
--- a/internal/mapr/query.go
+++ b/internal/mapr/query.go
@@ -3,10 +3,11 @@ package mapr
import (
"errors"
"fmt"
- "github.com/mimecast/dtail/internal/io/logger"
"strconv"
"strings"
"time"
+
+ "github.com/mimecast/dtail/internal/io/logger"
)
const (
diff --git a/internal/server/handlers/mapcommand.go b/internal/server/handlers/mapcommand.go
index 10372da..c3e600e 100644
--- a/internal/server/handlers/mapcommand.go
+++ b/internal/server/handlers/mapcommand.go
@@ -15,18 +15,16 @@ type mapCommand struct {
// NewMapCommand returns a new server side mapreduce command.
func newMapCommand(serverHandler *ServerHandler, argc int, args []string) (mapCommand, *server.Aggregate, error) {
- mapCommand := mapCommand{
- server: serverHandler,
- }
+ m := mapCommand{server: serverHandler}
queryStr := strings.Join(args[1:], " ")
aggregate, err := server.NewAggregate(queryStr)
if err != nil {
- return mapCommand, nil, err
+ return m, nil, err
}
- mapCommand.aggregate = aggregate
- return mapCommand, aggregate, nil
+ m.aggregate = aggregate
+ return m, aggregate, nil
}
diff --git a/internal/server/handlers/readcommand.go b/internal/server/handlers/readcommand.go
index 6ab41cd..63158f6 100644
--- a/internal/server/handlers/readcommand.go
+++ b/internal/server/handlers/readcommand.go
@@ -27,8 +27,8 @@ func newReadCommand(server *ServerHandler, mode omode.Mode) *readCommand {
func (r *readCommand) Start(ctx context.Context, argc int, args []string) {
regex := "."
if argc >= 4 {
- regex = strings.Join(args[3:], " ")
- logger.Debug("Joined regex", regex)
+ regex = strings.Join(args[3:], " ")
+ logger.Debug("Joined regex", regex)
}
if argc < 3 {
r.server.sendServerMessage(logger.Warn(r.server.user, commandParseWarning, args, argc))
diff --git a/internal/server/handlers/serverhandler.go b/internal/server/handlers/serverhandler.go
index b840c77..2979dd5 100644
--- a/internal/server/handlers/serverhandler.go
+++ b/internal/server/handlers/serverhandler.go
@@ -229,6 +229,7 @@ func (h *ServerHandler) handleUserCommand(ctx context.Context, argc int, args []
if err != nil {
h.sendServerMessage(err.Error())
logger.Error(h.user, err)
+ h.shutdown()
return
}
@@ -334,6 +335,7 @@ func (h *ServerHandler) incrementActiveReaders() {
defer h.mutex.Unlock()
h.activeReaders++
}
+
func (h *ServerHandler) decrementActiveReaders() int {
h.mutex.Lock()
defer h.mutex.Unlock()
diff --git a/internal/server/scheduler.go b/internal/server/scheduler.go
index d2657d0..db49d1b 100644
--- a/internal/server/scheduler.go
+++ b/internal/server/scheduler.go
@@ -79,7 +79,7 @@ func (s *scheduler) runJobs(ctx context.Context) {
ServersStr: servers,
What: files,
Mode: omode.MapClient,
- UserName: config.ScheduledUser,
+ UserName: config.ScheduleUser,
}
args.SSHAuthMethods = append(args.SSHAuthMethods, gossh.Password(scheduled.Name))
diff --git a/internal/server/server.go b/internal/server/server.go
index 34d0d88..0b93537 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -206,16 +206,16 @@ func (s *Server) backgroundUserCallback(c gossh.ConnMetadata, authPayload []byte
return nil, nil
}
- if user.Name == config.ScheduledUser && s.canRunScheduledJob(c.RemoteAddr().String(), user, authInfo) {
- logger.Debug(user, "Schedule user can run scheduled job remotely")
+ if user.Name == config.ScheduleUser && s.schedueleUserCanHaveSSHSession(c.RemoteAddr().String(), user, authInfo) {
+ logger.Debug(user, "Granting SSH connection to schedule user")
return nil, nil
}
return nil, fmt.Errorf("user %s not authorized", user)
}
-func (s *Server) canRunScheduledJob(addr string, user *user.User, jobName string) bool {
- logger.Debug("canRunScheduledJob", user, jobName)
+func (s *Server) schedueleUserCanHaveSSHSession(addr string, user *user.User, jobName string) bool {
+ logger.Debug("schedueleUserCanHaveSSHSession", user, jobName)
splitted := strings.Split(addr, ":")
ip := splitted[0]
@@ -231,7 +231,7 @@ func (s *Server) canRunScheduledJob(addr string, user *user.User, jobName string
}
for _, myIp := range myIps {
- logger.Debug("canRunScheduledJob", "Comparing IP addresses", ip, myIp.String())
+ logger.Debug("schedueleUserCanHaveSSHSession", "Comparing IP addresses", ip, myIp.String())
if ip == myIp.String() {
return true
}
diff --git a/internal/user/server/user.go b/internal/user/server/user.go
index 7389d74..2c1df64 100644
--- a/internal/user/server/user.go
+++ b/internal/user/server/user.go
@@ -41,7 +41,7 @@ func (u *User) String() string {
func (u *User) HasFilePermission(filePath, permissionType string) (hasPermission bool) {
logger.Debug(u, filePath, permissionType, "Checking config permissions")
- if u.Name == config.ScheduledUser {
+ if u.Name == config.ScheduleUser {
// Schedule user has same permissions as dtail process itself.
return true
}