bugfix: Added nil checks
This commit is contained in:
parent
c917d1b1e7
commit
c86bf629f9
|
|
@ -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) {
|
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 {
|
for _, arg := range action.Arguments {
|
||||||
argName := arg.Name
|
argName := arg.Name
|
||||||
argValue := values[argName]
|
argValue := values[argName]
|
||||||
|
|
|
||||||
|
|
@ -435,6 +435,13 @@ func stepParseArgs(req *ExecutionRequest) bool {
|
||||||
|
|
||||||
mangleInvalidArgumentValues(req)
|
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 {
|
if len(req.Binding.Action.Exec) > 0 {
|
||||||
req.useDirectExec = true
|
req.useDirectExec = true
|
||||||
req.execArgs, err = parseActionExec(req.Arguments, req.Binding.Action, req.Binding.Entity)
|
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)
|
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.Stdout = streamer
|
||||||
cmd.Stderr = streamer
|
cmd.Stderr = streamer
|
||||||
cmd.Env = buildEnv(req.Arguments)
|
cmd.Env = buildEnv(req.Arguments)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue