Commit Graph

177 Commits

Author SHA1 Message Date
d170cda3ae OAPI: change task log fetching from providing the log to providing metadata
The task log API endpoint was loading the entire log into RAM, then sending
it as response. This makes display in a browser also a bit harder.

The API endpoint now returns some JSON with info about the task log,
including its size and which URL can be used to download it.

Manifest task: T99730
2022-07-16 12:52:23 +02:00
e2434b44f2 OAPI: regenerate code 2022-07-16 11:11:34 +02:00
7521bff1a7 OAPI: add operation to read the entire task log
Manifest task: T99730
2022-07-16 11:05:58 +02:00
f9a3d3864a OAPI: regenerate code 2022-07-14 17:26:26 +02:00
f2438a89a7 OAPI: operation to save config from First-Time Wizard 2022-07-14 17:25:37 +02:00
898019cf1d OAPI: regenerate code 2022-07-14 12:22:13 +02:00
186dd06401 OAPI: endpoints for finding & checking Blender executables
These will be used in the first-time wizard.
2022-07-14 12:19:59 +02:00
e4a38f071c OAPI: regenerate code 2022-07-14 11:16:59 +02:00
597e9fd5d4 OAPI: add operations for the First Time Wizard
Manifest task: T99437
2022-07-14 11:16:30 +02:00
ae2cb281b4 OAPI: regenerate code 2022-07-08 11:35:57 +02:00
f9acb3f413 OAPI: add operation for getting variables from the Manager
This operation takes the platform & audience, and returns the variables
that are applicable for that combination. This can then be used by the
web frontend or by the Blender add-on to do variable replacement.
2022-07-08 11:33:41 +02:00
4c8ab01dae OAPI: regenerate code 2022-07-04 12:49:26 +02:00
b34fee514a OAPI: include worker's "last seen" timestamp
Include the worker's "last seen" timestamp in the worker summary, details,
and SocketIO updates.

This is different from the "updated" timestamp, which indicates the last
time the worker entry in the database was updated (which could also be
in response to a status change request from the web interface).
2022-07-04 12:47:25 +02:00
5537f2c07c OAPI: regenerate code 2022-07-04 12:12:45 +02:00
9daecf2b45 OAPI: version all API URLs with /v3/
Change all API URL paths from `/api/…` to `/api/v3/…`. This ensures that
old Flamenco v2 clients/workers stop working when the new Manager is in
place. This also allows redirecting API calls based on the URL, also for
future upgrades.
2022-07-04 12:11:58 +02:00
30f7df5259 OAPI: change Shaman URL paths from /shaman/… to /api/shaman/…
This makes all OpenAPI URLs start with `/api/`.
2022-07-04 12:09:19 +02:00
801fa20f12 OAPI: regenerate code 2022-07-01 12:32:42 +02:00
60f3f5482d OAPI: add operation & SocketIO subscription for global last-rendered img
Add an operation to get the last-rendered image from whatever job received
such output from a Worker, and add a SocketIO subscription type to receive
updates about all jobs' last-rendered images.

