1711 Commits

Author SHA1 Message Date
Sybren A. Stüvel
3a16456d5b Web app: add job deletion button to job action bar
WARNING: There is no confirmation popup yet, it'll immediately schedule
the job for deletion.
2023-01-08 13:53:55 +01:00
Sybren A. Stüvel
a97a4e6e67 Manager: show delete-requested jobs in the web interface
Show jobs that have been marked for deletion with a red strike-through
line in the jobs table, and show the deletion-request timestamp in the
job details.
2023-01-08 13:52:27 +01:00
Sybren A. Stüvel
067f2a439e OAPI: regenerate code 2023-01-08 13:47:38 +01:00
Sybren A. Stüvel
4b489dbde7 OAPI: add delete_requested_at in Job schema
If job deletion was requested, this field will contain the timestamp that
indicates when the request came in.
2023-01-08 13:45:57 +01:00
Sybren A. Stüvel
416138fd70 Manager: add test for QueryJobs() API function
No functional changes.
2023-01-08 13:15:30 +01:00
Sybren A. Stüvel
791d877ff1 Manager: implement API endpoint for deleting jobs
Implement the `deleteJob` API endpoint. Calling this endpoint will mark
the job as "deletion requested", after which it's queued for actual
deletion. This makes the API response fast, even when there is a lot of
work to do in the background.

A new background service "job deleter" keeps track of the queue of such
jobs, and performs the actual deletion. It removes:

- Shaman checkout for the job (but see below)
- Manager-local files of the job (task logs, last-rendered images)
- The job itself

The removal is done in the above order, so the job is only removed from the
database if the rest of the removal was succesful.

Shaman checkouts are only removed if the job was submitted with Flamenco
version 3.2. Earlier versions did not record enough information to reliably
do this.
2023-01-04 01:18:21 +01:00
Sybren A. Stüvel
2e5f5ffadd OAPI: regenerate code 2023-01-04 01:18:21 +01:00
Sybren A. Stüvel
23afbfbea2 OAPI: add operation deleteJob 2023-01-04 01:18:21 +01:00
Sybren A. Stüvel
f413a40f4e Store Shaman checkout ID when submitting a job
If Shaman is used to submit the job files, store the job's checkout ID
(i.e. the path relative to the checkout root) in the database. This will
make it possible in the future to remove the Shaman checkout along with
the job itself.
2023-01-04 01:18:21 +01:00
Sybren A. Stüvel
bb41889f1c OAPI: regenerate code 2023-01-04 01:18:21 +01:00
Sybren A. Stüvel
014c0d3b3d OAPI: add field to Job schemas to record storage info
Add fields to the job schemas (`SubmittedJob` and `Job`) to allow
storing the shaman checkout ID (so the Shaman checkout can be deleted
along with the job later).
2023-01-04 01:18:21 +01:00
Sybren A. Stüvel
7f268f2177 Add-on: abort submission when job preparation fails
Job preparation (that is, constructing the data to be sent to the Flamenco
API) shouldn't fail, but in case it does, it should stop the rest of the
submission process.
2023-01-04 01:18:21 +01:00
Sybren A. Stüvel
a5e8ae81e9 gitignore SQLite files
Ignore `*.sqlite-shm` and `*.sqlite-wal` files. These are used by SQLite
for shared memory and write-ahead logging.
2023-01-04 00:44:43 +01:00
Sybren A. Stüvel
354119e237 Update CHANGELOG.md 2023-01-03 16:32:11 +01:00
Sybren A. Stüvel
6aea02c904 Fix T103516: max image size for previews is set too low
Manager had a limit of 10 MB, but the Worker can produce images that are
larger than that (even after down-scaling the image). I've bumped the
limit to 25 MB, which should be enough (it's 2x the bug reporter's file
size).
2023-01-03 16:28:28 +01:00
Sybren A. Stüvel
2df5a1089a Fix T102707: Flamenco Manager crash on frame range without hyphen
The "invalid range" error reporting had an infinite loop, causing a crash.
This is now resolved.
2023-01-03 16:16:44 +01:00
Sybren A. Stüvel
84470eeb81 Bump Blender Asset Tracer (BAT) to version 1.15
Bump BAT from 1.14 to 1.15 to add support for fluid sim caches.
2022-12-16 15:28:52 +01:00
Sybren A. Stüvel
9bda21648e Manager: add timeout when fetching job
Add a timeout when fetching a job from the persistence layers.

