4
0
jamesread 8 сар өмнө
parent
commit
c86bf629f9

+ 4 - 0
service/internal/executor/arguments.go

@@ -43,6 +43,10 @@ func parseCommandForReplacements(shellCommand string, values map[string]string,
 }
 
 func parseActionExec(values map[string]string, action *config.Action, entity *entities.Entity) ([]string, error) {
+	if action == nil {
+		return nil, fmt.Errorf("action is nil")
+	}
+
 	for _, arg := range action.Arguments {
 		argName := arg.Name
 		argValue := values[argName]

+ 13 - 0
service/internal/executor/executor.go

@@ -435,6 +435,13 @@ func stepParseArgs(req *ExecutionRequest) bool {
 
 	mangleInvalidArgumentValues(req)
 
+	if req.Binding == nil || req.Binding.Action == nil {
+		err = fmt.Errorf("cannot parse arguments: Binding or Action is nil")
+		req.logEntry.Output = err.Error()
+		log.Warn(err.Error())
+		return false
+	}
+
 	if len(req.Binding.Action.Exec) > 0 {
 		req.useDirectExec = true
 		req.execArgs, err = parseActionExec(req.Arguments, req.Binding.Action, req.Binding.Entity)
@@ -585,6 +592,12 @@ func stepExec(req *ExecutionRequest) bool {
 		cmd = wrapCommandInShell(ctx, req.finalParsedCommand)
 	}
 
+	if cmd == nil {
+		req.logEntry.Output = "Cannot execute: no command arguments provided"
+		log.Warn("Cannot execute: no command arguments provided")
+		return false
+	}
+
 	cmd.Stdout = streamer
 	cmd.Stderr = streamer
 	cmd.Env = buildEnv(req.Arguments)