413 Commits

Author SHA1 Message Date
Sybren A. Stüvel
7a19e2f38d Manager: use absolute storage path
This helps to get things consistent on Windows and Linux. Otherwise a path
like `/some/path` is absolute on one platform but not on the other. This is
mostly for getting the unit tests in this package to work on Windows, but
using absolute paths also helps in clarity of error logging.
2022-04-09 12:03:11 +02:00
Sybren A. Stüvel
7f5978a0f2 Use go install instead of go get to install code generators 2022-04-09 11:50:24 +02:00
Sybren A. Stüvel
cc20b850ec Worker: separate contexts of upstream buffer
The upstream buffer takes care of two things: communication with Flamenco
Manager (first context) and buffering things in a SQLite database (second
context). This commit separates those two contexts, so that shutting down
the application isn't going to prevent buffering things in the database.
2022-04-08 16:49:53 +02:00
Sybren A. Stüvel
959a235c59 Worker: don't log error when rolling back already-committed transaction 2022-04-08 16:48:28 +02:00
Sybren A. Stüvel
f155715d12 Web: re-fetch jobs after reconnecting to backend
If the backend connection was lost, and then obtained again, just fetch
all available jobs to ensure the presented data is fresh.
2022-04-08 15:03:04 +02:00
Sybren A. Stüvel
e7fc2c6f6e Worker: add various extra error checks 2022-04-08 14:47:20 +02:00
Sybren A. Stüvel
1960b668aa Cleanup: remove unused code 2022-04-08 14:47:07 +02:00
Sybren A. Stüvel
2e2205c00e Manager: return error from sendAPIError()
Small bugfix.
2022-04-08 14:46:36 +02:00
Sybren A. Stüvel
2830d1eda8 Update FEATRURES.md 2022-04-08 14:34:38 +02:00
Sybren A. Stüvel
62ea7dcf1d Worker: avoid task errors on shutdown
When shutting down, the main worker context closes. This causes the
subprocess to be killed, which in turn caused a task execution error. This
now no longer happens, as such errors are expected on shutdown and do not
indicate task failure.
2022-04-08 14:32:25 +02:00
Sybren A. Stüvel
96e5e84881 Web: proper updating & sorting of jobs in Tabulator 2022-04-08 13:08:53 +02:00
Sybren A. Stüvel
def1778aa6 Debug echo job: sleep for a shorter time 2022-04-08 12:05:30 +02:00
Sybren A. Stüvel
9ec39b0b41 Web: import moment.js in a way Tabulator can find 2022-04-08 12:05:14 +02:00
Sybren A. Stüvel
06bf3c0482 Cleanup: manager, fix copy-paste from original OpenAPI example code 2022-04-08 12:04:58 +02:00
Sybren A. Stüvel
863ecee954 OAPI: regenerate OpenAPI code 2022-04-08 12:04:34 +02:00
Sybren A. Stüvel
930d7497d7 OAPI: Better 'SQLITE_BUSY' error handling
SQLite can return `SQLITE_BUSY` errors when it's doing too many things at
the same time. This is now improved a bit by setting a 5-second timeout,
during which the SQLite driver will wait for the database to become
available. If that doesn't happen, Flamenco Manager will return a
`503 Service Unavailable` response so that the client knows to back off
a little.
2022-04-08 12:02:30 +02:00
Sybren A. Stüvel
89e130c04f Manager: update tests for inclusion of job name in job updates 2022-04-08 11:59:30 +02:00
Sybren A. Stüvel
3078d22836 Web: format job update timestamp with moment.js 2022-04-07 18:53:16 +02:00
Sybren A. Stüvel
df3f7b44b9 Hook up web interface to job updates 2022-04-07 18:46:09 +02:00
Sybren A. Stüvel
888d93147e Web: add Tabulator vue component 2022-04-07 17:38:48 +02:00
Sybren A. Stüvel
528dec9c50 Web: allow setting title of webapp
Moving `static/*` to `public/*` actually made Vue pick up our `index.html`,
and allow us to set the app title.
2022-04-07 16:14:29 +02:00
Sybren A. Stüvel
0a9f0c43f6 Web: send messages & job updates to the chat window 2022-04-05 17:42:45 +02:00
Sybren A. Stüvel
dcb9eb0bca Regenerate OpenAPI code to get clean version number 2022-04-05 17:29:25 +02:00
Sybren A. Stüvel
2fb3b4d615 Update README for clarity & to document more about the web frontend 2022-04-05 17:28:19 +02:00
Sybren A. Stüvel
a476f39365 Manager: improve SocketIO event handling & logging 2022-04-05 16:34:32 +02:00
Sybren A. Stüvel
fdab07d987 Worker: slight clarification of error message 2022-04-05 16:28:22 +02:00
Sybren A. Stüvel
27e954090c FEATURES: add 'clean requeue of task when shutting down' to worker list 2022-04-05 16:27:51 +02:00
Sybren A. Stüvel
a715b3bfbe Manager: connect SocketIO broadcaster with job creation 2022-04-05 16:19:33 +02:00
Sybren A. Stüvel
0c0df41f5d Job status change system for SocketIO broadcasts
Not fully tested yet.
2022-04-05 15:52:55 +02:00
Sybren A. Stüvel
c875745bd4 Manager: better SocketIO error checking & logging 2022-04-05 12:18:50 +02:00
Sybren A. Stüvel
5e5fa57fa4 OAPI: tweak the JS generator to do more what we want 2022-04-04 19:33:46 +02:00
Sybren A. Stüvel
2b1e6c54a8 OAPI: generate Python and JS clients for jobs query endpoint 2022-04-04 18:54:31 +02:00
Sybren A. Stüvel
a35a767ddb Remove web/manager-api/package-lock.json
Apparently it's not generated any more.
2022-04-04 18:53:59 +02:00
Sybren A. Stüvel
781f1d936a OAPI: add jobs query endpoint 2022-04-04 18:53:19 +02:00
Sybren A. Stüvel
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
Sybren A. Stüvel
89d00dcba5 Manager: use logger from context instead of constructing a new one
This makes the logs more consistent, and any log that's bound to a HTTP
request will have info about that request.
2022-04-04 16:57:41 +02:00
Sybren A. Stüvel
bff5e30421 Worker: use defaults for partial configuration
Instead of having a full "defaults OR the loaded config" (where a partial
config file would thus have the nil value for missing properties) the
missing properties now retain their default value.
2022-04-04 16:56:52 +02:00
Sybren A. Stüvel
0f2477370f Remove SocketIO PoC
Remove SocketIO proof of concept, as its code has been integrated into
Flamenco Manager.
2022-04-04 16:27:15 +02:00
Sybren A. Stüvel
96cd064533 JS: failed attempt at connecting to a dynamic endpoint URL
It works for the API calls, but fails to forward the URL to the Vue app
instance.
2022-04-01 16:54:47 +02:00
Sybren A. Stüvel
e990603311 OAPI: Add generated JavaScript API client
This adds a JS client for the OAPI interface, and introduces the SocketIO
stuff into Flamenco Manager itself.

