Commit Graph

54 Commits

Author SHA1 Message Date
0c0df41f5d Job status change system for SocketIO broadcasts
Not fully tested yet.
2022-04-05 15:52:55 +02:00
781f1d936a OAPI: add jobs query endpoint 2022-04-04 18:53:19 +02:00
99852838d2 OAPI: fix job submission example
It now works with the current simple-blend-render compiler script again.
2022-04-04 18:24:50 +02:00
80ffc7da5d OAPI: use GET instead of OPTIONS to get file info from Shaman
OPTIONS is used by browser for CORS pre-flight requests.
2022-04-01 15:52:17 +02:00
5f16201832 OAPI: expose effective job storage path in configuration API 2022-04-01 14:01:22 +02:00
724938c7ae Shaman: allow Manager to determine the final checkout path
The checkout request now responds with the final checkout path. This makes
it possible for the Manager to ensure the checkout is unique.
2022-03-25 14:10:26 +01:00
eeeec23f43 Cleanup, fix typo in OAPI description 2022-03-25 14:10:26 +01:00
c69e0909ae Shaman submission is working! 2022-03-25 14:10:26 +01:00
21227c8046 More Shaman integration work
- Addon switches between filesystem-packing and Shaman-packing
  automatically, depending on whether the Manager has Shaman enabled.
- Actually using BAT for Shaman packing.

It doesn't work though, some error occurs when receiving Shaman response
from the Manager in the Addon.
2022-03-25 14:10:26 +01:00
f9b7510c42 Streamlining Shaman protocol further, plus rough implementation for addon 2022-03-25 14:10:26 +01:00
b2288e7f28 Manager: More work on Shaman support
This introduces some more conceptual changes to Shaman. The most important
one is that there is no longer a "checkout ID", but a "checkout path".
The Shaman client can request any subpath of the checkout directory,
so that it can handle things like project- or scene-specific prefixes.
2022-03-25 14:10:26 +01:00
2b0d154a07 Manager: more work on Shaman integration 2022-03-25 14:10:26 +01:00
6f35b3303d Manager: more work on porting Shaman code to Flamenco 3 2022-03-25 14:10:26 +01:00
4df0543661 Manager: Implementation of Shaman OAPI interface
This hooks up the OpenAPI Shaman endpoints to a Shaman interface. This
interface doesn't have any implementation yet.
2022-03-25 14:10:26 +01:00
Sybren A. Stüvel
4e8e71e4e2 Initial checkin of Shaman of Flamenco 2
This is not yet working, it's just a direct copy of the Manager of Flamenco
2, with Logrus replaced by Zerolog. The API has been documented in
flamenco-manager.yaml as a starting point for the integration.
2022-03-25 14:10:26 +01:00
09a476e11a Compute render output path when evaluating job settings
Compute render output path when evaluating job settings, which is done
within the Flamenco add-on, instead of in the job compiler script. This
allows the UI to show the render path, rather than it only being known
after the job has been submitted.
2022-03-15 16:56:44 +01:00
a6ac331612 Allow Python evaluation for computing job settings in the addon 2022-03-14 18:44:39 +01:00
7b090bdbd6 OAPI: job submission endpoint now returns Job instead of SubmittedJob 2022-03-14 16:59:59 +01:00
76ba0a201b OAPI: remove Configuration component schema
Nothing was using the `Configuration` schema, so I removed it from the
flamenco-manager.yaml OpenAPI definition file.
2022-03-14 14:40:16 +01:00
7181c2c4cf OAPI: allow job settings to have a tooltip/description 2022-03-11 17:30:27 +01:00
282f91243b OAPI: replace placeholder description of 'jobs' tag 2022-03-10 15:45:56 +01:00
416fa9bd28 OAPI: add 'meta' tag for /api/version endpoint 2022-03-10 15:45:46 +01:00
78927c2c31 OAPI: put quotes around description with comma
The comma was interpreted as property separator, and not as part of the
'description' property value.
2022-03-10 15:41:48 +01:00
d0b677ffe3 Add API endpoint /api/version to get the Flamenco Manager version
This will be used in the auto-discovery, to check that a discovered URL can
actually be reached & points to a Flamenco Manager.
2022-03-08 13:56:43 +01:00
9f5e4cc0cc License: license all code under "GPL-3.0-or-later"
The add-on code was copy-pasted from other addons and used the GPL v2
license, whereas by accident the LICENSE text file had the GNU "Affero" GPL
license v3 (instead of regular GPL v3).

