(s *cluster.CreateSlaveTask, c *gin.Context)
| 23 | ) |
| 24 | |
| 25 | func CreateTaskInSlave(s *cluster.CreateSlaveTask, c *gin.Context) (int, error) { |
| 26 | dep := dependency.FromContext(c) |
| 27 | registry := dep.TaskRegistry() |
| 28 | |
| 29 | props, err := slaveTaskPropsFromContext(c) |
| 30 | if err != nil { |
| 31 | return 0, serializer.NewError(serializer.CodeParamErr, "failed to get master props from header", err) |
| 32 | } |
| 33 | |
| 34 | var t queue.Task |
| 35 | switch s.Type { |
| 36 | case queue.SlaveUploadTaskType: |
| 37 | t = workflows.NewSlaveUploadTask(c, props, registry.NextID(), s.State) |
| 38 | case queue.SlaveCreateArchiveTaskType: |
| 39 | t = workflows.NewSlaveCreateArchiveTask(c, props, registry.NextID(), s.State) |
| 40 | case queue.SlaveExtractArchiveType: |
| 41 | t = workflows.NewSlaveExtractArchiveTask(c, props, registry.NextID(), s.State) |
| 42 | default: |
| 43 | return 0, serializer.NewError(serializer.CodeParamErr, "type not supported", nil) |
| 44 | } |
| 45 | |
| 46 | if err := dep.SlaveQueue(c).QueueTask(c, t); err != nil { |
| 47 | return 0, serializer.NewError(serializer.CodeInternalSetting, "failed to queue task", err) |
| 48 | } |
| 49 | |
| 50 | registry.Set(t.ID(), t) |
| 51 | return t.ID(), nil |
| 52 | } |
| 53 | |
| 54 | type ( |
| 55 | GetSlaveTaskParamCtx struct{} |
no test coverage detected