To build & run:
- in `web/manager-api` run `npm install`
- in `web/manager-api` run `npm link`
- in `web/app` run `npm install`
- in `web/app` run `npm link flamenco-manager`
- in `web/app` run `yarn serve`

This may not be a complete list, but at least some of those steps are
necessary.
2022-04-01 16:40:54 +02:00
Sybren A. Stüvel
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
Sybren A. Stüvel
979792d17f Git-ignore the new default Flamenco storage directory 2022-04-01 14:30:44 +02:00
Sybren A. Stüvel
dcc0acd8b0 Cleanup: remove unused import 2022-04-01 14:28:51 +02:00
Sybren A. Stüvel
12e6211fc9 Addon: get storage directory from Manager
Get the job storage location from the Manager, don't allow editing it, and
don't allow per-scene overrides.
2022-04-01 14:28:43 +02:00
Sybren A. Stüvel
5f16201832 OAPI: expose effective job storage path in configuration API 2022-04-01 14:01:22 +02:00
Sybren A. Stüvel
7214a73e19 Manager: enable Shaman by default, except on Windows 2022-04-01 13:46:51 +02:00
Sybren A. Stüvel
e70dad2177 Manager: unify Flamenco and Shaman storage paths
Flamenco Manager now has a "storage path" config option, which will be
used by Shaman if enabled. Now the `{jobs}` implicit variable will always
exist, its value depending on whether Shaman is enabled or not.
2022-04-01 13:43:51 +02:00
Sybren A. Stüvel
f61522f396 Manager: simplify config processing 2022-04-01 13:31:50 +02:00
Sybren A. Stüvel
0284dc4e4d Manager: move actually-used config options up in the struct
There are a bunch of should-be-implemented options commented out, and the
actually-used options shouldn't be in between those.

No functional changes.
2022-04-01 13:02:22 +02:00
Sybren A. Stüvel
ed8c02ad69 Manager: rename settings.go to config.go
The package is named `config` and the struct `Conf`, so `config.go` is just
a more sensible name.

No functional changes.
2022-04-01 12:51:41 +02:00