2136 Commits

Author SHA1 Message Date
Mateus Abelli
4aa391c679 Webapp: Fix superfluous null comparison
Remove the superfluous comparison to `(null || '')`. Just compare to
the empty string instead.

Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104307
Reviewed-by: Sybren A. Stüvel <sybren@blender.org>
2024-05-13 16:21:34 +02:00
Sybren A. Stüvel
ae0774b440 Manager: add unit tests
Add a few more unit tests for the persistence layer. The goal is to have
100% coverage of the happy flow, to aid in conversion from GORM to sqlc.

No functional changes.
2024-05-11 10:35:17 +02:00
Sybren A. Stüvel
df334deca5 Add shellSplit(someString) function to the job compiler scripts
Add a function `shellSplit(string)` to the global namespace of job
compiler scripts. It splits a string into an array of strings using
shell/CLI semantics.

For example: `shellSplit("--python-expr 'print(1 + 1)'")` will return
`["--python-expr", "print(1 + 1)"]`.
2024-05-07 12:39:13 +02:00
Sybren A. Stüvel
c5ae2916db Add label to job settings
This gives job type authors more control over how settings are presented
in Blender's job submission GUI. If a job setting does not define a
label, its `key` is used to generate one (like Flamenco 3.5 and older).

Note that this isn't used in the web interface yet.
2024-05-07 11:58:44 +02:00
Sybren A. Stüvel
5ee4871e39 OAPI: regenerate code 2024-05-07 11:55:56 +02:00
Sybren A. Stüvel
e712e9450c OAPI: add label to AvailableJobSetting 2024-05-07 11:54:49 +02:00
Sybren A. Stüvel
2146388abe Website: reword the 'worker cannot find manager' FAQ entry
Reword so that the section starts with the suggestion that each problem
has a solution. And make it an enumerated list to clarify the structure
of the answer.
2024-05-06 11:16:01 +02:00
MrJW
153cfe7b5c Improve Troubleshooting FAQ: Add firewall and antivirus check
Updated the troubleshooting section of the FAQ to include guidance on checking the firewall and potential third-party antivirus issues when the Worker cannot connect to the Manager. This enhances the user experience by addressing common connectivity issues more comprehensively.
2024-05-04 18:19:44 +02:00
Sybren A. Stüvel
fde20af852 Changelog: mark 3.6 as 'in development' 2024-04-24 17:52:17 +02:00
Sybren A. Stüvel
85d7cb07e7 Website: bump experimental version to 3.6-alpha0 2024-04-24 17:46:05 +02:00
Sybren A. Stüvel
68ac3c03e3 Add-on: compatibility with Python 3.9
Remove some Python 3.10 features to make the add-on compatible with py39.
This is the Python version that's bundled with Blender 2.93 LTS, for which
I got a request to see if it could be supported.

The Blender version still isn't officially supported, but this should make
things at least not immediately fail.
2024-04-24 17:32:01 +02:00
Sybren A. Stüvel
d279f91549 Bumped version to 3.6-alpha0 2024-04-24 17:32:01 +02:00
Sybren A. Stüvel
f7aef5bfca Changelog: add link to MQTT documentation 2024-04-16 11:16:27 +02:00
Sybren A. Stüvel
b4cc9db2db Mark 3.5 as released today 2024-04-16 11:13:45 +02:00
Sybren A. Stüvel
bb772841b7 Revert "Bumped version to 3.6-alpha0"
This reverts commit 7f14e6705d69d05e1bcae3a9ff64dbf2541c47b5. v3.5 still
needs today's date as release date in the changelog.
2024-04-16 11:12:48 +02:00
Sybren A. Stüvel
7f14e6705d Bumped version to 3.6-alpha0 2024-04-16 11:11:54 +02:00
Sybren A. Stüvel
81de246b48 Bumped version to 3.5 2024-04-16 11:03:27 +02:00
Sybren A. Stüvel
c90c1c1260 Website: bump available download version to 3.5 2024-04-16 11:02:40 +02:00
Sybren A. Stüvel
94fba20ef6 Worker: reduce log level of some internal components
Reduce the log level from 'info' to 'debug' on some internal components
of Flamenco Worker. This makes the console output slightly less noisy,
and it's unlikely that these particular messages are commonly needed.
2024-04-16 10:53:29 +02:00
Sybren A. Stüvel
30c92d2854 Website: document when the oom_score_adjust option was added 2024-04-16 10:46:04 +02:00
Sybren A. Stüvel
e2bca9ad61 Worker: add configuration for Linux out-of-memory killer
Add a Worker configuration option to configure the Linux out-of-memory
behaviour. Add `oom_score_adjust=500` to `flamenco-worker.yaml` to increase
the chance that Blender gets killed when the machine runs out of memory,
instead of Flamenco Worker itself.
2024-04-15 17:21:11 +02:00
Sybren A. Stüvel
3974770f36 Manager: refuse to delete workers without foreign key constraints
As a safety measure, refuse to delete Workers from the Manager's database
when foreign key constraints are disabled.

