Commit Graph

469 Commits

Author SHA1 Message Date
e9212de196 Worker: simplify "context done" checks 2022-04-09 16:57:39 +02:00
d98dbaa333 Worker: implement ffmpeg for frame-to-video conversion on Windows 2022-04-09 16:20:29 +02:00
38aedfe8cc Worker: make blender-finder find blender.exe and not blender-launcher.exe
`blender-launcher.exe` doesn't pipe Blender's stdout/stderr output, so it's
not useful for Flamenco.
2022-04-09 16:16:19 +02:00
0959179225 Worker: redirect stderr to stdout at the right moment
It should be done after stdout has been assigned a pipe, and not before.
2022-04-09 16:14:44 +02:00
4181708709 Worker: automatically find Blender on Windows via file association
On Windows, when the Manager doesn't explicitly point at a Blender to use,
use the the application associated with `.blend` files instead.
2022-04-09 15:05:34 +02:00
bf47afc32b Worker: reduce log level of "fetching tasks" message 2022-04-09 12:52:28 +02:00
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
7f5978a0f2 Use go install instead of go get to install code generators 2022-04-09 11:50:24 +02:00
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
959a235c59 Worker: don't log error when rolling back already-committed transaction 2022-04-08 16:48:28 +02:00
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
e7fc2c6f6e Worker: add various extra error checks 2022-04-08 14:47:20 +02:00
1960b668aa Cleanup: remove unused code 2022-04-08 14:47:07 +02:00
2e2205c00e Manager: return error from sendAPIError()
Small bugfix.
2022-04-08 14:46:36 +02:00
2830d1eda8 Update FEATRURES.md 2022-04-08 14:34:38 +02:00
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
96e5e84881 Web: proper updating & sorting of jobs in Tabulator 2022-04-08 13:08:53 +02:00
def1778aa6 Debug echo job: sleep for a shorter time 2022-04-08 12:05:30 +02:00
9ec39b0b41 Web: import moment.js in a way Tabulator can find 2022-04-08 12:05:14 +02:00
06bf3c0482 Cleanup: manager, fix copy-paste from original OpenAPI example code 2022-04-08 12:04:58 +02:00
863ecee954 OAPI: regenerate OpenAPI code 2022-04-08 12:04:34 +02:00
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
89e130c04f Manager: update tests for inclusion of job name in job updates 2022-04-08 11:59:30 +02:00
3078d22836 Web: format job update timestamp with moment.js 2022-04-07 18:53:16 +02:00
df3f7b44b9 Hook up web interface to job updates 2022-04-07 18:46:09 +02:00
888d93147e Web: add Tabulator vue component 2022-04-07 17:38:48 +02:00
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
0a9f0c43f6 Web: send messages & job updates to the chat window 2022-04-05 17:42:45 +02:00
dcb9eb0bca Regenerate OpenAPI code to get clean version number 2022-04-05 17:29:25 +02:00
2fb3b4d615 Update README for clarity & to document more about the web frontend 2022-04-05 17:28:19 +02:00
a476f39365 Manager: improve SocketIO event handling & logging 2022-04-05 16:34:32 +02:00
fdab07d987 Worker: slight clarification of error message 2022-04-05 16:28:22 +02:00
27e954090c FEATURES: add 'clean requeue of task when shutting down' to worker list 2022-04-05 16:27:51 +02:00
a715b3bfbe Manager: connect SocketIO broadcaster with job creation 2022-04-05 16:19:33 +02:00
0c0df41f5d Job status change system for SocketIO broadcasts
Not fully tested yet.
2022-04-05 15:52:55 +02:00
c875745bd4 Manager: better SocketIO error checking & logging 2022-04-05 12:18:50 +02:00
5e5fa57fa4 OAPI: tweak the JS generator to do more what we want 2022-04-04 19:33:46 +02:00
2b1e6c54a8 OAPI: generate Python and JS clients for jobs query endpoint 2022-04-04 18:54:31 +02:00
a35a767ddb Remove web/manager-api/package-lock.json
Apparently it's not generated any more.
2022-04-04 18:53:59 +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
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
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
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
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
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
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
979792d17f Git-ignore the new default Flamenco storage directory 2022-04-01 14:30:44 +02:00
dcc0acd8b0 Cleanup: remove unused import 2022-04-01 14:28:51 +02:00
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