Sybren A. Stüvel
e57de8ab53
Manager: Tests, allow mocking requests that are not Worker-authenticated
2022-03-25 16:10:50 +01:00
Sybren A. Stüvel
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
Sybren A. Stüvel
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
Sybren A. Stüvel
f9b7510c42
Streamlining Shaman protocol further, plus rough implementation for addon
2022-03-25 14:10:26 +01:00
Sybren A. Stüvel
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
Sybren A. Stüvel
2b0d154a07
Manager: more work on Shaman integration
2022-03-25 14:10:26 +01:00
Sybren A. Stüvel
6f35b3303d
Manager: more work on porting Shaman code to Flamenco 3
2022-03-25 14:10:26 +01:00
Sybren A. Stüvel
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
c5a2a23f6e
Manager: reduce log levels
2022-03-17 11:47:53 +01:00
Sybren A. Stüvel
93616cef3a
Manager: reduce log level of "worker requesting task"
2022-03-17 10:53:00 +01:00
Sybren A. Stüvel
7b090bdbd6
OAPI: job submission endpoint now returns Job instead of SubmittedJob
2022-03-14 16:59:59 +01:00
Sybren A. Stüvel
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
Sybren A. Stüvel
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
Sybren A. Stüvel
47e36c927c
Change package URL to the blender.org repository
2022-03-01 20:45:09 +01:00
Sybren A. Stüvel
bbc6a3f69e
Tweak some logging
2022-03-01 17:28:24 +01:00
Sybren A. Stüvel
7689a988b1
Manager: re-queue tasks of worker when signing off
2022-02-28 12:06:50 +01:00
Sybren A. Stüvel
32af1ffaef
Manager: actually pass context to Gorm queries
2022-02-28 11:53:31 +01:00
Sybren A. Stüvel
3d854078ba
Manager: integrate task state machine into API implementation
2022-02-25 16:30:27 +01:00
Sybren A. Stüvel
17e622ebc3
Some build & filename tweaks to allow building from scratch again
...
The build chain got a bit confused when doing things from scratch, as
`test_support.go` was used in the non-test builds. Renaming it to
`support_test.go` was the easiest way to avoid that.
2022-02-25 16:17:49 +01:00
Sybren A. Stüvel
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
Sybren A. Stüvel
64db518f15
Cleanup: remove unused code
2022-02-24 12:36:29 +01:00
Sybren A. Stüvel
7e776167bb
Manager: use api.TaskStatus in persistence layer as well
2022-02-24 11:53:05 +01:00
Sybren A. Stüvel
f0215e20b8
Cleanup: move license block
2022-02-21 20:11:52 +01:00
Sybren A. Stüvel
b3b132fd44
Fix task update unit test
2022-02-21 20:11:19 +01:00
Sybren A. Stüvel
d198e228b7
Manager: perform variable replacement on scheduled tasks
2022-02-21 19:58:13 +01:00
Sybren A. Stüvel
90a2140b8c
Manager: store task logs to disk
2022-02-21 19:47:07 +01:00
Sybren A. Stüvel
ae5846b3d9
Manager config: remove 'mode' and change 'variable audience' to custom type
...
The 'variable audience' indicates the audience of a 'task variable'.
2022-02-21 18:50:24 +01:00
Sybren A. Stüvel
12481a47e7
Start of configuration/settings framework, including variable replacement
2022-02-21 18:09:45 +01:00
Sybren A. Stüvel
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
Sybren A. Stüvel
1756369b70
Cleanup: add comments
2022-02-21 15:41:00 +01:00
Sybren A. Stüvel
bb53cc1e4a
Task log storage service
2022-02-18 18:19:35 +01:00
Sybren A. Stüvel
77c5650665
Cleanup: move imports to the right place
2022-02-18 17:25:20 +01:00
Sybren A. Stüvel
5b4625b5f9
Rename logging.go to zerolog.go
2022-02-18 11:58:18 +01:00
Sybren A. Stüvel
399c8af750
Correctly handle workers assigned to tasks + simple task updates
2022-02-17 17:30:52 +01:00
Sybren A. Stüvel
31e39e2137
Cleanup: remove fmt.Sprintf from sendAPIError calls
2022-02-17 17:30:27 +01:00
Sybren A. Stüvel
0ab8151a92
Move code out of main.go and add better check for OpenAPI paths
2022-02-17 13:58:10 +01:00
Sybren A. Stüvel
270c54fdb7
More status change acks & checks to get stable flow between worker states
2022-02-15 17:46:37 +01:00
Sybren A. Stüvel
c4df62d5d4
Start of sending task updates to Manager
...
This includes a mocking framework for unittests.
2022-02-15 15:58:24 +01:00
Sybren A. Stüvel
93517549b0
Manager: actually return worker state in /api/worker/state endpoint
2022-02-15 15:56:38 +01:00
Sybren A. Stüvel
50088b4c94
Save worker info on sign-on (not just on registration)
2022-02-15 10:57:29 +01:00
Sybren A. Stüvel
4aafb782ac
Scheduler: Assign task to worker
2022-02-14 17:47:26 +01:00
Sybren A. Stüvel
3ffef34690
Allow sendAPIError()
to be used like fmt.Sprintf
2022-02-14 16:53:40 +01:00
Sybren A. Stüvel
eea219c3e2
Move task scheduler into persistence layer
2022-02-14 16:53:21 +01:00
Sybren A. Stüvel
a9790ec579
API: return job from DB instead of authored job
...
The authored job has tasks & commands in there, which shouldn't be sent
as-is as an API response. Marshalling the task pointers for the
inter-task dependencies would potentially produce quite large responses.
2022-02-14 15:03:17 +01:00
Sybren A. Stüvel
8063a3e169
Cleanup: remove unused code
2022-02-01 16:22:21 +01:00
Sybren A. Stüvel
e598397ba4
Persistence: move some DB to API struct conversion to API implementation
2022-02-01 16:22:10 +01:00
Sybren A. Stüvel
2ca8858c28
Only update status field in DB when worker changes status
2022-02-01 10:16:10 +01:00
Sybren A. Stüvel
be89349632
Very basic non-functional framework for a task runner
...
Also has some login/logout functionality for storing stuff in the DB.
2022-01-31 16:05:27 +01:00
Sybren A. Stüvel
d3071146da
Better logging of worker info
2022-01-31 15:35:57 +01:00
Sybren A. Stüvel
d880f7e7f0
Worker authentication is working
2022-01-31 15:27:13 +01:00