task_result.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package executor
  2. import "strings"
  3. type ContainerResult struct {
  4. Conditions map[string]bool `json:"conditions"`
  5. Code int `json:"code"`
  6. Stdout []string `json:"stdout"`
  7. Stderr []string `json:"stderr"`
  8. Error error `json:"error"`
  9. }
  10. func NewContainerResultSuccess(conditions map[string]bool, code int, stdout []byte, stderr []byte) *ContainerResult {
  11. return &ContainerResult{
  12. Conditions: conditions,
  13. Code: code,
  14. Stdout: strings.Split(string(stdout), "\n"),
  15. Stderr: strings.Split(string(stderr), "\n"),
  16. }
  17. }
  18. func NewContainerResultError(err error) *ContainerResult {
  19. return &ContainerResult{
  20. Error: err,
  21. }
  22. }
  23. type CheckResult struct {
  24. Success bool `json:"success"`
  25. Data any `json:"data"`
  26. }
  27. type TaskResult struct {
  28. Success bool `json:"success"`
  29. Clean bool `json:"clean"`
  30. Start map[string]*ContainerResult `json:"start"`
  31. Stop map[string]*ContainerResult `json:"stop"`
  32. Checks map[string]CheckResult `json:"checks"`
  33. }
  34. func NewTaskResultSuccess(report map[string]CheckResult) *TaskResult {
  35. return &TaskResult{
  36. Success: true,
  37. Clean: false,
  38. Checks: report,
  39. }
  40. }
  41. func NewTaskResultFailed() *TaskResult {
  42. return &TaskResult{
  43. Success: false,
  44. Clean: false,
  45. Checks: map[string]CheckResult{},
  46. }
  47. }