diff --git a/internal/manager/api_impl/varrepl.go b/internal/manager/api_impl/varrepl.go index 30d124e7..9ca52b21 100644 --- a/internal/manager/api_impl/varrepl.go +++ b/internal/manager/api_impl/varrepl.go @@ -25,6 +25,7 @@ import ( "gitlab.com/blender/flamenco-ng-poc/internal/manager/config" "gitlab.com/blender/flamenco-ng-poc/internal/manager/persistence" + "gitlab.com/blender/flamenco-ng-poc/pkg/api" ) var stringType = reflect.TypeOf("somestring") @@ -34,7 +35,7 @@ type VariableReplacer interface { } // 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 { return replacer.ExpandVariables(value, "workers", worker.Platform) } diff --git a/internal/manager/api_impl/varrepl_test.go b/internal/manager/api_impl/varrepl_test.go index 7ec53513..8cd4c5b1 100644 --- a/internal/manager/api_impl/varrepl_test.go +++ b/internal/manager/api_impl/varrepl_test.go @@ -26,18 +26,19 @@ import ( "github.com/stretchr/testify/assert" "gitlab.com/blender/flamenco-ng-poc/internal/manager/config" "gitlab.com/blender/flamenco-ng-poc/internal/manager/persistence" + "gitlab.com/blender/flamenco-ng-poc/pkg/api" ) -func varreplTestTask() persistence.Task { - return persistence.Task{ - Commands: []persistence.Command{ - {Name: "echo", Parameters: persistence.StringInterfaceMap{ +func varreplTestTask() api.AssignedTask { + return api.AssignedTask{ + Commands: []api.Command{ + {Name: "echo", Parameters: map[string]interface{}{ "message": "Running Blender from {blender} {blender}"}}, - {Name: "sleep", Parameters: persistence.StringInterfaceMap{ + {Name: "sleep", Parameters: map[string]interface{}{ "{blender}": 3}}, { 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", "exe": "{blender}", "otherpath": "{hey}/haha", diff --git a/internal/manager/api_impl/workers.go b/internal/manager/api_impl/workers.go index c9c45f31..6f472b90 100644 --- a/internal/manager/api_impl/workers.go +++ b/internal/manager/api_impl/workers.go @@ -272,5 +272,7 @@ func (f *Flamenco) ScheduleTask(e echo.Context) error { 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) }