WIP: Support pausing jobs and allow jobs to be submitted in paused status #104312
1
addon/flamenco/manager/docs/Job.md
generated
1
addon/flamenco/manager/docs/Job.md
generated
@ -18,6 +18,7 @@ Name | Type | Description | Notes
|
||||
**metadata** | [**JobMetadata**](JobMetadata.md) | | [optional]
|
||||
**storage** | [**JobStorageInfo**](JobStorageInfo.md) | | [optional]
|
||||
**worker_tag** | **str** | Worker tag that should execute this job. When a tag ID is given, only Workers in that tag will be scheduled to work on it. If empty or ommitted, all workers can work on this job. | [optional]
|
||||
**submit_as_paused** | **bool** | Whether to submit this job as paused. This is useful for jobs that should not start immediately, but only after manual intervention. | [optional] if omitted the server will use the default value of False
|
||||
**delete_requested_at** | **datetime** | If job deletion was requested, this is the timestamp at which that request was stored on Flamenco Manager. | [optional]
|
||||
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
|
||||
|
||||
|
2
addon/flamenco/manager/docs/JobStatus.md
generated
2
addon/flamenco/manager/docs/JobStatus.md
generated
@ -4,7 +4,7 @@
|
||||
## Properties
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**value** | **str** | | must be one of ["active", "canceled", "completed", "failed", "paused", "queued", "cancel-requested", "requeueing", "under-construction", ]
|
||||
**value** | **str** | | must be one of ["active", "canceled", "completed", "failed", "paused", "pause-requested", "queued", "cancel-requested", "requeueing", "under-construction", ]
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
4
addon/flamenco/manager/docs/JobsApi.md
generated
4
addon/flamenco/manager/docs/JobsApi.md
generated
@ -1296,6 +1296,7 @@ with flamenco.manager.ApiClient() as api_client:
|
||||
shaman_checkout_id="shaman_checkout_id_example",
|
||||
),
|
||||
worker_tag="worker_tag_example",
|
||||
submit_as_paused=False,
|
||||
) # SubmittedJob | Job to submit
|
||||
|
||||
# example passing only required values which don't have defaults set
|
||||
@ -1332,7 +1333,7 @@ No authorization required
|
||||
|
||||
| Status code | Description | Response headers |
|
||||
|-------------|-------------|------------------|
|
||||
**200** | Job was succesfully compiled into individual tasks. | - |
|
||||
**200** | Job was successfully compiled into individual tasks. | - |
|
||||
**412** | The given job type etag does not match the job type etag on the Manager. This is likely due to the client caching the job type for too long. | - |
|
||||
**0** | Error message | - |
|
||||
|
||||
@ -1378,6 +1379,7 @@ with flamenco.manager.ApiClient() as api_client:
|
||||
shaman_checkout_id="shaman_checkout_id_example",
|
||||
),
|
||||
worker_tag="worker_tag_example",
|
||||
submit_as_paused=False,
|
||||
) # SubmittedJob | Job to check
|
||||
|
||||
# example passing only required values which don't have defaults set
|
||||
|
1
addon/flamenco/manager/docs/SubmittedJob.md
generated
1
addon/flamenco/manager/docs/SubmittedJob.md
generated
@ -14,6 +14,7 @@ Name | Type | Description | Notes
|
||||
**metadata** | [**JobMetadata**](JobMetadata.md) | | [optional]
|
||||
**storage** | [**JobStorageInfo**](JobStorageInfo.md) | | [optional]
|
||||
**worker_tag** | **str** | Worker tag that should execute this job. When a tag ID is given, only Workers in that tag will be scheduled to work on it. If empty or ommitted, all workers can work on this job. | [optional]
|
||||
**submit_as_paused** | **bool** | Whether to submit this job as paused. This is useful for jobs that should not start immediately, but only after manual intervention. | [optional] if omitted the server will use the default value of False
|
||||
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
4
addon/flamenco/manager/model/job.py
generated
4
addon/flamenco/manager/model/job.py
generated
@ -111,6 +111,7 @@ class Job(ModelComposed):
|
||||
'metadata': (JobMetadata,), # noqa: E501
|
||||
'storage': (JobStorageInfo,), # noqa: E501
|
||||
'worker_tag': (str,), # noqa: E501
|
||||
'submit_as_paused': (bool,), # noqa: E501
|
||||
'delete_requested_at': (datetime,), # noqa: E501
|
||||
}
|
||||
|
||||
@ -134,6 +135,7 @@ class Job(ModelComposed):
|
||||
'metadata': 'metadata', # noqa: E501
|
||||
'storage': 'storage', # noqa: E501
|
||||
'worker_tag': 'worker_tag', # noqa: E501
|
||||
'submit_as_paused': 'submit_as_paused', # noqa: E501
|
||||
'delete_requested_at': 'delete_requested_at', # noqa: E501
|
||||
}
|
||||
|
||||
@ -190,6 +192,7 @@ class Job(ModelComposed):
|
||||
metadata (JobMetadata): [optional] # noqa: E501
|
||||
storage (JobStorageInfo): [optional] # noqa: E501
|
||||
worker_tag (str): Worker tag that should execute this job. When a tag ID is given, only Workers in that tag will be scheduled to work on it. If empty or ommitted, all workers can work on this job. . [optional] # noqa: E501
|
||||
submit_as_paused (bool): Whether to submit this job as paused. This is useful for jobs that should not start immediately, but only after manual intervention. . [optional] if omitted the server will use the default value of False # noqa: E501
|
||||
delete_requested_at (datetime): If job deletion was requested, this is the timestamp at which that request was stored on Flamenco Manager. . [optional] # noqa: E501
|
||||
"""
|
||||
|
||||
@ -305,6 +308,7 @@ class Job(ModelComposed):
|
||||
metadata (JobMetadata): [optional] # noqa: E501
|
||||
storage (JobStorageInfo): [optional] # noqa: E501
|
||||
worker_tag (str): Worker tag that should execute this job. When a tag ID is given, only Workers in that tag will be scheduled to work on it. If empty or ommitted, all workers can work on this job. . [optional] # noqa: E501
|
||||
submit_as_paused (bool): Whether to submit this job as paused. This is useful for jobs that should not start immediately, but only after manual intervention. . [optional] if omitted the server will use the default value of False # noqa: E501
|
||||
delete_requested_at (datetime): If job deletion was requested, this is the timestamp at which that request was stored on Flamenco Manager. . [optional] # noqa: E501
|
||||
"""
|
||||
|
||||
|
9
addon/flamenco/manager/model/job_status.py
generated
9
addon/flamenco/manager/model/job_status.py
generated
@ -57,6 +57,7 @@ class JobStatus(ModelSimple):
|
||||
'COMPLETED': "completed",
|
||||
'FAILED': "failed",
|
||||
'PAUSED': "paused",
|
||||
'PAUSE-REQUESTED': "pause-requested",
|
||||
'QUEUED': "queued",
|
||||
'CANCEL-REQUESTED': "cancel-requested",
|
||||
'REQUEUEING': "requeueing",
|
||||
@ -112,10 +113,10 @@ class JobStatus(ModelSimple):
|
||||
Note that value can be passed either in args or in kwargs, but not in both.
|
||||
|
||||
Args:
|
||||
args[0] (str):, must be one of ["active", "canceled", "completed", "failed", "paused", "queued", "cancel-requested", "requeueing", "under-construction", ] # noqa: E501
|
||||
args[0] (str):, must be one of ["active", "canceled", "completed", "failed", "paused", "pause-requested", "queued", "cancel-requested", "requeueing", "under-construction", ] # noqa: E501
|
||||
|
||||
Keyword Args:
|
||||
value (str):, must be one of ["active", "canceled", "completed", "failed", "paused", "queued", "cancel-requested", "requeueing", "under-construction", ] # noqa: E501
|
||||
value (str):, must be one of ["active", "canceled", "completed", "failed", "paused", "pause-requested", "queued", "cancel-requested", "requeueing", "under-construction", ] # noqa: E501
|
||||
_check_type (bool): if True, values for parameters in openapi_types
|
||||
will be type checked and a TypeError will be
|
||||
raised if the wrong type is input.
|
||||
@ -202,10 +203,10 @@ class JobStatus(ModelSimple):
|
||||
Note that value can be passed either in args or in kwargs, but not in both.
|
||||
|
||||
Args:
|
||||
args[0] (str):, must be one of ["active", "canceled", "completed", "failed", "paused", "queued", "cancel-requested", "requeueing", "under-construction", ] # noqa: E501
|
||||
args[0] (str):, must be one of ["active", "canceled", "completed", "failed", "paused", "pause-requested", "queued", "cancel-requested", "requeueing", "under-construction", ] # noqa: E501
|
||||
|
||||
Keyword Args:
|
||||
value (str):, must be one of ["active", "canceled", "completed", "failed", "paused", "queued", "cancel-requested", "requeueing", "under-construction", ] # noqa: E501
|
||||
value (str):, must be one of ["active", "canceled", "completed", "failed", "paused", "pause-requested", "queued", "cancel-requested", "requeueing", "under-construction", ] # noqa: E501
|
||||
_check_type (bool): if True, values for parameters in openapi_types
|
||||
will be type checked and a TypeError will be
|
||||
raised if the wrong type is input.
|
||||
|
4
addon/flamenco/manager/model/submitted_job.py
generated
4
addon/flamenco/manager/model/submitted_job.py
generated
@ -100,6 +100,7 @@ class SubmittedJob(ModelNormal):
|
||||
'metadata': (JobMetadata,), # noqa: E501
|
||||
'storage': (JobStorageInfo,), # noqa: E501
|
||||
'worker_tag': (str,), # noqa: E501
|
||||
'submit_as_paused': (bool,), # noqa: E501
|
||||
}
|
||||
|
||||
@cached_property
|
||||
@ -117,6 +118,7 @@ class SubmittedJob(ModelNormal):
|
||||
'metadata': 'metadata', # noqa: E501
|
||||
'storage': 'storage', # noqa: E501
|
||||
'worker_tag': 'worker_tag', # noqa: E501
|
||||
'submit_as_paused': 'submit_as_paused', # noqa: E501
|
||||
}
|
||||
|
||||
read_only_vars = {
|
||||
@ -171,6 +173,7 @@ class SubmittedJob(ModelNormal):
|
||||
metadata (JobMetadata): [optional] # noqa: E501
|
||||
storage (JobStorageInfo): [optional] # noqa: E501
|
||||
worker_tag (str): Worker tag that should execute this job. When a tag ID is given, only Workers in that tag will be scheduled to work on it. If empty or ommitted, all workers can work on this job. . [optional] # noqa: E501
|
||||
submit_as_paused (bool): Whether to submit this job as paused. This is useful for jobs that should not start immediately, but only after manual intervention. . [optional] if omitted the server will use the default value of False # noqa: E501
|
||||
"""
|
||||
|
||||
priority = kwargs.get('priority', 50)
|
||||
@ -268,6 +271,7 @@ class SubmittedJob(ModelNormal):
|
||||
metadata (JobMetadata): [optional] # noqa: E501
|
||||
storage (JobStorageInfo): [optional] # noqa: E501
|
||||
worker_tag (str): Worker tag that should execute this job. When a tag ID is given, only Workers in that tag will be scheduled to work on it. If empty or ommitted, all workers can work on this job. . [optional] # noqa: E501
|
||||
submit_as_paused (bool): Whether to submit this job as paused. This is useful for jobs that should not start immediately, but only after manual intervention. . [optional] if omitted the server will use the default value of False # noqa: E501
|
||||
"""
|
||||
|
||||
priority = kwargs.get('priority', 50)
|
||||
|
284
addon/flamenco/manager_README.md
generated
284
addon/flamenco/manager_README.md
generated
@ -76,152 +76,152 @@ All URIs are relative to *http://localhost*
|
||||
|
||||
Class | Method | HTTP request | Description
|
||||
------------ | ------------- | ------------- | -------------
|
||||
*JobsApi* | [**delete_job**](flamenco\manager\docs/JobsApi.md#delete_job) | **DELETE** /api/v3/jobs/{job_id} | Request deletion this job, including its tasks and any log files. The actual deletion may happen in the background. No job files will be deleted (yet).
|
||||
*JobsApi* | [**delete_job_mass**](flamenco\manager\docs/JobsApi.md#delete_job_mass) | **DELETE** /api/v3/jobs/mass-delete | Mark jobs for deletion, based on certain criteria.
|
||||
*JobsApi* | [**delete_job_what_would_it_do**](flamenco\manager\docs/JobsApi.md#delete_job_what_would_it_do) | **GET** /api/v3/jobs/{job_id}/what-would-delete-do | Get info about what would be deleted when deleting this job. The job itself, its logs, and the last-rendered images will always be deleted. The job files are only deleted conditionally, and this operation can be used to figure that out.
|
||||
*JobsApi* | [**fetch_global_last_rendered_info**](flamenco\manager\docs/JobsApi.md#fetch_global_last_rendered_info) | **GET** /api/v3/jobs/last-rendered | Get the URL that serves the last-rendered images.
|
||||
*JobsApi* | [**fetch_job**](flamenco\manager\docs/JobsApi.md#fetch_job) | **GET** /api/v3/jobs/{job_id} | Fetch info about the job.
|
||||
*JobsApi* | [**fetch_job_blocklist**](flamenco\manager\docs/JobsApi.md#fetch_job_blocklist) | **GET** /api/v3/jobs/{job_id}/blocklist | Fetch the list of workers that are blocked from doing certain task types on this job.
|
||||
*JobsApi* | [**fetch_job_last_rendered_info**](flamenco\manager\docs/JobsApi.md#fetch_job_last_rendered_info) | **GET** /api/v3/jobs/{job_id}/last-rendered | Get the URL that serves the last-rendered images of this job.
|
||||
*JobsApi* | [**fetch_job_tasks**](flamenco\manager\docs/JobsApi.md#fetch_job_tasks) | **GET** /api/v3/jobs/{job_id}/tasks | Fetch a summary of all tasks of the given job.
|
||||
*JobsApi* | [**fetch_task**](flamenco\manager\docs/JobsApi.md#fetch_task) | **GET** /api/v3/tasks/{task_id} | Fetch a single task.
|
||||
*JobsApi* | [**fetch_task_log_info**](flamenco\manager\docs/JobsApi.md#fetch_task_log_info) | **GET** /api/v3/tasks/{task_id}/log | Get the URL of the task log, and some more info.
|
||||
*JobsApi* | [**fetch_task_log_tail**](flamenco\manager\docs/JobsApi.md#fetch_task_log_tail) | **GET** /api/v3/tasks/{task_id}/logtail | Fetch the last few lines of the task's log.
|
||||
*JobsApi* | [**get_job_type**](flamenco\manager\docs/JobsApi.md#get_job_type) | **GET** /api/v3/jobs/type/{typeName} | Get single job type and its parameters.
|
||||
*JobsApi* | [**get_job_types**](flamenco\manager\docs/JobsApi.md#get_job_types) | **GET** /api/v3/jobs/types | Get list of job types and their parameters.
|
||||
*JobsApi* | [**query_jobs**](flamenco\manager\docs/JobsApi.md#query_jobs) | **POST** /api/v3/jobs/query | Fetch list of jobs.
|
||||
*JobsApi* | [**remove_job_blocklist**](flamenco\manager\docs/JobsApi.md#remove_job_blocklist) | **DELETE** /api/v3/jobs/{job_id}/blocklist | Remove entries from a job blocklist.
|
||||
*JobsApi* | [**set_job_priority**](flamenco\manager\docs/JobsApi.md#set_job_priority) | **POST** /api/v3/jobs/{job_id}/setpriority |
|
||||
*JobsApi* | [**set_job_status**](flamenco\manager\docs/JobsApi.md#set_job_status) | **POST** /api/v3/jobs/{job_id}/setstatus |
|
||||
*JobsApi* | [**set_task_status**](flamenco\manager\docs/JobsApi.md#set_task_status) | **POST** /api/v3/tasks/{task_id}/setstatus |
|
||||
*JobsApi* | [**submit_job**](flamenco\manager\docs/JobsApi.md#submit_job) | **POST** /api/v3/jobs | Submit a new job for Flamenco Manager to execute.
|
||||
*JobsApi* | [**submit_job_check**](flamenco\manager\docs/JobsApi.md#submit_job_check) | **POST** /api/v3/jobs/check | Submit a new job for Flamenco Manager to check.
|
||||
*MetaApi* | [**check_blender_exe_path**](flamenco\manager\docs/MetaApi.md#check_blender_exe_path) | **POST** /api/v3/configuration/check/blender | Validate a CLI command for use as way to start Blender
|
||||
*MetaApi* | [**check_shared_storage_path**](flamenco\manager\docs/MetaApi.md#check_shared_storage_path) | **POST** /api/v3/configuration/check/shared-storage | Validate a path for use as shared storage.
|
||||
*MetaApi* | [**find_blender_exe_path**](flamenco\manager\docs/MetaApi.md#find_blender_exe_path) | **GET** /api/v3/configuration/check/blender | Find one or more CLI commands for use as way to start Blender
|
||||
*MetaApi* | [**get_configuration**](flamenco\manager\docs/MetaApi.md#get_configuration) | **GET** /api/v3/configuration | Get the configuration of this Manager.
|
||||
*MetaApi* | [**get_configuration_file**](flamenco\manager\docs/MetaApi.md#get_configuration_file) | **GET** /api/v3/configuration/file | Retrieve the configuration of Flamenco Manager.
|
||||
*MetaApi* | [**get_farm_status**](flamenco\manager\docs/MetaApi.md#get_farm_status) | **GET** /api/v3/status | Get the status of this Flamenco farm.
|
||||
*MetaApi* | [**get_shared_storage**](flamenco\manager\docs/MetaApi.md#get_shared_storage) | **GET** /api/v3/configuration/shared-storage/{audience}/{platform} | Get the shared storage location of this Manager, adjusted for the given audience and platform.
|
||||
*MetaApi* | [**get_variables**](flamenco\manager\docs/MetaApi.md#get_variables) | **GET** /api/v3/configuration/variables/{audience}/{platform} | Get the variables of this Manager. Used by the Blender add-on to recognise two-way variables, and for the web interface to do variable replacement based on the browser's platform.
|
||||
*MetaApi* | [**get_version**](flamenco\manager\docs/MetaApi.md#get_version) | **GET** /api/v3/version | Get the Flamenco version of this Manager
|
||||
*MetaApi* | [**save_setup_assistant_config**](flamenco\manager\docs/MetaApi.md#save_setup_assistant_config) | **POST** /api/v3/configuration/setup-assistant | Update the Manager's configuration, and restart it in fully functional mode.
|
||||
*ShamanApi* | [**shaman_checkout**](flamenco\manager\docs/ShamanApi.md#shaman_checkout) | **POST** /api/v3/shaman/checkout/create | Create a directory, and symlink the required files into it. The files must all have been uploaded to Shaman before calling this endpoint.
|
||||
*ShamanApi* | [**shaman_checkout_requirements**](flamenco\manager\docs/ShamanApi.md#shaman_checkout_requirements) | **POST** /api/v3/shaman/checkout/requirements | Checks a Shaman Requirements file, and reports which files are unknown.
|
||||
*ShamanApi* | [**shaman_file_store**](flamenco\manager\docs/ShamanApi.md#shaman_file_store) | **POST** /api/v3/shaman/files/{checksum}/{filesize} | Store a new file on the Shaman server. Note that the Shaman server can forcibly close the HTTP connection when another client finishes uploading the exact same file, to prevent double uploads. The file's contents should be sent in the request body.
|
||||
*ShamanApi* | [**shaman_file_store_check**](flamenco\manager\docs/ShamanApi.md#shaman_file_store_check) | **GET** /api/v3/shaman/files/{checksum}/{filesize} | Check the status of a file on the Shaman server.
|
||||
*WorkerApi* | [**may_worker_run**](flamenco\manager\docs/WorkerApi.md#may_worker_run) | **GET** /api/v3/worker/task/{task_id}/may-i-run | The response indicates whether the worker is allowed to run / keep running the task. Optionally contains a queued worker status change.
|
||||
*WorkerApi* | [**register_worker**](flamenco\manager\docs/WorkerApi.md#register_worker) | **POST** /api/v3/worker/register-worker | Register a new worker
|
||||
*WorkerApi* | [**schedule_task**](flamenco\manager\docs/WorkerApi.md#schedule_task) | **POST** /api/v3/worker/task | Obtain a new task to execute
|
||||
*WorkerApi* | [**sign_off**](flamenco\manager\docs/WorkerApi.md#sign_off) | **POST** /api/v3/worker/sign-off | Mark the worker as offline
|
||||
*WorkerApi* | [**sign_on**](flamenco\manager\docs/WorkerApi.md#sign_on) | **POST** /api/v3/worker/sign-on | Authenticate & sign in the worker.
|
||||
*WorkerApi* | [**task_output_produced**](flamenco\manager\docs/WorkerApi.md#task_output_produced) | **POST** /api/v3/worker/task/{task_id}/output-produced | Store the most recently rendered frame here. Note that it is up to the Worker to ensure this is in a format that's digestable by the Manager. Currently only PNG and JPEG support is planned.
|
||||
*WorkerApi* | [**task_update**](flamenco\manager\docs/WorkerApi.md#task_update) | **POST** /api/v3/worker/task/{task_id} | Update the task, typically to indicate progress, completion, or failure.
|
||||
*WorkerApi* | [**worker_state**](flamenco\manager\docs/WorkerApi.md#worker_state) | **GET** /api/v3/worker/state |
|
||||
*WorkerApi* | [**worker_state_changed**](flamenco\manager\docs/WorkerApi.md#worker_state_changed) | **POST** /api/v3/worker/state-changed | Worker changed state. This could be as acknowledgement of a Manager-requested state change, or in response to worker-local signals.
|
||||
*WorkerMgtApi* | [**create_worker_tag**](flamenco\manager\docs/WorkerMgtApi.md#create_worker_tag) | **POST** /api/v3/worker-mgt/tags | Create a new worker tag.
|
||||
*WorkerMgtApi* | [**delete_worker**](flamenco\manager\docs/WorkerMgtApi.md#delete_worker) | **DELETE** /api/v3/worker-mgt/workers/{worker_id} | Remove the given worker. It is recommended to only call this function when the worker is in `offline` state. If the worker is still running, stop it first. Any task still assigned to the worker will be requeued.
|
||||
*WorkerMgtApi* | [**delete_worker_tag**](flamenco\manager\docs/WorkerMgtApi.md#delete_worker_tag) | **DELETE** /api/v3/worker-mgt/tag/{tag_id} | Remove this worker tag. This unassigns all workers from the tag and removes it.
|
||||
*WorkerMgtApi* | [**fetch_worker**](flamenco\manager\docs/WorkerMgtApi.md#fetch_worker) | **GET** /api/v3/worker-mgt/workers/{worker_id} | Fetch info about the worker.
|
||||
*WorkerMgtApi* | [**fetch_worker_sleep_schedule**](flamenco\manager\docs/WorkerMgtApi.md#fetch_worker_sleep_schedule) | **GET** /api/v3/worker-mgt/workers/{worker_id}/sleep-schedule |
|
||||
*WorkerMgtApi* | [**fetch_worker_tag**](flamenco\manager\docs/WorkerMgtApi.md#fetch_worker_tag) | **GET** /api/v3/worker-mgt/tag/{tag_id} | Get a single worker tag.
|
||||
*WorkerMgtApi* | [**fetch_worker_tags**](flamenco\manager\docs/WorkerMgtApi.md#fetch_worker_tags) | **GET** /api/v3/worker-mgt/tags | Get list of worker tags.
|
||||
*WorkerMgtApi* | [**fetch_workers**](flamenco\manager\docs/WorkerMgtApi.md#fetch_workers) | **GET** /api/v3/worker-mgt/workers | Get list of workers.
|
||||
*WorkerMgtApi* | [**request_worker_status_change**](flamenco\manager\docs/WorkerMgtApi.md#request_worker_status_change) | **POST** /api/v3/worker-mgt/workers/{worker_id}/setstatus |
|
||||
*WorkerMgtApi* | [**set_worker_sleep_schedule**](flamenco\manager\docs/WorkerMgtApi.md#set_worker_sleep_schedule) | **POST** /api/v3/worker-mgt/workers/{worker_id}/sleep-schedule |
|
||||
*WorkerMgtApi* | [**set_worker_tags**](flamenco\manager\docs/WorkerMgtApi.md#set_worker_tags) | **POST** /api/v3/worker-mgt/workers/{worker_id}/settags |
|
||||
*WorkerMgtApi* | [**update_worker_tag**](flamenco\manager\docs/WorkerMgtApi.md#update_worker_tag) | **PUT** /api/v3/worker-mgt/tag/{tag_id} | Update an existing worker tag.
|
||||
*JobsApi* | [**delete_job**](flamenco/manager/docs/JobsApi.md#delete_job) | **DELETE** /api/v3/jobs/{job_id} | Request deletion this job, including its tasks and any log files. The actual deletion may happen in the background. No job files will be deleted (yet).
|
||||
*JobsApi* | [**delete_job_mass**](flamenco/manager/docs/JobsApi.md#delete_job_mass) | **DELETE** /api/v3/jobs/mass-delete | Mark jobs for deletion, based on certain criteria.
|
||||
*JobsApi* | [**delete_job_what_would_it_do**](flamenco/manager/docs/JobsApi.md#delete_job_what_would_it_do) | **GET** /api/v3/jobs/{job_id}/what-would-delete-do | Get info about what would be deleted when deleting this job. The job itself, its logs, and the last-rendered images will always be deleted. The job files are only deleted conditionally, and this operation can be used to figure that out.
|
||||
*JobsApi* | [**fetch_global_last_rendered_info**](flamenco/manager/docs/JobsApi.md#fetch_global_last_rendered_info) | **GET** /api/v3/jobs/last-rendered | Get the URL that serves the last-rendered images.
|
||||
*JobsApi* | [**fetch_job**](flamenco/manager/docs/JobsApi.md#fetch_job) | **GET** /api/v3/jobs/{job_id} | Fetch info about the job.
|
||||
*JobsApi* | [**fetch_job_blocklist**](flamenco/manager/docs/JobsApi.md#fetch_job_blocklist) | **GET** /api/v3/jobs/{job_id}/blocklist | Fetch the list of workers that are blocked from doing certain task types on this job.
|
||||
*JobsApi* | [**fetch_job_last_rendered_info**](flamenco/manager/docs/JobsApi.md#fetch_job_last_rendered_info) | **GET** /api/v3/jobs/{job_id}/last-rendered | Get the URL that serves the last-rendered images of this job.
|
||||
*JobsApi* | [**fetch_job_tasks**](flamenco/manager/docs/JobsApi.md#fetch_job_tasks) | **GET** /api/v3/jobs/{job_id}/tasks | Fetch a summary of all tasks of the given job.
|
||||
*JobsApi* | [**fetch_task**](flamenco/manager/docs/JobsApi.md#fetch_task) | **GET** /api/v3/tasks/{task_id} | Fetch a single task.
|
||||
*JobsApi* | [**fetch_task_log_info**](flamenco/manager/docs/JobsApi.md#fetch_task_log_info) | **GET** /api/v3/tasks/{task_id}/log | Get the URL of the task log, and some more info.
|
||||
*JobsApi* | [**fetch_task_log_tail**](flamenco/manager/docs/JobsApi.md#fetch_task_log_tail) | **GET** /api/v3/tasks/{task_id}/logtail | Fetch the last few lines of the task's log.
|
||||
*JobsApi* | [**get_job_type**](flamenco/manager/docs/JobsApi.md#get_job_type) | **GET** /api/v3/jobs/type/{typeName} | Get single job type and its parameters.
|
||||
*JobsApi* | [**get_job_types**](flamenco/manager/docs/JobsApi.md#get_job_types) | **GET** /api/v3/jobs/types | Get list of job types and their parameters.
|
||||
*JobsApi* | [**query_jobs**](flamenco/manager/docs/JobsApi.md#query_jobs) | **POST** /api/v3/jobs/query | Fetch list of jobs.
|
||||
*JobsApi* | [**remove_job_blocklist**](flamenco/manager/docs/JobsApi.md#remove_job_blocklist) | **DELETE** /api/v3/jobs/{job_id}/blocklist | Remove entries from a job blocklist.
|
||||
*JobsApi* | [**set_job_priority**](flamenco/manager/docs/JobsApi.md#set_job_priority) | **POST** /api/v3/jobs/{job_id}/setpriority |
|
||||
*JobsApi* | [**set_job_status**](flamenco/manager/docs/JobsApi.md#set_job_status) | **POST** /api/v3/jobs/{job_id}/setstatus |
|
||||
*JobsApi* | [**set_task_status**](flamenco/manager/docs/JobsApi.md#set_task_status) | **POST** /api/v3/tasks/{task_id}/setstatus |
|
||||
*JobsApi* | [**submit_job**](flamenco/manager/docs/JobsApi.md#submit_job) | **POST** /api/v3/jobs | Submit a new job for Flamenco Manager to execute.
|
||||
*JobsApi* | [**submit_job_check**](flamenco/manager/docs/JobsApi.md#submit_job_check) | **POST** /api/v3/jobs/check | Submit a new job for Flamenco Manager to check.
|
||||
*MetaApi* | [**check_blender_exe_path**](flamenco/manager/docs/MetaApi.md#check_blender_exe_path) | **POST** /api/v3/configuration/check/blender | Validate a CLI command for use as way to start Blender
|
||||
*MetaApi* | [**check_shared_storage_path**](flamenco/manager/docs/MetaApi.md#check_shared_storage_path) | **POST** /api/v3/configuration/check/shared-storage | Validate a path for use as shared storage.
|
||||
*MetaApi* | [**find_blender_exe_path**](flamenco/manager/docs/MetaApi.md#find_blender_exe_path) | **GET** /api/v3/configuration/check/blender | Find one or more CLI commands for use as way to start Blender
|
||||
*MetaApi* | [**get_configuration**](flamenco/manager/docs/MetaApi.md#get_configuration) | **GET** /api/v3/configuration | Get the configuration of this Manager.
|
||||
*MetaApi* | [**get_configuration_file**](flamenco/manager/docs/MetaApi.md#get_configuration_file) | **GET** /api/v3/configuration/file | Retrieve the configuration of Flamenco Manager.
|
||||
*MetaApi* | [**get_farm_status**](flamenco/manager/docs/MetaApi.md#get_farm_status) | **GET** /api/v3/status | Get the status of this Flamenco farm.
|
||||
*MetaApi* | [**get_shared_storage**](flamenco/manager/docs/MetaApi.md#get_shared_storage) | **GET** /api/v3/configuration/shared-storage/{audience}/{platform} | Get the shared storage location of this Manager, adjusted for the given audience and platform.
|
||||
*MetaApi* | [**get_variables**](flamenco/manager/docs/MetaApi.md#get_variables) | **GET** /api/v3/configuration/variables/{audience}/{platform} | Get the variables of this Manager. Used by the Blender add-on to recognise two-way variables, and for the web interface to do variable replacement based on the browser's platform.
|
||||
*MetaApi* | [**get_version**](flamenco/manager/docs/MetaApi.md#get_version) | **GET** /api/v3/version | Get the Flamenco version of this Manager
|
||||
*MetaApi* | [**save_setup_assistant_config**](flamenco/manager/docs/MetaApi.md#save_setup_assistant_config) | **POST** /api/v3/configuration/setup-assistant | Update the Manager's configuration, and restart it in fully functional mode.
|
||||
*ShamanApi* | [**shaman_checkout**](flamenco/manager/docs/ShamanApi.md#shaman_checkout) | **POST** /api/v3/shaman/checkout/create | Create a directory, and symlink the required files into it. The files must all have been uploaded to Shaman before calling this endpoint.
|
||||
*ShamanApi* | [**shaman_checkout_requirements**](flamenco/manager/docs/ShamanApi.md#shaman_checkout_requirements) | **POST** /api/v3/shaman/checkout/requirements | Checks a Shaman Requirements file, and reports which files are unknown.
|
||||
*ShamanApi* | [**shaman_file_store**](flamenco/manager/docs/ShamanApi.md#shaman_file_store) | **POST** /api/v3/shaman/files/{checksum}/{filesize} | Store a new file on the Shaman server. Note that the Shaman server can forcibly close the HTTP connection when another client finishes uploading the exact same file, to prevent double uploads. The file's contents should be sent in the request body.
|
||||
*ShamanApi* | [**shaman_file_store_check**](flamenco/manager/docs/ShamanApi.md#shaman_file_store_check) | **GET** /api/v3/shaman/files/{checksum}/{filesize} | Check the status of a file on the Shaman server.
|
||||
*WorkerApi* | [**may_worker_run**](flamenco/manager/docs/WorkerApi.md#may_worker_run) | **GET** /api/v3/worker/task/{task_id}/may-i-run | The response indicates whether the worker is allowed to run / keep running the task. Optionally contains a queued worker status change.
|
||||
*WorkerApi* | [**register_worker**](flamenco/manager/docs/WorkerApi.md#register_worker) | **POST** /api/v3/worker/register-worker | Register a new worker
|
||||
*WorkerApi* | [**schedule_task**](flamenco/manager/docs/WorkerApi.md#schedule_task) | **POST** /api/v3/worker/task | Obtain a new task to execute
|
||||
*WorkerApi* | [**sign_off**](flamenco/manager/docs/WorkerApi.md#sign_off) | **POST** /api/v3/worker/sign-off | Mark the worker as offline
|
||||
*WorkerApi* | [**sign_on**](flamenco/manager/docs/WorkerApi.md#sign_on) | **POST** /api/v3/worker/sign-on | Authenticate & sign in the worker.
|
||||
*WorkerApi* | [**task_output_produced**](flamenco/manager/docs/WorkerApi.md#task_output_produced) | **POST** /api/v3/worker/task/{task_id}/output-produced | Store the most recently rendered frame here. Note that it is up to the Worker to ensure this is in a format that's digestable by the Manager. Currently only PNG and JPEG support is planned.
|
||||
*WorkerApi* | [**task_update**](flamenco/manager/docs/WorkerApi.md#task_update) | **POST** /api/v3/worker/task/{task_id} | Update the task, typically to indicate progress, completion, or failure.
|
||||
*WorkerApi* | [**worker_state**](flamenco/manager/docs/WorkerApi.md#worker_state) | **GET** /api/v3/worker/state |
|
||||
*WorkerApi* | [**worker_state_changed**](flamenco/manager/docs/WorkerApi.md#worker_state_changed) | **POST** /api/v3/worker/state-changed | Worker changed state. This could be as acknowledgement of a Manager-requested state change, or in response to worker-local signals.
|
||||
*WorkerMgtApi* | [**create_worker_tag**](flamenco/manager/docs/WorkerMgtApi.md#create_worker_tag) | **POST** /api/v3/worker-mgt/tags | Create a new worker tag.
|
||||
*WorkerMgtApi* | [**delete_worker**](flamenco/manager/docs/WorkerMgtApi.md#delete_worker) | **DELETE** /api/v3/worker-mgt/workers/{worker_id} | Remove the given worker. It is recommended to only call this function when the worker is in `offline` state. If the worker is still running, stop it first. Any task still assigned to the worker will be requeued.
|
||||
*WorkerMgtApi* | [**delete_worker_tag**](flamenco/manager/docs/WorkerMgtApi.md#delete_worker_tag) | **DELETE** /api/v3/worker-mgt/tag/{tag_id} | Remove this worker tag. This unassigns all workers from the tag and removes it.
|
||||
*WorkerMgtApi* | [**fetch_worker**](flamenco/manager/docs/WorkerMgtApi.md#fetch_worker) | **GET** /api/v3/worker-mgt/workers/{worker_id} | Fetch info about the worker.
|
||||
*WorkerMgtApi* | [**fetch_worker_sleep_schedule**](flamenco/manager/docs/WorkerMgtApi.md#fetch_worker_sleep_schedule) | **GET** /api/v3/worker-mgt/workers/{worker_id}/sleep-schedule |
|
||||
*WorkerMgtApi* | [**fetch_worker_tag**](flamenco/manager/docs/WorkerMgtApi.md#fetch_worker_tag) | **GET** /api/v3/worker-mgt/tag/{tag_id} | Get a single worker tag.
|
||||
*WorkerMgtApi* | [**fetch_worker_tags**](flamenco/manager/docs/WorkerMgtApi.md#fetch_worker_tags) | **GET** /api/v3/worker-mgt/tags | Get list of worker tags.
|
||||
*WorkerMgtApi* | [**fetch_workers**](flamenco/manager/docs/WorkerMgtApi.md#fetch_workers) | **GET** /api/v3/worker-mgt/workers | Get list of workers.
|
||||
*WorkerMgtApi* | [**request_worker_status_change**](flamenco/manager/docs/WorkerMgtApi.md#request_worker_status_change) | **POST** /api/v3/worker-mgt/workers/{worker_id}/setstatus |
|
||||
*WorkerMgtApi* | [**set_worker_sleep_schedule**](flamenco/manager/docs/WorkerMgtApi.md#set_worker_sleep_schedule) | **POST** /api/v3/worker-mgt/workers/{worker_id}/sleep-schedule |
|
||||
*WorkerMgtApi* | [**set_worker_tags**](flamenco/manager/docs/WorkerMgtApi.md#set_worker_tags) | **POST** /api/v3/worker-mgt/workers/{worker_id}/settags |
|
||||
*WorkerMgtApi* | [**update_worker_tag**](flamenco/manager/docs/WorkerMgtApi.md#update_worker_tag) | **PUT** /api/v3/worker-mgt/tag/{tag_id} | Update an existing worker tag.
|
||||
|
||||
|
||||
## Documentation For Models
|
||||
|
||||
- [AssignedTask](flamenco\manager\docs/AssignedTask.md)
|
||||
- [AvailableJobSetting](flamenco\manager\docs/AvailableJobSetting.md)
|
||||
- [AvailableJobSettingEvalInfo](flamenco\manager\docs/AvailableJobSettingEvalInfo.md)
|
||||
- [AvailableJobSettingSubtype](flamenco\manager\docs/AvailableJobSettingSubtype.md)
|
||||
- [AvailableJobSettingType](flamenco\manager\docs/AvailableJobSettingType.md)
|
||||
- [AvailableJobSettingVisibility](flamenco\manager\docs/AvailableJobSettingVisibility.md)
|
||||
- [AvailableJobType](flamenco\manager\docs/AvailableJobType.md)
|
||||
- [AvailableJobTypes](flamenco\manager\docs/AvailableJobTypes.md)
|
||||
- [BlenderPathCheckResult](flamenco\manager\docs/BlenderPathCheckResult.md)
|
||||
- [BlenderPathFindResult](flamenco\manager\docs/BlenderPathFindResult.md)
|
||||
- [BlenderPathSource](flamenco\manager\docs/BlenderPathSource.md)
|
||||
- [Command](flamenco\manager\docs/Command.md)
|
||||
- [Error](flamenco\manager\docs/Error.md)
|
||||
- [EventFarmStatus](flamenco\manager\docs/EventFarmStatus.md)
|
||||
- [EventJobUpdate](flamenco\manager\docs/EventJobUpdate.md)
|
||||
- [EventLastRenderedUpdate](flamenco\manager\docs/EventLastRenderedUpdate.md)
|
||||
- [EventLifeCycle](flamenco\manager\docs/EventLifeCycle.md)
|
||||
- [EventTaskLogUpdate](flamenco\manager\docs/EventTaskLogUpdate.md)
|
||||
- [EventTaskUpdate](flamenco\manager\docs/EventTaskUpdate.md)
|
||||
- [EventWorkerTagUpdate](flamenco\manager\docs/EventWorkerTagUpdate.md)
|
||||
- [EventWorkerUpdate](flamenco\manager\docs/EventWorkerUpdate.md)
|
||||
- [FarmStatus](flamenco\manager\docs/FarmStatus.md)
|
||||
- [FarmStatusReport](flamenco\manager\docs/FarmStatusReport.md)
|
||||
- [FlamencoVersion](flamenco\manager\docs/FlamencoVersion.md)
|
||||
- [Job](flamenco\manager\docs/Job.md)
|
||||
- [JobAllOf](flamenco\manager\docs/JobAllOf.md)
|
||||
- [JobBlocklist](flamenco\manager\docs/JobBlocklist.md)
|
||||
- [JobBlocklistEntry](flamenco\manager\docs/JobBlocklistEntry.md)
|
||||
- [JobDeletionInfo](flamenco\manager\docs/JobDeletionInfo.md)
|
||||
- [JobLastRenderedImageInfo](flamenco\manager\docs/JobLastRenderedImageInfo.md)
|
||||
- [JobMassDeletionSelection](flamenco\manager\docs/JobMassDeletionSelection.md)
|
||||
- [JobMetadata](flamenco\manager\docs/JobMetadata.md)
|
||||
- [JobPriorityChange](flamenco\manager\docs/JobPriorityChange.md)
|
||||
- [JobSettings](flamenco\manager\docs/JobSettings.md)
|
||||
- [JobStatus](flamenco\manager\docs/JobStatus.md)
|
||||
- [JobStatusChange](flamenco\manager\docs/JobStatusChange.md)
|
||||
- [JobStorageInfo](flamenco\manager\docs/JobStorageInfo.md)
|
||||
- [JobTasksSummary](flamenco\manager\docs/JobTasksSummary.md)
|
||||
- [JobsQuery](flamenco\manager\docs/JobsQuery.md)
|
||||
- [JobsQueryResult](flamenco\manager\docs/JobsQueryResult.md)
|
||||
- [LifeCycleEventType](flamenco\manager\docs/LifeCycleEventType.md)
|
||||
- [ManagerConfiguration](flamenco\manager\docs/ManagerConfiguration.md)
|
||||
- [ManagerVariable](flamenco\manager\docs/ManagerVariable.md)
|
||||
- [ManagerVariableAudience](flamenco\manager\docs/ManagerVariableAudience.md)
|
||||
- [ManagerVariables](flamenco\manager\docs/ManagerVariables.md)
|
||||
- [MayKeepRunning](flamenco\manager\docs/MayKeepRunning.md)
|
||||
- [PathCheckInput](flamenco\manager\docs/PathCheckInput.md)
|
||||
- [PathCheckResult](flamenco\manager\docs/PathCheckResult.md)
|
||||
- [RegisteredWorker](flamenco\manager\docs/RegisteredWorker.md)
|
||||
- [SecurityError](flamenco\manager\docs/SecurityError.md)
|
||||
- [SetupAssistantConfig](flamenco\manager\docs/SetupAssistantConfig.md)
|
||||
- [ShamanCheckout](flamenco\manager\docs/ShamanCheckout.md)
|
||||
- [ShamanCheckoutResult](flamenco\manager\docs/ShamanCheckoutResult.md)
|
||||
- [ShamanFileSpec](flamenco\manager\docs/ShamanFileSpec.md)
|
||||
- [ShamanFileSpecWithStatus](flamenco\manager\docs/ShamanFileSpecWithStatus.md)
|
||||
- [ShamanFileStatus](flamenco\manager\docs/ShamanFileStatus.md)
|
||||
- [ShamanRequirementsRequest](flamenco\manager\docs/ShamanRequirementsRequest.md)
|
||||
- [ShamanRequirementsResponse](flamenco\manager\docs/ShamanRequirementsResponse.md)
|
||||
- [ShamanSingleFileStatus](flamenco\manager\docs/ShamanSingleFileStatus.md)
|
||||
- [SharedStorageLocation](flamenco\manager\docs/SharedStorageLocation.md)
|
||||
- [SocketIOSubscription](flamenco\manager\docs/SocketIOSubscription.md)
|
||||
- [SocketIOSubscriptionOperation](flamenco\manager\docs/SocketIOSubscriptionOperation.md)
|
||||
- [SocketIOSubscriptionType](flamenco\manager\docs/SocketIOSubscriptionType.md)
|
||||
- [SubmittedJob](flamenco\manager\docs/SubmittedJob.md)
|
||||
- [Task](flamenco\manager\docs/Task.md)
|
||||
- [TaskLogInfo](flamenco\manager\docs/TaskLogInfo.md)
|
||||
- [TaskStatus](flamenco\manager\docs/TaskStatus.md)
|
||||
- [TaskStatusChange](flamenco\manager\docs/TaskStatusChange.md)
|
||||
- [TaskSummary](flamenco\manager\docs/TaskSummary.md)
|
||||
- [TaskUpdate](flamenco\manager\docs/TaskUpdate.md)
|
||||
- [TaskWorker](flamenco\manager\docs/TaskWorker.md)
|
||||
- [Worker](flamenco\manager\docs/Worker.md)
|
||||
- [WorkerAllOf](flamenco\manager\docs/WorkerAllOf.md)
|
||||
- [WorkerList](flamenco\manager\docs/WorkerList.md)
|
||||
- [WorkerRegistration](flamenco\manager\docs/WorkerRegistration.md)
|
||||
- [WorkerSignOn](flamenco\manager\docs/WorkerSignOn.md)
|
||||
- [WorkerSleepSchedule](flamenco\manager\docs/WorkerSleepSchedule.md)
|
||||
- [WorkerStateChange](flamenco\manager\docs/WorkerStateChange.md)
|
||||
- [WorkerStateChanged](flamenco\manager\docs/WorkerStateChanged.md)
|
||||
- [WorkerStatus](flamenco\manager\docs/WorkerStatus.md)
|
||||
- [WorkerStatusChangeRequest](flamenco\manager\docs/WorkerStatusChangeRequest.md)
|
||||
- [WorkerSummary](flamenco\manager\docs/WorkerSummary.md)
|
||||
- [WorkerTag](flamenco\manager\docs/WorkerTag.md)
|
||||
- [WorkerTagChangeRequest](flamenco\manager\docs/WorkerTagChangeRequest.md)
|
||||
- [WorkerTagList](flamenco\manager\docs/WorkerTagList.md)
|
||||
- [WorkerTask](flamenco\manager\docs/WorkerTask.md)
|
||||
- [WorkerTaskAllOf](flamenco\manager\docs/WorkerTaskAllOf.md)
|
||||
- [AssignedTask](flamenco/manager/docs/AssignedTask.md)
|
||||
- [AvailableJobSetting](flamenco/manager/docs/AvailableJobSetting.md)
|
||||
- [AvailableJobSettingEvalInfo](flamenco/manager/docs/AvailableJobSettingEvalInfo.md)
|
||||
- [AvailableJobSettingSubtype](flamenco/manager/docs/AvailableJobSettingSubtype.md)
|
||||
- [AvailableJobSettingType](flamenco/manager/docs/AvailableJobSettingType.md)
|
||||
- [AvailableJobSettingVisibility](flamenco/manager/docs/AvailableJobSettingVisibility.md)
|
||||
- [AvailableJobType](flamenco/manager/docs/AvailableJobType.md)
|
||||
- [AvailableJobTypes](flamenco/manager/docs/AvailableJobTypes.md)
|
||||
- [BlenderPathCheckResult](flamenco/manager/docs/BlenderPathCheckResult.md)
|
||||
- [BlenderPathFindResult](flamenco/manager/docs/BlenderPathFindResult.md)
|
||||
- [BlenderPathSource](flamenco/manager/docs/BlenderPathSource.md)
|
||||
- [Command](flamenco/manager/docs/Command.md)
|
||||
- [Error](flamenco/manager/docs/Error.md)
|
||||
- [EventFarmStatus](flamenco/manager/docs/EventFarmStatus.md)
|
||||
- [EventJobUpdate](flamenco/manager/docs/EventJobUpdate.md)
|
||||
- [EventLastRenderedUpdate](flamenco/manager/docs/EventLastRenderedUpdate.md)
|
||||
- [EventLifeCycle](flamenco/manager/docs/EventLifeCycle.md)
|
||||
- [EventTaskLogUpdate](flamenco/manager/docs/EventTaskLogUpdate.md)
|
||||
- [EventTaskUpdate](flamenco/manager/docs/EventTaskUpdate.md)
|
||||
- [EventWorkerTagUpdate](flamenco/manager/docs/EventWorkerTagUpdate.md)
|
||||
- [EventWorkerUpdate](flamenco/manager/docs/EventWorkerUpdate.md)
|
||||
- [FarmStatus](flamenco/manager/docs/FarmStatus.md)
|
||||
- [FarmStatusReport](flamenco/manager/docs/FarmStatusReport.md)
|
||||
- [FlamencoVersion](flamenco/manager/docs/FlamencoVersion.md)
|
||||
- [Job](flamenco/manager/docs/Job.md)
|
||||
- [JobAllOf](flamenco/manager/docs/JobAllOf.md)
|
||||
- [JobBlocklist](flamenco/manager/docs/JobBlocklist.md)
|
||||
- [JobBlocklistEntry](flamenco/manager/docs/JobBlocklistEntry.md)
|
||||
- [JobDeletionInfo](flamenco/manager/docs/JobDeletionInfo.md)
|
||||
- [JobLastRenderedImageInfo](flamenco/manager/docs/JobLastRenderedImageInfo.md)
|
||||
- [JobMassDeletionSelection](flamenco/manager/docs/JobMassDeletionSelection.md)
|
||||
- [JobMetadata](flamenco/manager/docs/JobMetadata.md)
|
||||
- [JobPriorityChange](flamenco/manager/docs/JobPriorityChange.md)
|
||||
- [JobSettings](flamenco/manager/docs/JobSettings.md)
|
||||
- [JobStatus](flamenco/manager/docs/JobStatus.md)
|
||||
- [JobStatusChange](flamenco/manager/docs/JobStatusChange.md)
|
||||
- [JobStorageInfo](flamenco/manager/docs/JobStorageInfo.md)
|
||||
- [JobTasksSummary](flamenco/manager/docs/JobTasksSummary.md)
|
||||
- [JobsQuery](flamenco/manager/docs/JobsQuery.md)
|
||||
- [JobsQueryResult](flamenco/manager/docs/JobsQueryResult.md)
|
||||
- [LifeCycleEventType](flamenco/manager/docs/LifeCycleEventType.md)
|
||||
- [ManagerConfiguration](flamenco/manager/docs/ManagerConfiguration.md)
|
||||
- [ManagerVariable](flamenco/manager/docs/ManagerVariable.md)
|
||||
- [ManagerVariableAudience](flamenco/manager/docs/ManagerVariableAudience.md)
|
||||
- [ManagerVariables](flamenco/manager/docs/ManagerVariables.md)
|
||||
- [MayKeepRunning](flamenco/manager/docs/MayKeepRunning.md)
|
||||
- [PathCheckInput](flamenco/manager/docs/PathCheckInput.md)
|
||||
- [PathCheckResult](flamenco/manager/docs/PathCheckResult.md)
|
||||
- [RegisteredWorker](flamenco/manager/docs/RegisteredWorker.md)
|
||||
- [SecurityError](flamenco/manager/docs/SecurityError.md)
|
||||
- [SetupAssistantConfig](flamenco/manager/docs/SetupAssistantConfig.md)
|
||||
- [ShamanCheckout](flamenco/manager/docs/ShamanCheckout.md)
|
||||
- [ShamanCheckoutResult](flamenco/manager/docs/ShamanCheckoutResult.md)
|
||||
- [ShamanFileSpec](flamenco/manager/docs/ShamanFileSpec.md)
|
||||
- [ShamanFileSpecWithStatus](flamenco/manager/docs/ShamanFileSpecWithStatus.md)
|
||||
- [ShamanFileStatus](flamenco/manager/docs/ShamanFileStatus.md)
|
||||
- [ShamanRequirementsRequest](flamenco/manager/docs/ShamanRequirementsRequest.md)
|
||||
- [ShamanRequirementsResponse](flamenco/manager/docs/ShamanRequirementsResponse.md)
|
||||
- [ShamanSingleFileStatus](flamenco/manager/docs/ShamanSingleFileStatus.md)
|
||||
- [SharedStorageLocation](flamenco/manager/docs/SharedStorageLocation.md)
|
||||
- [SocketIOSubscription](flamenco/manager/docs/SocketIOSubscription.md)
|
||||
- [SocketIOSubscriptionOperation](flamenco/manager/docs/SocketIOSubscriptionOperation.md)
|
||||
- [SocketIOSubscriptionType](flamenco/manager/docs/SocketIOSubscriptionType.md)
|
||||
- [SubmittedJob](flamenco/manager/docs/SubmittedJob.md)
|
||||
- [Task](flamenco/manager/docs/Task.md)
|
||||
- [TaskLogInfo](flamenco/manager/docs/TaskLogInfo.md)
|
||||
- [TaskStatus](flamenco/manager/docs/TaskStatus.md)
|
||||
- [TaskStatusChange](flamenco/manager/docs/TaskStatusChange.md)
|
||||
- [TaskSummary](flamenco/manager/docs/TaskSummary.md)
|
||||
- [TaskUpdate](flamenco/manager/docs/TaskUpdate.md)
|
||||
- [TaskWorker](flamenco/manager/docs/TaskWorker.md)
|
||||
- [Worker](flamenco/manager/docs/Worker.md)
|
||||
- [WorkerAllOf](flamenco/manager/docs/WorkerAllOf.md)
|
||||
- [WorkerList](flamenco/manager/docs/WorkerList.md)
|
||||
- [WorkerRegistration](flamenco/manager/docs/WorkerRegistration.md)
|
||||
- [WorkerSignOn](flamenco/manager/docs/WorkerSignOn.md)
|
||||
- [WorkerSleepSchedule](flamenco/manager/docs/WorkerSleepSchedule.md)
|
||||
- [WorkerStateChange](flamenco/manager/docs/WorkerStateChange.md)
|
||||
- [WorkerStateChanged](flamenco/manager/docs/WorkerStateChanged.md)
|
||||
- [WorkerStatus](flamenco/manager/docs/WorkerStatus.md)
|
||||
- [WorkerStatusChangeRequest](flamenco/manager/docs/WorkerStatusChangeRequest.md)
|
||||
- [WorkerSummary](flamenco/manager/docs/WorkerSummary.md)
|
||||
- [WorkerTag](flamenco/manager/docs/WorkerTag.md)
|
||||
- [WorkerTagChangeRequest](flamenco/manager/docs/WorkerTagChangeRequest.md)
|
||||
- [WorkerTagList](flamenco/manager/docs/WorkerTagList.md)
|
||||
- [WorkerTask](flamenco/manager/docs/WorkerTask.md)
|
||||
- [WorkerTaskAllOf](flamenco/manager/docs/WorkerTaskAllOf.md)
|
||||
|
||||
|
||||
## Documentation For Authorization
|
||||
|
@ -116,8 +116,7 @@ func (sm *StateMachine) updateJobAfterTaskStatusChange(
|
||||
return sm.jobStatusIfAThenB(ctx, logger, job, api.JobStatusCompleted, api.JobStatusRequeueing, "task was queued")
|
||||
|
||||
case api.TaskStatusPaused:
|
||||
// Pausing a task has no impact on the job.
|
||||
return nil
|
||||
return sm.updateJobOnTaskStatusPaused(ctx, logger, job)
|
||||
|
||||
case api.TaskStatusCanceled:
|
||||
return sm.updateJobOnTaskStatusCanceled(ctx, logger, job)
|
||||
@ -180,6 +179,38 @@ func (sm *StateMachine) updateJobOnTaskStatusCanceled(ctx context.Context, logge
|
||||
return nil
|
||||
}
|
||||
|
||||
// updateJobOnTaskStatusPaused conditionally escalates the pausing of a task to pause the job.
|
||||
func (sm *StateMachine) updateJobOnTaskStatusPaused(ctx context.Context, logger zerolog.Logger, job *persistence.Job) error {
|
||||
// If no more tasks can run, pause the job.
|
||||
numRunnable, _, err := sm.persist.CountTasksOfJobInStatus(ctx, job,
|
||||
api.TaskStatusActive, api.TaskStatusQueued, api.TaskStatusSoftFailed)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if numRunnable == 0 {
|
||||
logger.Info().Msg("paused task was last runnable task of job, pausing job")
|
||||
return sm.JobStatusChange(ctx, job, api.JobStatusPaused, "paused task was last runnable task of job, pausing job")
|
||||
}
|
||||
|
||||
if job.Status == api.JobStatusPauseRequested {
|
||||
// if the job is in pause-requested state, and all other tasks are paused,
|
||||
// then the job can be paused.
|
||||
numPaused, numTotal, err := sm.persist.CountTasksOfJobInStatus(ctx, job, api.TaskStatusPaused)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if numPaused == numTotal {
|
||||
logger.Info().Msg("all tasks of job are paused, job is paused")
|
||||
return sm.JobStatusChange(ctx, job, api.JobStatusPaused, "all tasks paused")
|
||||
}
|
||||
} else {
|
||||
// if the job is not in pause-requested state, then some error occurred and the job should be failed.
|
||||
logger.Info().Msg("task cannot be changed to paused when job is not in pause-requested state")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// updateJobOnTaskStatusFailed conditionally escalates the failure of a task to fail the entire job.
|
||||
func (sm *StateMachine) updateJobOnTaskStatusFailed(ctx context.Context, logger zerolog.Logger, job *persistence.Job) error {
|
||||
// Count the number of failed tasks. If it is over the threshold, fail the job.
|
||||
@ -382,6 +413,13 @@ func (sm *StateMachine) updateTasksAfterJobStatusChange(
|
||||
massTaskUpdate: true,
|
||||
}, err
|
||||
|
||||
case api.JobStatusPauseRequested:
|
||||
jobStatus, err := sm.pauseTasks(ctx, logger, job)
|
||||
return tasksUpdateResult{
|
||||
followingJobStatus: jobStatus,
|
||||
massTaskUpdate: true,
|
||||
}, err
|
||||
|
||||
case api.JobStatusRequeueing:
|
||||
jobStatus, err := sm.requeueTasks(ctx, logger, job, oldJobStatus)
|
||||
return tasksUpdateResult{
|
||||
@ -435,6 +473,37 @@ func (sm *StateMachine) cancelTasks(
|
||||
return "", nil
|
||||
}
|
||||
|
||||
func (sm *StateMachine) pauseTasks(
|
||||
ctx context.Context, logger zerolog.Logger, job *persistence.Job,
|
||||
) (api.JobStatus, error) {
|
||||
logger.Info().Msg("pausing tasks of job")
|
||||
|
||||
// Any task that might run in the future should get paused.
|
||||
// Active jobs should remain active until finished
|
||||
taskStatusesToPause := []api.TaskStatus{
|
||||
api.TaskStatusActive,
|
||||
api.TaskStatusQueued,
|
||||
api.TaskStatusCanceled,
|
||||
}
|
||||
err := sm.persist.UpdateJobsTaskStatusesConditional(
|
||||
ctx, job, taskStatusesToPause, api.TaskStatusPaused,
|
||||
fmt.Sprintf("Manager paused this task because the job got status %q.", job.Status),
|
||||
)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("pausing tasks of job %s: %w", job.UUID, err)
|
||||
}
|
||||
|
||||
// If pause was requested, it has now happened, so the job can transition.
|
||||
if job.Status == api.JobStatusPauseRequested {
|
||||
logger.Info().Msg("all tasks of job paused, job can go to 'paused' status")
|
||||
return api.JobStatusPaused, nil
|
||||
}
|
||||
|
||||
// This could mean pause was triggered by failure of the job, in which case the
|
||||
// job is already in the correct status.
|
||||
return "", nil
|
||||
}
|
||||
|
||||
// requeueTasks re-queues all tasks of the job.
|
||||
//
|
||||
// This function assumes that the current job status is "requeueing".
|
||||
|
@ -1680,6 +1680,7 @@ components:
|
||||
- completed
|
||||
- failed
|
||||
- paused
|
||||
- pause-requested
|
||||
- queued
|
||||
- cancel-requested
|
||||
- requeueing
|
||||
|
455
pkg/api/openapi_spec.gen.go
generated
455
pkg/api/openapi_spec.gen.go
generated
@ -18,233 +18,234 @@ import (
|
||||
// Base64 encoded, gzipped, json marshaled Swagger object
|
||||
var swaggerSpec = []string{
|
||||
|
||||
"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",
|
||||
"AQA=",
|
||||
}
|
||||
|
||||
|
5
pkg/api/openapi_types.gen.go
generated
5
pkg/api/openapi_types.gen.go
generated
@ -84,6 +84,8 @@ const (
|
||||
|
||||
JobStatusFailed JobStatus = "failed"
|
||||
|
||||
JobStatusPauseRequested JobStatus = "pause-requested"
|
||||
|
||||
JobStatusPaused JobStatus = "paused"
|
||||
|
||||
JobStatusQueued JobStatus = "queued"
|
||||
@ -703,6 +705,9 @@ type SubmittedJob struct {
|
||||
// Storage info of a job, which Flamenco can use to remove job-related files when necessary.
|
||||
Storage *JobStorageInfo `json:"storage,omitempty"`
|
||||
|
||||
// Whether to submit this job as paused. This is useful for jobs that should not start immediately, but only after manual intervention.
|
||||
SubmitAsPaused *bool `json:"submit_as_paused,omitempty"`
|
||||
|
||||
// Operating system of the submitter. This is used to recognise two-way variables. This should be a lower-case version of the platform, like "linux", "windows", "darwin", "openbsd", etc. Should be ompatible with Go's `runtime.GOOS`; run `go tool dist list` to get a list of possible platforms.
|
||||
// As a special case, the platform "manager" can be given, which will be interpreted as "the Manager's platform". This is mostly to make test/debug scripts easier, as they can use a static document on all platforms.
|
||||
SubmitterPlatform string `json:"submitter_platform"`
|
||||
|
@ -8,6 +8,9 @@
|
||||
<button class="btn delete dangerous" v-on:click="onButtonDeleteConfirmed">Delete</button>
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn pause" :disabled="!jobs.canPause" v-on:click="onButtonPause">
|
||||
Pause Job
|
||||
</button>
|
||||
<button class="btn cancel" :disabled="!jobs.canCancel" v-on:click="onButtonCancel">
|
||||
Cancel Job
|
||||
</button>
|
||||
|
16
web/app/src/manager-api/model/Job.js
generated
16
web/app/src/manager-api/model/Job.js
generated
@ -100,6 +100,9 @@ class Job {
|
||||
if (data.hasOwnProperty('worker_tag')) {
|
||||
obj['worker_tag'] = ApiClient.convertToType(data['worker_tag'], 'String');
|
||||
}
|
||||
if (data.hasOwnProperty('submit_as_paused')) {
|
||||
obj['submit_as_paused'] = ApiClient.convertToType(data['submit_as_paused'], 'Boolean');
|
||||
}
|
||||
if (data.hasOwnProperty('id')) {
|
||||
obj['id'] = ApiClient.convertToType(data['id'], 'String');
|
||||
}
|
||||
@ -175,6 +178,13 @@ Job.prototype['storage'] = undefined;
|
||||
*/
|
||||
Job.prototype['worker_tag'] = undefined;
|
||||
|
||||
/**
|
||||
* Whether to submit this job as paused. This is useful for jobs that should not start immediately, but only after manual intervention.
|
||||
* @member {Boolean} submit_as_paused
|
||||
* @default false
|
||||
*/
|
||||
Job.prototype['submit_as_paused'] = false;
|
||||
|
||||
/**
|
||||
* UUID of the Job
|
||||
* @member {String} id
|
||||
@ -253,6 +263,12 @@ SubmittedJob.prototype['storage'] = undefined;
|
||||
* @member {String} worker_tag
|
||||
*/
|
||||
SubmittedJob.prototype['worker_tag'] = undefined;
|
||||
/**
|
||||
* Whether to submit this job as paused. This is useful for jobs that should not start immediately, but only after manual intervention.
|
||||
* @member {Boolean} submit_as_paused
|
||||
* @default false
|
||||
*/
|
||||
SubmittedJob.prototype['submit_as_paused'] = false;
|
||||
// Implement JobAllOf interface:
|
||||
/**
|
||||
* UUID of the Job
|
||||
|
7
web/app/src/manager-api/model/JobStatus.js
generated
7
web/app/src/manager-api/model/JobStatus.js
generated
@ -54,6 +54,13 @@ export default class JobStatus {
|
||||
"paused" = "paused";
|
||||
|
||||
|
||||
/**
|
||||
* value: "pause-requested"
|
||||
* @const
|
||||
*/
|
||||
"pause-requested" = "pause-requested";
|
||||
|
||||
|
||||
/**
|
||||
* value: "queued"
|
||||
* @const
|
||||
|
10
web/app/src/manager-api/model/SubmittedJob.js
generated
10
web/app/src/manager-api/model/SubmittedJob.js
generated
@ -84,6 +84,9 @@ class SubmittedJob {
|
||||
if (data.hasOwnProperty('worker_tag')) {
|
||||
obj['worker_tag'] = ApiClient.convertToType(data['worker_tag'], 'String');
|
||||
}
|
||||
if (data.hasOwnProperty('submit_as_paused')) {
|
||||
obj['submit_as_paused'] = ApiClient.convertToType(data['submit_as_paused'], 'Boolean');
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
@ -141,6 +144,13 @@ SubmittedJob.prototype['storage'] = undefined;
|
||||
*/
|
||||
SubmittedJob.prototype['worker_tag'] = undefined;
|
||||
|
||||
/**
|
||||
* Whether to submit this job as paused. This is useful for jobs that should not start immediately, but only after manual intervention.
|
||||
* @member {Boolean} submit_as_paused
|
||||
* @default false
|
||||
*/
|
||||
SubmittedJob.prototype['submit_as_paused'] = false;
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -18,6 +18,9 @@ export const useTasks = defineStore('tasks', {
|
||||
activeTaskID: '',
|
||||
}),
|
||||
getters: {
|
||||
canPause() {
|
||||
return this._anyTaskWithStatus(['active', 'queued', 'cancelled']);
|
||||
},
|
||||
canCancel() {
|
||||
return this._anyTaskWithStatus(['queued', 'active', 'soft-failed']);
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user