task inputs

main
alex 2023-05-14 14:57:07 +02:00
parent 2ebeeb20ad
commit f252c76c46
4 changed files with 64 additions and 43 deletions

View File

@ -91,7 +91,7 @@ type RunGroupTaskArgs struct {
Step uint8
TaskStepId string
GlobalInputs string
TaskParameters string
TaskInputs string
}
type InputParameters struct {
@ -106,6 +106,7 @@ func RunGroupTask(args RunGroupTaskArgs) {
GroupTasksId: args.GroupTaskId,
Step: args.Step,
Status: structs.GroupTasksStatusRunning,
Inputs: args.TaskInputs,
StartedAt: time.Now(),
}
@ -146,7 +147,7 @@ func RunGroupTask(args RunGroupTaskArgs) {
// task parameters
commandArgs := []string{root + categoryGroup.Id + "/" + categoryGroup.Tasks[args.Step-1].ScriptPath}
if len(categoryGroup.Tasks[args.Step-1].Parameters) != 0 && len(args.TaskParameters) == 0 {
if len(categoryGroup.Tasks[args.Step-1].Parameters) != 0 && len(args.TaskInputs) == 0 {
updateGroupTask(groupTaskStep.GroupTasksId, structs.GroupTasks{
Status: structs.GroupTasksStatusInputRequired,
})
@ -155,15 +156,14 @@ func RunGroupTask(args RunGroupTaskArgs) {
updateGroupTaskSteps(groupTaskStep)
return
} else {
} else if len(args.TaskInputs) > 0 {
var taskParameterInputs []InputParameters
if err := json.Unmarshal([]byte(args.TaskParameters), &taskParameterInputs); err != nil {
if err := json.Unmarshal([]byte(args.TaskInputs), &taskParameterInputs); err != nil {
log.Error().Msgf("err unmarshalling task parameter inputs %s", err.Error())
}
for _, taskParameterInput := range taskParameterInputs {
//commandArgs = append(commandArgs, "--"+taskParameterInput.ParameterName)
commandArgs = append(commandArgs, taskParameterInput.Value)
}
}
@ -208,7 +208,7 @@ func RunGroupTask(args RunGroupTaskArgs) {
})
// clear task parameters, because otherwise the next task would have the parameters from the previous task
args.TaskParameters = ""
args.TaskInputs = ""
RunGroupTask(args)
}

View File

@ -34,6 +34,7 @@ type GroupTaskSteps struct {
Step uint8
Status uint8
Log string `gorm:"type:text"`
Inputs string `gorm:"type:json"`
StartedAt time.Time
EndedAt time.Time
}
@ -64,7 +65,7 @@ type Task struct {
OnFinish string `json:"onFinish"`
UndoPossible bool `json:"undoPossible"`
ScriptPath string `json:"scriptPath"`
Parameters []TaskParameter `json:"parameters"`
Parameters []TaskParameter `json:"parameters"` // same as task inputs
Feedback string `json:"feedback"`
}

View File

@ -1,7 +1,27 @@
package utils
import "github.com/gofiber/fiber/v2"
import (
"encoding/json"
"github.com/gofiber/fiber/v2"
"github.com/rs/zerolog/log"
)
func GetXAuhorizationHeader(c *fiber.Ctx) string {
return c.GetReqHeaders()[HeaderXAuthorization]
}
func MarshalJson(v any) string {
log.Debug().Msgf("MarshalJson input %s", v)
json, err := json.Marshal(v)
if err != nil {
log.Error().Msgf("Failed to marshal json %s", err)
return ""
}
log.Debug().Msgf("Marshal json %s", json)
return string(json)
}

View File

@ -76,8 +76,8 @@ func RunHub() {
category := receivedMessage.Body["category"].(string)
groupId := receivedMessage.Body["id"].(string)
globalInputs := receivedMessage.Body["globalInputs"]
/*
var globalInputsJsonString string
if globalInputs != nil {
@ -89,7 +89,9 @@ func RunHub() {
}
globalInputsJsonString = string(jsonString)
}
} */
globalInputsJsonString := utils.MarshalJson(receivedMessage.Body["globalInputs"])
groupTaskId := uuid.New().String()
@ -134,9 +136,7 @@ func RunHub() {
})
break
case utils.ReceivedCmdTaskContinueTaskStep:
taskInputs := receivedMessage.Body["taskInputs"]
var taskInputsJsonString string
/*
if taskInputs != nil {
jsonString, err := json.Marshal(taskInputs)
@ -147,7 +147,7 @@ func RunHub() {
}
taskInputsJsonString = string(jsonString)
}
} */
go grouptasks.RunGroupTask(grouptasks.RunGroupTaskArgs{
StartType: grouptasks.RunGroupTaskStartTypeTryAgain,
@ -156,7 +156,7 @@ func RunHub() {
GroupId: receivedMessage.Body["groupId"].(string),
Step: uint8(receivedMessage.Body["step"].(float64)),
TaskStepId: receivedMessage.Body["taskStepId"].(string),
TaskParameters: taskInputsJsonString,
TaskInputs: utils.MarshalJson(receivedMessage.Body["taskInputs"]),
})
break