In the long term, the underlying problem should be solved. This is a stop-
gap measure to ensure database consistency.
2024-04-12 10:48:40 +02:00
Sybren A. Stüvel
6c28db780f Manager: refuse to delete worker tags without foreign key constraints
Before deleting a Worker Tag, check that foreign key constraints are
active for the current database connection.

Sometimes GORM decides to create a new database connection by itself,
without telling us, and then foreign key constraints are not active on
it. This commit is a workaround to avoid database corruption.
2024-04-12 10:48:40 +02:00
Sybren A. Stüvel
b313a2020d Refactor: Manager, move some test code into a function of its own
Move some of the Worker Tags test code into a function of its own, to have
a clearer separation between 'the test' and 'what needs to happen to do
this part of the test'.

Also it'll make an upcoming change easier to implement.

No functional changes.
2024-04-12 10:48:40 +02:00
Sybren A. Stüvel
05e35a1cc5 Update Changelog 2024-04-11 15:02:24 +02:00
William Gardner
ea68faa577 Web: improve URL handling to allow for TLS/SSL
Explicitly use the `--mode` flag for the webapp development server
(`vite`) to make the web frontend choose the appropriate HTTP and
WebSocket port to communicate with the backend. This also makes sure
that when accessing the frontend via `https://`, the websocket
connection uses `wss://`.

As a side-effect, this also makes port `:8081` usable in production
environments; it would assume it was the development server and try to
access the backend on port `:8080`.

Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104296
Reviewed-by: Sybren A. Stüvel <sybren@blender.org>
2024-04-11 15:00:48 +02:00
Sybren A. Stüvel
9ee9c07e76 Website: link to 3rd party bug tracker for 3rd party scripts
3rd part job compiler scripts should have their own tracker and handle
their own bug reports.
2024-04-11 10:55:00 +02:00
Sybren A. Stüvel
e83db45192 Website: sillicon builds are included, not "will be" included 2024-04-06 10:19:38 +02:00
Sybren A. Stüvel
7b139be605 Website: remove link to old Flamenco v2 documentation
The documentation itself has disappeared from the website, and it already
was obsolete for a long time anyway.
2024-04-04 20:37:48 +02:00
Sybren A. Stüvel
d799372639 Website: bump experimental version to 3.5-beta1 2024-04-04 11:18:03 +02:00
Taylor Wiebe
a0cb8735c9 Manager: add optional description to job types
This description will be shown as a tooltip in the job submission UI.
2024-04-04 11:12:42 +02:00
Taylor Wiebe
2bbb7b48d2 OAPI: regenerate code 2024-04-04 11:12:39 +02:00
Taylor Wiebe
03a889345d OAPI: add optional description to job types
This description will be shown as a tooltip in the job submission UI.
2024-04-04 11:08:55 +02:00
Sybren A. Stüvel
cfad4e73f9 Bumped version to 3.5-beta1 2024-04-04 10:54:53 +02:00
Sybren A. Stüvel
3b21437776 Website: bump experimental version to 3.5-beta0 2024-04-04 10:47:23 +02:00
Sybren A. Stüvel
f757deee6a Security: Bump Go version 1.22.2 and golang.org/x/net package
Fix a bunch of security issues by upgrading to Go 1.22.2 and bumping
a few packages to their secure versions.

