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/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)
|
||||
}
|
||||
|
@ -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",
|
||||
|
@ -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)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user