Manager: perform variable replacement on scheduled tasks
This commit is contained in:
parent
8cc9956bb0
commit
d198e228b7
@ -25,6 +25,7 @@ import (
|
|||||||
|
|
||||||
"gitlab.com/blender/flamenco-ng-poc/internal/manager/config"
|
"gitlab.com/blender/flamenco-ng-poc/internal/manager/config"
|
||||||
"gitlab.com/blender/flamenco-ng-poc/internal/manager/persistence"
|
"gitlab.com/blender/flamenco-ng-poc/internal/manager/persistence"
|
||||||
|
"gitlab.com/blender/flamenco-ng-poc/pkg/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
var stringType = reflect.TypeOf("somestring")
|
var stringType = reflect.TypeOf("somestring")
|
||||||
@ -34,7 +35,7 @@ type VariableReplacer interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// replaceTaskVariables performs variable replacement for worker tasks.
|
// replaceTaskVariables performs variable replacement for worker tasks.
|
||||||
func replaceTaskVariables(replacer VariableReplacer, task persistence.Task, worker persistence.Worker) persistence.Task {
|
func replaceTaskVariables(replacer VariableReplacer, task api.AssignedTask, worker persistence.Worker) api.AssignedTask {
|
||||||
repl := func(value string) string {
|
repl := func(value string) string {
|
||||||
return replacer.ExpandVariables(value, "workers", worker.Platform)
|
return replacer.ExpandVariables(value, "workers", worker.Platform)
|
||||||
}
|
}
|
||||||
|
@ -26,18 +26,19 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"gitlab.com/blender/flamenco-ng-poc/internal/manager/config"
|
"gitlab.com/blender/flamenco-ng-poc/internal/manager/config"
|
||||||
"gitlab.com/blender/flamenco-ng-poc/internal/manager/persistence"
|
"gitlab.com/blender/flamenco-ng-poc/internal/manager/persistence"
|
||||||
|
"gitlab.com/blender/flamenco-ng-poc/pkg/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
func varreplTestTask() persistence.Task {
|
func varreplTestTask() api.AssignedTask {
|
||||||
return persistence.Task{
|
return api.AssignedTask{
|
||||||
Commands: []persistence.Command{
|
Commands: []api.Command{
|
||||||
{Name: "echo", Parameters: persistence.StringInterfaceMap{
|
{Name: "echo", Parameters: map[string]interface{}{
|
||||||
"message": "Running Blender from {blender} {blender}"}},
|
"message": "Running Blender from {blender} {blender}"}},
|
||||||
{Name: "sleep", Parameters: persistence.StringInterfaceMap{
|
{Name: "sleep", Parameters: map[string]interface{}{
|
||||||
"{blender}": 3}},
|
"{blender}": 3}},
|
||||||
{
|
{
|
||||||
Name: "blender_render",
|
Name: "blender_render",
|
||||||
Parameters: persistence.StringInterfaceMap{
|
Parameters: map[string]interface{}{
|
||||||
"filepath": "{job_storage}/sybren/2017-06-08-181223.625800-sybren-flamenco-test.flamenco/flamenco-test.flamenco.blend",
|
"filepath": "{job_storage}/sybren/2017-06-08-181223.625800-sybren-flamenco-test.flamenco/flamenco-test.flamenco.blend",
|
||||||
"exe": "{blender}",
|
"exe": "{blender}",
|
||||||
"otherpath": "{hey}/haha",
|
"otherpath": "{hey}/haha",
|
||||||
|
@ -272,5 +272,7 @@ func (f *Flamenco) ScheduleTask(e echo.Context) error {
|
|||||||
TaskType: dbTask.Type,
|
TaskType: dbTask.Type,
|
||||||
}
|
}
|
||||||
|
|
||||||
return e.JSON(http.StatusOK, apiTask)
|
// Perform variable replacement before sending to the Worker.
|
||||||
|
customisedTask := replaceTaskVariables(f.config, apiTask, *worker)
|
||||||
|
return e.JSON(http.StatusOK, customisedTask)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user