This is now all streamlined, and all code is licensed as "GPL v3 or later".

Furthermore, the code comments just show a SPDX License Identifier
instead of an entire license block.
2022-03-07 15:26:46 +01:00
cd2fe8170e Errors: remove "error" prefix from message
Instead of returning an error "error doing X", just return "doing X". The
fact that it's returned as an error object says enough about that it's
an error.

This also makes it easier to chain error messages, without seeing the
word "error" in every part of the chain.
2022-03-04 11:30:31 +01:00
df77d09aa6 Start of a task/job state machine
The task status change → job status change code is a direct port of the
Flamenco Server v2 code written in Python.

There is no job status change → task status changes logic yet, and the
tests are also far from complete.
2022-02-24 16:42:38 +01:00
ef2bbd2845 Unified Command field names
Some parts of Flamenco had a Command consist of "name + settings", and
other parts used "type + parameters" (with the same semantics). This is
now unified to "name + parameters".
2022-02-21 18:03:51 +01:00
270c54fdb7 More status change acks & checks to get stable flow between worker states 2022-02-15 17:46:37 +01:00
50088b4c94 Save worker info on sign-on (not just on registration) 2022-02-15 10:57:29 +01:00
7586be010b API changes for sending task updates to the Manager 2022-02-14 18:01:32 +01:00
97ab93d996 Initial task scheduler implementation 2022-02-01 17:17:19 +01:00
7c14b2648d Much more of the Worker life cycle implemented 2022-01-31 15:02:05 +01:00
c501899185 Ported lots of stuff from gitlab.com/dr.sybren/flamenco-worker-go
Much isn't working though.
2022-01-28 17:02:50 +01:00
28a56f3d91 Store workers in database when registering 2022-01-28 15:31:39 +01:00
0629728ce9 Add frame chunker and make unit test for simple blender render succeed 2022-01-13 16:32:08 +01:00
6aed4e71ff Check for valid UUIDs; probably a good idea to write some validator for this 2022-01-11 18:45:09 +01:00
5af238eb21 Explicitly mention certain string fields are UUIDs 2022-01-11 18:39:53 +01:00
54933d0262 API: add Fetch Job endpoint
This is made with plain sqlite. It's probably a good idea to move to
something like GORM instead.
2022-01-11 18:38:14 +01:00
f0ae7d33e9 Connect API, job compiler, and persistence layer 2022-01-11 18:07:34 +01:00
e971c4aaed Expand job settings definitions
Add `subtype` and `editable` fields:

- `subtype`: to distinguish between regular strings, file paths, dir paths,
  etc.
- `editable`: To indicate a setting should be editale after submitting the
  job. Editing will trigger re-compilation of the job.
2022-01-11 14:35:57 +01:00
Sybren A. Stüvel
d0fafb5063 Make the GET /api/jobs/types endpoint work 2022-01-10 17:45:20 +01:00
Sybren A. Stüvel
b605330c57 API for getting supported job types from the Manager
Not yet hooked up to the job compiler, only reports one hard-coded job
type.
2022-01-10 17:45:13 +01:00
Sybren A. Stüvel
7728c072ae Add copyright notices
No functional changes.
2022-01-10 17:45:13 +01:00
Sybren A. Stüvel
847fc918db Rename flamenco.go to generate.go
The only thing the file is for is to ensure `go generate` runs
`oapi-codegen`.

No functional changes.
2022-01-10 17:45:13 +01:00
Sybren A. Stüvel
d6638ce114 Track generated files with Git
The OpenAPI-generated files can be used by 3rd parties as well. This
makes them available at `gitlab.com/blender/flamenco-goja-test/pkg/api`.
2022-01-10 17:45:13 +01:00
Sybren A. Stüvel
3d2263c177 API: group worker-related endpoints 2022-01-10 17:45:13 +01:00
Sybren A. Stüvel
f43673aaa7 Move the API implementation to the internal package
The server implementation is private, not something that's suitable for
reuse.
2022-01-10 17:45:13 +01:00
Sybren A. Stüvel
082e2e69d6 Add authentication to worker 2022-01-10 17:45:13 +01:00
Sybren A. Stüvel
ad75b5c705 Cleanup: Move some files around
No functional changes
2022-01-10 17:45:13 +01:00