It's my intention to add more timeouts, so this also introduces some code
to make it easier to test that a context has a deadline set.
2022-12-14 13:02:59 +01:00
Sybren A. Stüvel
c16c1f4b15 Refactor: deduplicate job fetching code
Deduplicate API implementation code to fetch a job from the persistence
service.

Almost no functional changes. Checking that the requested job UUID is
actually a valid UUID is now consistently done on all fetches. This is
not a functional change in normal Flamenco operations, where only valid
UUIDs are used anyway.
2022-12-14 13:02:59 +01:00
Sybren A. Stüvel
f93c66edb3 Documentation: no longer mention Bootstrap as dependency
The web app doesn't use Bootstrap, so it shouldn't be mentioned in the
docs.
2022-12-06 16:46:14 +01:00
Sybren A. Stüvel
80fee0837b Documentation: expand the 'Variables' page
Expand the 'Variables' page so that it links to the two-way variables
page from within the body of text. Having the link in only the side-bar
was too easy to miss.
2022-12-06 12:57:30 +01:00
Sybren A. Stüvel
9dbeddba35 Documentation: remove use of "expandable" sections
Move the "Custom Job Types" expandable section to its own, normal
section.

The expandable sections in the docs aren't that clear, visually. It's
easy to miss that they can be expanded. This was the only use of this
feature.
2022-12-06 12:47:42 +01:00
Sybren A. Stüvel
4ef5373756 Add-on: add support for the use_all_linked_data_direct option
Add support for Blender's `use_all_linked_data_direct` experimental
option. This is a workaround for an issue with BAT, for which a quick
solution is required by the Blender Studio (production crunch).

Flamenco writes the `.flamenco.blend` file with
`preferences.experimental.use_all_linked_data_direct` set to `True`, so
that BAT has an easier time finding linked assets.
2022-12-02 14:31:23 +01:00
Sybren A. Stüvel
21b2114505 Website: fix incorrect header in FAQ 2022-11-30 13:10:52 +01:00
Sybren A. Stüvel
51e1657f93 Website: add entry to FAQ about SyncThing/Dropbox/etc.
In short: such setups are not supported.
2022-11-30 13:09:46 +01:00
Sybren A. Stüvel
15e3745820 Manager: SQLite WAL journal + NORMAL sync mode
Run `PRAGMA journal_mode = WAL` and `PRAGMA synchronous = normal` when
connecting to the SQLite database. This enables the write-ahead-log journal
mode, which makes it safe to enable "normal" synchronisation (instead of
the default "full" synchronisation).
2022-11-24 17:18:06 +01:00
Sybren A. Stüvel
71605381c8 Update CHANGELOG 2022-11-22 18:24:27 +01:00
Sybren A. Stüvel
4b1cf740e9 Cleanup: worker, rename blenderPID to subprocPID
Remove 'blender' from a variable name, since this is actually generic
code and not Blender-specific.
2022-11-22 17:33:16 +01:00
Sybren A. Stüvel
ced826581a Worker: make sure long lines are broken on character boundaries
When a command (like `blender` or `ffmpeg`) outputs lines that are longer
than our buffer, they are broken into buffer-sized chunks. Extra code has
been added to ensure those chunks consist of valid UTF-8 characters.
2022-11-22 17:31:47 +01:00
Sybren A. Stüvel
fe8b6e025e Fix link in "Report a Bug" button 2022-11-21 18:14:00 +01:00
Sybren A. Stüvel
75592d12d3 Fix T102188: Add bug reporting URL to Flamenco "Get Involved" page 2022-11-21 18:01:51 +01:00
Sybren A. Stüvel
e700e0efdf Website: move exclamation mark outside of link text 2022-11-11 16:55:14 +01:00
Sybren A. Stüvel
4adff44477 Fix T102193: website, broken link to 'get involved' page 2022-11-11 16:55:02 +01:00
Sybren A. Stüvel
982dca0d4e Fix FFmpeg wanting to use JPEG files when rendering PNG
The preview video task would attempt to use JPEG preview files when the
"Preview" checkbox is checked, even when this checkbox is not shown in
Blender's UI (when the output format is not EXR). Blender still stores
this property, even when it's unused, and that's what tripped up the job
compiler.

