diff --git a/internal/manager/job_compilers/scripts/simple_blender_render.js b/internal/manager/job_compilers/scripts/simple_blender_render.js index 269ee20f..6c9d60be 100644 --- a/internal/manager/job_compilers/scripts/simple_blender_render.js +++ b/internal/manager/job_compilers/scripts/simple_blender_render.js @@ -21,10 +21,11 @@ const JOB_TYPE = { label: "Simple Blender Render", settings: [ - { key: "blender_cmd", type: "string", default: "{blender}" }, + { key: "blender_cmd", type: "string", default: "{blender}", visible: false }, + { key: "filepath", type: "string", subtype: "file_path", required: true }, { key: "chunk_size", type: "int32", default: 1 }, { key: "frames", type: "string", required: true }, - { key: "render_output", type: "string", required: true }, + { key: "render_output", type: "string", subtype: "hashed_file_path", required: true }, { key: "fps", type: "int32" }, { key: "extract_audio", type: "bool", default: true }, { diff --git a/pkg/api/flamenco-manager.yaml b/pkg/api/flamenco-manager.yaml index 10df1917..efb40c0a 100644 --- a/pkg/api/flamenco-manager.yaml +++ b/pkg/api/flamenco-manager.yaml @@ -170,6 +170,7 @@ components: type: string description: Identifier for the setting, must be unique within the job type. "type": {$ref: "#/components/schemas/AvailableJobSettingType"} + "subtype": {$ref: "#/components/schemas/AvailableJobSettingSubtype"} "choices": description: When given, limit the valid values to these choices. Only usable with string type. type: array @@ -185,15 +186,33 @@ components: default: true "required": type: boolean - description: Whether to immediately reject a job definition, of this type, without this particular setting. + description: > + Whether to immediately reject a job definition, of this type, + without this particular setting. + default: false + "editable": + type: boolean + description: > + Whether to allow editing this setting after the job has been + submitted. Would imply deleting all existing tasks for this job, and + recompiling it. default: false required: [key, type] AvailableJobSettingType: type: string - description: Type of job setting, must be usable as IDProperty type in Blender. No nested structures (arrays, dictionaries) are supported. + description: > + Type of job setting, must be usable as IDProperty type in Blender. No + nested structures (arrays, dictionaries) are supported. enum: [string, int32, float, bool] + AvailableJobSettingSubtype: + type: string + description: > + Sub-type of the job setting. Currently only available for string types. + `HASHED_FILE_PATH` is a directory path + `"/######"` appended. + enum: ["file_path", "dir_path", "file_name", "hashed_file_path"] + Error: type: object required: [code, message] diff --git a/pkg/api/openapi_spec.gen.go b/pkg/api/openapi_spec.gen.go index c875ca3c..3eb4d7ee 100644 --- a/pkg/api/openapi_spec.gen.go +++ b/pkg/api/openapi_spec.gen.go @@ -18,36 +18,39 @@ import ( // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", - "MSpkhCWapcH+wNhV97f7fwcAAP//KSYvdP0WAAA=", + "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/pkg/api/openapi_types.gen.go b/pkg/api/openapi_types.gen.go index d6ebced8..0226dd4f 100644 --- a/pkg/api/openapi_types.gen.go +++ b/pkg/api/openapi_types.gen.go @@ -7,6 +7,17 @@ const ( Worker_authScopes = "worker_auth.Scopes" ) +// Defines values for AvailableJobSettingSubtype. +const ( + AvailableJobSettingSubtypeDirPath AvailableJobSettingSubtype = "dir_path" + + AvailableJobSettingSubtypeFileName AvailableJobSettingSubtype = "file_name" + + AvailableJobSettingSubtypeFilePath AvailableJobSettingSubtype = "file_path" + + AvailableJobSettingSubtypeHashedFilePath AvailableJobSettingSubtype = "hashed_file_path" +) + // Defines values for AvailableJobSettingType. const ( AvailableJobSettingTypeBool AvailableJobSettingType = "bool" @@ -63,12 +74,18 @@ type AvailableJobSetting struct { // The default value shown to the user when determining this setting. Default *interface{} `json:"default,omitempty"` + // Whether to allow editing this setting after the job has been submitted. Would imply deleting all existing tasks for this job, and recompiling it. + Editable *bool `json:"editable,omitempty"` + // Identifier for the setting, must be unique within the job type. Key string `json:"key"` // Whether to immediately reject a job definition, of this type, without this particular setting. Required *bool `json:"required,omitempty"` + // Sub-type of the job setting. Currently only available for string types. `HASHED_FILE_PATH` is a directory path + `"/######"` appended. + Subtype *AvailableJobSettingSubtype `json:"subtype,omitempty"` + // Type of job setting, must be usable as IDProperty type in Blender. No nested structures (arrays, dictionaries) are supported. Type AvailableJobSettingType `json:"type"` @@ -76,6 +93,9 @@ type AvailableJobSetting struct { Visible *bool `json:"visible,omitempty"` } +// Sub-type of the job setting. Currently only available for string types. `HASHED_FILE_PATH` is a directory path + `"/######"` appended. +type AvailableJobSettingSubtype string + // Type of job setting, must be usable as IDProperty type in Blender. No nested structures (arrays, dictionaries) are supported. type AvailableJobSettingType string