- [Incorrect forwarding of sensitive headers and cookies on HTTP redirect in net/http](https://pkg.go.dev/vuln/GO-2024-2600)
- [Memory exhaustion in multipart form parsing in net/textproto and net/http](https://pkg.go.dev/vuln/GO-2024-2599)
- [Verify panics on certificates with an unknown public key algorithm in crypto/x509](https://pkg.go.dev/vuln/GO-2024-2600)
- [HTTP/2 CONTINUATION flood in net/http](https://pkg.go.dev/vuln/GO-2024-2687)
2024-04-04 10:44:57 +02:00
Sybren A. Stüvel
bce84bf175 Bumped version to 3.5-beta0 2024-04-04 10:38:42 +02:00
Mateus Abelli
43a452e940 Website: Update the required Go version to Latest 2024-03-25 15:10:36 +01:00
Sybren A. Stüvel
c3b8707390 Worker: reduce log level of 'Blender could not be found' to info level
There's still some confusion that this is a thing to solve, whereas it can
usually safely be ignored. Reduced the log level from Warn to Info to make
the message look more innocent.
2024-03-18 22:39:55 +01:00
Sybren A. Stüvel
00dfbc10b6 Worker: link to FAQ entry when the worker cannot be found 2024-03-18 22:38:20 +01:00
Sybren A. Stüvel
63a578688e Make make test fail fast
Pass `-failfast` to the `go test` command, so that it immediately stops
on test failure. This prevents the need to scroll back to see the actual
error, at the expense of only seeing one failure at a time.
2024-03-16 12:14:41 +01:00
Sybren A. Stüvel
b219f9b1c2 Manager tests: replace assert.NoError() with require.NoError()
Back in the days when I wrote the code, I didn't know about the
`require` package yet. Using `require.NoError()` makes the test code
more straight-forward.

No functional changes, except that when tests fail, they now fail
without panicking.
2024-03-16 12:14:39 +01:00
Sybren A. Stüvel
3f4a9025fe Manager tests: replace assert.NoError() with require.NoError()
Back in the days when I wrote the code, I didn't know about the
`require` package yet. Using `require.NoError()` makes the test code
more straight-forward.

No functional changes, except that when tests fail, they now fail
without panicking.
2024-03-16 11:09:18 +01:00
Sybren A. Stüvel
1fee086cef Website: add MQTT prefix to table of MQTT topics 2024-03-13 19:16:40 +01:00
Sybren A. Stüvel
bd3dd90303 Update CHANGELOG.md
Add recent add-on improvements.
2024-03-13 19:13:37 +01:00
Sybren A. Stüvel
041f792594 Website: document Flamenco's MQTT support 2024-03-13 19:10:51 +01:00
Sybren A. Stüvel
5c60561ddb Website: allow separate page title for TOC
You can now set a page title and a separate title for the table of
contents with:

```
---
title: "Manager Configuration: MQTT"
titleTOC: MQTT
---
```
2024-03-13 18:42:52 +01:00
Sybren A. Stüvel
a23c95a738 Update CHANGELOG.md 2024-03-13 18:29:35 +01:00
Sybren A. Stüvel
91890541a2 Webapp: change Tabulator layout mode to fitDataFill
Change the Tabulator layout mode from `fitData` to `fitDataFill`. The new
value adjusts the layout when the data has changed.
2024-03-13 18:23:41 +01:00
Sybren A. Stüvel
3aec8b15ef Add-on: avoid console spam about the scene's job type property
Avoid these warnings on the console:

```
WARN (bpy.rna): source/blender/python/intern/bpy_rna.cc:1339
  pyrna_enum_to_py: current value '0' matches no enum in 'Scene', 'Scene',
  'flamenco_job_type'
```

The solution was two-fold:
- Use a non-empty string as the identifier for the 'Select a Job Type'
  choice.
- Give the property a default value.
2024-03-11 14:32:29 +01:00