The "Simple Blender Render" job type now first checks whether the previews
are necessary at all, and only then uses them.
2022-11-10 14:10:03 +01:00
Yann Doersam
1cef0d48df Addon: Show error if the file path is not known before submitting
If file has never been saved, Flamenco cannot create a temp copy to
submit. This caused an exception, which is now avoided by showing a
clear error message instead.

Maniphest Tasks: T102192

Differential Revision: https://developer.blender.org/D16358
2022-11-08 11:48:10 +01:00
Sybren A. Stüvel
f75a8f4c65 Website: remove the "what is new" link
Remove the "what is new" link, because it's not that relevant for a quick-
start page. Also it got lost a bit between the videos and felt out of
place.
2022-11-05 10:29:19 +01:00
Sybren A. Stüvel
c174951cd2 Website: remove "videos coming soon" promise
They may or may not be coming soon.
2022-11-05 10:28:40 +01:00
Sybren A. Stüvel
7816f218d5 Website: add BCON22 presentation to quickstart
Add the Blender Conference presentation video to the Quickstart page.
2022-11-05 10:27:57 +01:00
Sybren A. Stüvel
b23d2c2a89 Website: better explanation of non-Shaman storage options 2022-11-05 10:26:10 +01:00
Sybren A. Stüvel
249307d6c3 Update CHANGELOG.md 2022-10-20 13:20:02 +02:00
Sybren A. Stüvel
074c60df9d Cleanup: add-on, reformat with black
No functional changes.
2022-10-20 13:14:51 +02:00
Sybren A. Stüvel
32a3e48e24 Add-on: use job check endpoint before sending files to the farm 2022-10-20 13:14:01 +02:00
Sybren A. Stüvel
7a60bb70e0 Manager: implement job check endpoint 2022-10-20 13:13:35 +02:00
Sybren A. Stüvel
c439bc3a1e OAPI: regenerate code 2022-10-20 13:13:22 +02:00
Sybren A. Stüvel
cdd304ffdb OAPI: add endpoint for a pre-flight job check
Add an endpoint that mimicks the job submission endpoint, to see whether
the job survives the job compiler script. This can be used to fail early,
before actually sending files to the farm.
2022-10-20 13:13:03 +02:00
Sybren A. Stüvel
73dd8c7d78 Cleanup: pass submittedJob as pointer to two-way variable replacer
The two-way variable replacement function changes the submitted job. To
clarify that this happens, pass the pointer `&submittedJob`.

Both pass-by-pointer and pass-by-value work, because the variable
replacement typically works on maps/slices, which are passed by reference
anyway. Better to be explicit about this, though.

No functional changes.
2022-10-20 12:55:01 +02:00
Sybren A. Stüvel
e77bd9b841 Fix workers immediately switching state on a lazy request
Fix an issue where workers would switch immediately on a state change
request, even if it was of the "after task is finished" kind.

The "may I keep running" endpoint wasn't checking the lazyness flag, and
thus any state change, lazy or otherwise, would interrupt the worker's
current task.
2022-10-20 12:30:37 +02:00
Sybren A. Stüvel
ad0fea241d Simple blender render: hide has_previews from web interface
It was useful for debugging, but not really needed for artists.
2022-10-20 12:18:00 +02:00
Sybren A. Stüvel
f1c4211d2b FFmpeg preview video: add missing switch to .jpg extension
One line was missing from rF43bc22f10fae.
2022-10-20 12:17:34 +02:00
Sybren A. Stüvel
0fce4b42fb Update CHANGELOG.md 2022-10-20 12:12:29 +02:00