89 Commits

Author SHA1 Message Date
Sybren A. Stüvel
90a2140b8c Manager: store task logs to disk 2022-02-21 19:47:07 +01:00
Sybren A. Stüvel
5b0e11acdc Cleanup: some smaller renames & small function return type change 2022-02-21 19:32:12 +01:00
Sybren A. Stüvel
2e0f44b947 Manager: add missing job type name in job types list 2022-02-21 19:31:37 +01:00
Sybren A. Stüvel
b986fa49d8 Worker: clean up some logging 2022-02-21 19:07:20 +01:00
Sybren A. Stüvel
b1b73de4ee Manager: Actually load config, and use in a few places 2022-02-21 19:02: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
66ae9b3a64 Job persistence test: create authored job with explicit status 2022-02-21 18:04:52 +01:00
Sybren A. Stüvel
e5e466931b Worker: better way to get array command parameters 2022-02-21 18:04:17 +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
6a7545f334 Check author.Task() parameters
Check author.Task() parameters, and refuse tasks with empty name or type.
2022-02-21 15:49:23 +01:00
Sybren A. Stüvel
e03e111603 Cleanup: move license declaration comment 2022-02-21 15:42:15 +01:00
Sybren A. Stüvel
1756369b70 Cleanup: add comments 2022-02-21 15:41:00 +01:00
Sybren A. Stüvel
6bd1a86337 Start of DB initialisation functions
Not properly working yet
2022-02-21 15:25:56 +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
9eaae2451b Rename command_exe_test.go to command_misc_test.go 2022-02-18 11:45:37 +01:00
Sybren A. Stüvel
00571ad480 Worker: allow float64 for sleep duration
The sleep will still be truncated to entire seconds.
2022-02-18 11:45:24 +01:00
Sybren A. Stüvel
f6437be844 Worker: implement fail/completed/log task updates 2022-02-18 11:41:46 +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
3057a009e7 Worker: better handling of task update errors 2022-02-17 14:02:45 +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
ff73f325c8 Worker: clearer errors when listener call fails 2022-02-17 13:58:10 +01:00
Sybren A. Stüvel
fef0a3cb17 Worker: Remove 3rd party code for adding Basic HTTP auth header 2022-02-17 13:58:10 +01:00
Sybren A. Stüvel
66c052d9fd Move worker config, sign-on, and registration code into worker package
This makes the `main.go` file simpler, and not depend on any other files
in the `main` package. For some reason, the debugger really likes this.
2022-02-17 13:58:10 +01:00
Sybren A. Stüvel
71edb139dd Start working on blender-render command
The command doesn't actually execute anything yet.
2022-02-17 13:58:10 +01:00
Sybren A. Stüvel
3723e89f23 Extract commands into a file based on their "command type" 2022-02-17 10:54:34 +01:00
Sybren A. Stüvel
ecd658d50d Cleanup: shorten filename from ..._executor.go to ..._exe.go 2022-02-17 10:52:47 +01:00
Sybren A. Stüvel
e539d04320 Cleanup: remove unused code 2022-02-17 10:49:43 +01:00
Sybren A. Stüvel
4f184a546f Use gomock to test command executor listener
This also requires that `TaskID` is no longer a custom type, because that
would cause import cycles. The alternative would be to put the generated
mocks directly into the `worker` package, but I didn't think that was
particularly nice. Maybe this'll be reconsidered later.
2022-02-17 10:47:52 +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
9543d6221b Wrap error with %w 2022-02-15 15:56:54 +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
d6df00db3e Worker: Fix code flow in 'asleep' state 2022-02-15 15:56:15 +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
aa41ae2ba2 Worker: remove fixed error returns from listener 2022-02-14 18:01:48 +01:00
Sybren A. Stüvel
0457809641 Scheduler: filter on supported task types & assigned worker ID 2022-02-14 18:00:43 +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
d0be631bca New job compiler: echo-sleep-test 2022-02-14 15:07:20 +01:00
Sybren A. Stüvel
8e01c069d1 DB: task dependencies should be cascade-deleted with their tasks 2022-02-14 15:07:14 +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
f5254c1c65 Change sleep 'time_in_seconds' to 'duration_in_seconds' 2022-02-14 14:54:03 +01:00
Sybren A. Stüvel
8af041fe44 Cleanup: remove some unused code & add some comments 2022-02-14 14:47:54 +01:00
Sybren A. Stüvel
22f2084e89 Unit tests for 'echo' and 'sleep' commands 2022-02-14 14:47:41 +01:00
Sybren A. Stüvel
ad4313b93f Untested command runner with 'sleep' and 'echo' commands 2022-02-11 17:09:58 +01:00