add env
This commit is contained in:
parent
6ac14b6d64
commit
7358907b3c
@ -221,7 +221,7 @@ type CmdOptions struct {
|
|||||||
IsScript bool
|
IsScript bool
|
||||||
IsExecutable bool
|
IsExecutable bool
|
||||||
Detached bool
|
Detached bool
|
||||||
Env []string
|
EnvVars []string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Agent) NewCMDOpts() *CmdOptions {
|
func (a *Agent) NewCMDOpts() *CmdOptions {
|
||||||
@ -250,10 +250,10 @@ func (a *Agent) CmdV2(c *CmdOptions) CmdStatus {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(c.Env) > 0 {
|
if len(c.EnvVars) > 0 {
|
||||||
cmdOptions.BeforeExec = append(cmdOptions.BeforeExec, func(cmd *exec.Cmd) {
|
cmdOptions.BeforeExec = append(cmdOptions.BeforeExec, func(cmd *exec.Cmd) {
|
||||||
cmd.Env = os.Environ()
|
cmd.Env = os.Environ()
|
||||||
cmd.Env = append(cmd.Env, c.Env...)
|
cmd.Env = append(cmd.Env, c.EnvVars...)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ func NewAgentConfig() *rmm.AgentConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Agent) RunScript(code string, shell string, args []string, timeout int, runasuser bool, envs []string) (stdout, stderr string, exitcode int, e error) {
|
func (a *Agent) RunScript(code string, shell string, args []string, timeout int, runasuser bool, envVars []string) (stdout, stderr string, exitcode int, e error) {
|
||||||
|
|
||||||
content := []byte(code)
|
content := []byte(code)
|
||||||
|
|
||||||
@ -158,9 +158,9 @@ func (a *Agent) RunScript(code string, shell string, args []string, timeout int,
|
|||||||
cmd.Stdout = &outb
|
cmd.Stdout = &outb
|
||||||
cmd.Stderr = &errb
|
cmd.Stderr = &errb
|
||||||
|
|
||||||
if len(envs) > 0 {
|
if len(envVars) > 0 {
|
||||||
cmd.Env = os.Environ()
|
cmd.Env = os.Environ()
|
||||||
cmd.Env = append(cmd.Env, envs...)
|
cmd.Env = append(cmd.Env, envVars...)
|
||||||
}
|
}
|
||||||
|
|
||||||
if cmdErr := cmd.Start(); cmdErr != nil {
|
if cmdErr := cmd.Start(); cmdErr != nil {
|
||||||
|
@ -169,7 +169,7 @@ type ScriptCheckResult struct {
|
|||||||
// ScriptCheck runs either bat, powershell or python script
|
// ScriptCheck runs either bat, powershell or python script
|
||||||
func (a *Agent) ScriptCheck(data rmm.Check, r *resty.Client) {
|
func (a *Agent) ScriptCheck(data rmm.Check, r *resty.Client) {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
stdout, stderr, retcode, _ := a.RunScript(data.Script.Code, data.Script.Shell, data.ScriptArgs, data.Timeout, data.Script.RunAsUser, data.Script.Env)
|
stdout, stderr, retcode, _ := a.RunScript(data.Script.Code, data.Script.Shell, data.ScriptArgs, data.Timeout, data.Script.RunAsUser, data.Script.EnvVars)
|
||||||
|
|
||||||
payload := ScriptCheckResult{
|
payload := ScriptCheckResult{
|
||||||
ID: data.CheckPK,
|
ID: data.CheckPK,
|
||||||
|
@ -41,7 +41,7 @@ type NatsMsg struct {
|
|||||||
ID int `json:"id"`
|
ID int `json:"id"`
|
||||||
Code string `json:"code"`
|
Code string `json:"code"`
|
||||||
RunAsUser bool `json:"run_as_user"`
|
RunAsUser bool `json:"run_as_user"`
|
||||||
Env []string `json:"env"`
|
EnvVars []string `json:"env_vars"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -262,7 +262,7 @@ func (a *Agent) RunRPC() {
|
|||||||
var resultData rmm.RunScriptResp
|
var resultData rmm.RunScriptResp
|
||||||
ret := codec.NewEncoderBytes(&resp, new(codec.MsgpackHandle))
|
ret := codec.NewEncoderBytes(&resp, new(codec.MsgpackHandle))
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
stdout, stderr, retcode, err := a.RunScript(p.Data["code"], p.Data["shell"], p.ScriptArgs, p.Timeout, p.RunAsUser, p.Env)
|
stdout, stderr, retcode, err := a.RunScript(p.Data["code"], p.Data["shell"], p.ScriptArgs, p.Timeout, p.RunAsUser, p.EnvVars)
|
||||||
resultData.ExecTime = time.Since(start).Seconds()
|
resultData.ExecTime = time.Since(start).Seconds()
|
||||||
resultData.ID = p.ID
|
resultData.ID = p.ID
|
||||||
|
|
||||||
@ -292,7 +292,7 @@ func (a *Agent) RunRPC() {
|
|||||||
var retData rmm.RunScriptResp
|
var retData rmm.RunScriptResp
|
||||||
ret := codec.NewEncoderBytes(&resp, new(codec.MsgpackHandle))
|
ret := codec.NewEncoderBytes(&resp, new(codec.MsgpackHandle))
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
stdout, stderr, retcode, err := a.RunScript(p.Data["code"], p.Data["shell"], p.ScriptArgs, p.Timeout, p.RunAsUser, p.Env)
|
stdout, stderr, retcode, err := a.RunScript(p.Data["code"], p.Data["shell"], p.ScriptArgs, p.Timeout, p.RunAsUser, p.EnvVars)
|
||||||
|
|
||||||
retData.ExecTime = time.Since(start).Seconds()
|
retData.ExecTime = time.Since(start).Seconds()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -59,7 +59,7 @@ func (a *Agent) RunTask(id int) error {
|
|||||||
|
|
||||||
action_start := time.Now()
|
action_start := time.Now()
|
||||||
if action.ActionType == "script" {
|
if action.ActionType == "script" {
|
||||||
stdout, stderr, retcode, err := a.RunScript(action.Code, action.Shell, action.Args, action.Timeout, action.RunAsUser, action.Env)
|
stdout, stderr, retcode, err := a.RunScript(action.Code, action.Shell, action.Args, action.Timeout, action.RunAsUser, action.EnvVars)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
a.Logger.Debugln(err)
|
a.Logger.Debugln(err)
|
||||||
|
@ -144,7 +144,7 @@ type Script struct {
|
|||||||
Shell string `json:"shell"`
|
Shell string `json:"shell"`
|
||||||
Code string `json:"code"`
|
Code string `json:"code"`
|
||||||
RunAsUser bool `json:"run_as_user"`
|
RunAsUser bool `json:"run_as_user"`
|
||||||
Env []string `json:"env"`
|
EnvVars []string `json:"env_vars"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CheckInfo struct {
|
type CheckInfo struct {
|
||||||
@ -191,7 +191,7 @@ type TaskAction struct {
|
|||||||
Args []string `json:"script_args"`
|
Args []string `json:"script_args"`
|
||||||
Timeout int `json:"timeout"`
|
Timeout int `json:"timeout"`
|
||||||
RunAsUser bool `json:"run_as_user"`
|
RunAsUser bool `json:"run_as_user"`
|
||||||
Env []string `json:"env"`
|
EnvVars []string `json:"env_vars"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type AutomatedTask struct {
|
type AutomatedTask struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user