These are necessary for a global last-rendered image display.
2022-07-01 12:31:18 +02:00
56463fa3ec OAPI: regenerate code 2022-06-30 19:19:38 +02:00
cca8155894 OAPI: add 204 as "nothing rendered" response to fetchJobLastRenderedInfo
Add a "204 No Content" response to the `fetchJobLastRenderedInfo` operation,
indicating that there is no rendered output yet.
2022-06-30 19:18:52 +02:00
123674cf57 OAPI: regenerate code 2022-06-30 18:33:36 +02:00
c9500b85c2 OAPI: add SocketIOLastRenderedUpdate for broadcasting last-rendered imgs
`SocketIOLastRenderedUpdate` objects are meant to be broadcast to SocketIO
clients (i.e. the web interface). They are sent to the job-specific room,
just like task updates.
2022-06-30 18:32:42 +02:00
668e25fe95 OAPI: regenerate code 2022-06-28 17:07:08 +02:00
5d30459359 OAPI: add endpoint to get URLs of last-rendered images of a job 2022-06-28 17:05:52 +02:00
fb89658530 Refactor: replace os.IsNotExist() with errors.Is(err, fs.ErrNotExist()
`os.IsNotExist()` is from before `errors.Is()` existed. The latter is the
recommended approach, as it also recognised wrapped errors.

No functional changes, except for recognising more cases of "does not
exist" errors as such.
2022-06-28 10:24:46 +02:00
1353d1df0f OAPI: regenerate code 2022-06-27 11:32:12 +02:00
a084f6e2a4 OAPI: add operations for fetching blocklist & removing individual items 2022-06-27 11:30:37 +02:00
3d20a89bf5 Add last-in-one-out queue
Add an abstract queue that outputs only the last-queued item.
Items that were queued before the last one will be dropped.

This will be used for handling the last-rendered images. Any images
that are rendered while an image is already uploading should be ignored,
except the last one.
2022-06-27 11:30:37 +02:00
167b2eaf45 OAPI: regenerate code 2022-06-24 16:39:50 +02:00
4e9950a143 OAPI: add endpoint for sending Last Rendered Output to Manager 2022-06-24 16:38:49 +02:00
fd730351b5 Crosspath: add IsRoot(path) bool function
Add a function that can determine whether the given path is considered
a "root path". Considers `/`, `X:`, `X:\` and `X:/` root paths, where `X`
is any upper or lower case Latin letters.
2022-06-23 16:40:46 +02:00
7f14dac62f OAPI: regenerate code 2022-06-17 11:37:54 +02:00
aaed1e0589 OAPI: include task failure list in Task schema
Include the list of workers who failed this task in the `Task` schema.
2022-06-17 11:37:28 +02:00
61aad21e99 OAPI: regenerate code 2022-06-16 11:02:04 +02:00
55676b000e OAPI: change worker 'nickname' to just 'name'
There was no need to have the extra four letters 'nick', and some parts
of the code were already using just 'name' for the workers. This simplifies
and unifies things.
2022-06-16 11:01:27 +02:00
1c9846bb8f OAPI: regenerate code 2022-06-09 11:59:32 +02:00
f020582bf7 OpenAPI: include last_touched in Task schema
Include the timestamp of when a Worker last touched the task in the OpenAPI
`Task` schema.
2022-06-09 11:59:01 +02:00
cf8b4e18b1 OAPI: regenerate code 2022-06-02 16:25:38 +02:00
31e128d7f5 OAPI: remove shutdown worker state
Remove the `shutdown` worker state. It was only used in Flamenco 2 to
signal to the worker that it should go offline. In other words, it didn't
use the target state in the request.

As of this change, just send `offline` as the requested state for the
worker if you want it to go offline.
2022-06-02 16:19:26 +02:00
9ca14cd471 OAPI: regenerate code 2022-06-02 12:16:51 +02:00
0d50a7eae5 OAPI: clean, remove unnecessary quotes 2022-06-02 12:16:14 +02:00
169aa3ddc3 OAPI: extract worker status request fields into their own struct
Instead of always passing `status_requested` and `lazy_status_request`
in tandem, and requiring one when the other is present, they are now
always passed as a struct `WorkerStatusChangeRequest`. This struct has
both fields required.

`WorkerStatusChangeRequest` already existed, and is now altered by changing
its field `status_requested` to simply `status` -- the fact that it's
requested is already clear from the context.
2022-06-02 12:16:03 +02:00
fdb0b82664 OAPI: regenerate code 2022-05-31 17:19:06 +02:00
cfb17b178d OAPI: allow worker status change requests
This also introduces the 'lazy' status change boolean, which indicates
whether the status change should interrupt the worker's current task
(lazy=false), or only take effect after the task is finished (lazy=true).
2022-05-31 17:17:37 +02:00
90707dceed OAPI: regenerate code 2022-05-31 15:30:26 +02:00
d82333635a OAPI: define Worker schema as extension of WorkerSummary
This makes their relation clearer. This also moves the `version` field
into the `WorkerSummary` schema.
2022-05-31 15:29:54 +02:00
1f49880b7f OAPI: regenerate code 2022-05-31 15:18:48 +02:00
3b2f58dd27 OAPI: add allWorkers SocketIO subscription type 2022-05-31 15:17:39 +02:00
0fc0d1d0e0 OAPI: regenerate code 2022-05-31 14:58:49 +02:00
221ed17fa2 OAPI: Allow explicit SocketIO subscription to "all jobs"
When the web interface is showing the Workers list, it should no longer
get updates about jobs. A new subscription type `allJobs` is added, and
the `uuid` field of the subscription is no longer mandatory.
2022-05-31 14:58:09 +02:00