Sybren A. Stüvel
33b5faff2b
Addon: fix MyPy errors
2022-03-14 17:00:12 +01:00
Sybren A. Stüvel
7b090bdbd6
OAPI: job submission endpoint now returns Job instead of SubmittedJob
2022-03-14 16:59:59 +01:00
Sybren A. Stüvel
f6e636f8de
Addon: cleanup, prefix TYPE_CHECKING imports with underscores
...
Prefix anything that's imported in an `if TYPE_CHECKING` block with
underscores, to indicate they're not the real types.
2022-03-14 16:35:21 +01:00
Sybren A. Stüvel
b993f38889
Addon: store available job types on scene
...
Storing the available job types on the Scene makes it possible to restore
the Flamenco job submission UI without communication with the Manager.
2022-03-14 15:36:44 +01:00
Sybren A. Stüvel
c8ae856131
Features: add reminder to hide custom RNA options
2022-03-14 14:40:27 +01:00
Sybren A. Stüvel
76ba0a201b
OAPI: remove Configuration component schema
...
Nothing was using the `Configuration` schema, so I removed it from the
flamenco-manager.yaml OpenAPI definition file.
2022-03-14 14:40:16 +01:00
Sybren A. Stüvel
ad3750dfbe
Addon: cleanup, split propgroup generator from job type code
2022-03-14 14:39:10 +01:00
Sybren A. Stüvel
2e78e00a0b
Manager: don't log an error when the config file doesn't exist
...
The configuration file is expected to not exist on many systems, and
thus logging an error (even when it's a very innocent one) will cause
confusion.
2022-03-14 13:00:27 +01:00
Sybren A. Stüvel
c3cd119e21
Addon: start of generating OAPI SubmittedJob object
...
Work in progress.
2022-03-11 17:30:27 +01:00
Sybren A. Stüvel
a803edcce4
Addon: bundle BAT and start of interfacing with it
...
The add-on can now create BAT packs, but still only at a hard-coded path.
2022-03-11 17:30:27 +01:00
Sybren A. Stüvel
d18f5d25c5
Addon: store current job type on the Scene, not the WindowManager
...
The job type (+ its configuration) is something scene/file dependent, and
should thus be stored there.
2022-03-11 17:30:27 +01:00
Sybren A. Stüvel
7181c2c4cf
OAPI: allow job settings to have a tooltip/description
2022-03-11 17:30:27 +01:00
Sybren A. Stüvel
6d00d9cb34
Manager: sort job types to ensure a consistent order
2022-03-11 17:30:27 +01:00
Sybren A. Stüvel
4f7c11d59a
Addon: cleanup, use relative imports where possible
2022-03-11 17:30:27 +01:00
Sybren A. Stüvel
21d552c600
Addon: add explanation of weird type-checking code
2022-03-11 16:51:19 +01:00
Sybren A. Stüvel
91f2fb2067
Addon: describe code generation process
...
The code generation has been integrated with the Makefile, so that's now
described properly.
2022-03-11 11:34:18 +01:00
Sybren A. Stüvel
55752c87a2
Addon: fix wheel loading module separation
...
The loading of modules from wheels wasn't properly separated from the rest
of Python yet. Now `load_wheel()` properly cleans up after itself, making
it impossible for other code to do `import the_module_from_the_wheel`.
2022-03-11 11:33:48 +01:00
Sybren A. Stüvel
5be9985e3b
Addon: fix Mypy errors
2022-03-11 11:18:21 +01:00
Sybren A. Stüvel
afc6b8e1c5
Worker: add -find-manager
CLI arg
...
With `-find-manager` the Worker will use UPnP/SSDP autodiscovery, report
which Manager it found, and quit.
2022-03-11 10:52:03 +01:00
Sybren A. Stüvel
b33db33d17
Manager: show error when there was an error loading configuration
2022-03-11 10:51:32 +01:00
Sybren A. Stüvel
850678f495
Addon: allow configuring the Manager URL
...
Previously it was hard-coded to `http://localhost:8080/ `, now that's just
the default value.
2022-03-10 17:57:26 +01:00
Sybren A. Stüvel
81daa4c249
OAPI: regenerate Python code
...
This commit also switches to a hardcoded version ("3.0") to the version
from Git (like the Go executables use). Because there are no tags for
this branch yet, this is just the Git commit hash.
2022-03-10 15:49:21 +01:00
Sybren A. Stüvel
51b23a38b3
OAPI: integrate Python code generator in Makefile
...
Instead of having the Python code generator as a separate shell script,
include it in the Makefile. There are now three make targets:
- generate-go: only generate Go code, for the Worker & Manager
- generate-py: only generate Python code, for the Blender add-on
- generate: run both
2022-03-10 15:48:20 +01:00
Sybren A. Stüvel
282f91243b
OAPI: replace placeholder description of 'jobs' tag
2022-03-10 15:45:56 +01:00
Sybren A. Stüvel
416fa9bd28
OAPI: add 'meta' tag for /api/version endpoint
2022-03-10 15:45:46 +01:00
Sybren A. Stüvel
78927c2c31
OAPI: put quotes around description with comma
...
The comma was interpreted as property separator, and not as part of the
'description' property value.
2022-03-10 15:41:48 +01:00
Sybren A. Stüvel
341ce51555
Addon: Remove unused generated test files
2022-03-10 15:02:07 +01:00
Sybren A. Stüvel
a2c2f0ccc0
Add idea to FEATURES.md
2022-03-09 23:26:06 +01:00
Sybren A. Stüvel
fe91d5e59e
Remove UPnP/SSDP proof of concept code
...
The code is no longer necessary.
2022-03-08 17:26:39 +01:00
Sybren A. Stüvel
842255a065
UPnP/SSDP: actually serve a description.xml
...
The `description.xml` file is part of the UPnP Service Discovery protocol,
see https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rxad/9225d145-6b2c-40d5-8ee8-7d837379fc25
2022-03-08 17:25:49 +01:00
Sybren A. Stüvel
353da58ee9
UPnP/SSDP: reduce log level for unreachable URLs
2022-03-08 16:46:14 +01:00
Sybren A. Stüvel
ca2bf7ff25
UPnP/SSDP: respond with multiple service descriptors
...
Instead of violating the standard and putting multiple locations in one
SSDP response, just send a single response for each possible location.
2022-03-08 16:46:03 +01:00
Sybren A. Stüvel
a19aa86c4e
FEATURES.md: mark UPnP/SSDP as 'done'
2022-03-08 15:04:03 +01:00
Sybren A. Stüvel
a61e3ca6f7
Worker tests: use in-memory SQLite database
2022-03-08 15:03:03 +01:00
Sybren A. Stüvel
34138e1b46
Cleanup: run go mod tidy
2022-03-08 15:02:05 +01:00
Sybren A. Stüvel
fabb79e583
Worker: move autodiscovery code into the 'worker' package
...
Move the UPnP/SSDP Manager autodiscovery code into from `main.go` into the
`worker` package. This also means changing the error handling a bit, as
only the `main.go` file is allowed to do `log.Fatal()`.
2022-03-08 14:41:30 +01:00
Sybren A. Stüvel
8e05024267
UPnP/SSDP: Worker, ping Manager URLs in parallel
...
Ping all Manager URLs at once, and wait until they've all responded (or
caused an error), instead of pinging them one by one sequentially.
2022-03-08 14:25:44 +01:00
Sybren A. Stüvel
9761786982
UPnP/SSDP: better logging when recovering from panic
2022-03-08 14:08:01 +01:00
Sybren A. Stüvel
eec4895c73
UPnP/SSDP client: avoid duplicate URLs
2022-03-08 14:06:35 +01:00
Sybren A. Stüvel
ae892ff712
Worker: test all discovered Manager URLs
...
Ping each discovered Manager URL to see whether it is reachable or not.
If there are multiple usable URLs, it'll just pick the first.
2022-03-08 13:56:45 +01:00
Sybren A. Stüvel
d6a60c73d0
UPnP/SSDP Server: allow advertising slice of URLs
...
This makes it possible for the Manager to expose multiple URLs. This way
the Worker can try them out and see which ones work.
2022-03-08 13:56:45 +01:00
Sybren A. Stüvel
13a74e61d4
UPnP/SSDP client: allow clean shutdowns
...
The SSDP library will log a warning on shutdown, as it doesn't expect the
UDP socket to be closed. Copy the hack on the Server implementation, which
avoids this warning getting logged, to the Client.
2022-03-08 13:56:45 +01:00
Sybren A. Stüvel
d0b677ffe3
Add API endpoint /api/version
to get the Flamenco Manager version
...
This will be used in the auto-discovery, to check that a discovered URL can
actually be reached & points to a Flamenco Manager.
2022-03-08 13:56:43 +01:00
Sybren A. Stüvel
42407865eb
Worker: change how configuration & credentials are loaded/saved
...
The Worker config/credential management was a bit of a mess. It's now
better structured, and also allows runtime overrides of the Manager URL,
without writing that override to the config file.
2022-03-08 13:51:03 +01:00
Sybren A. Stüvel
c0cd3ca5ad
UPnP/SSDP: Cleaner, easier to test (and actually tested) code
...
Convert "get own URLs" code into nicer chunks, and test those.
This minimises the code that actually depends on the available network
interfaces, and increases test coverage. Found a few bugs too.
2022-03-08 12:11:47 +01:00
Sybren A. Stüvel
bb91c2e6d6
UPnP/SSDP: prefer link-local addresses if available
2022-03-08 11:03:48 +01:00
Sybren A. Stüvel
fca628b325
Merge remote-tracking branch 'origin/main' into upnp-ssdp
2022-03-07 15:27:12 +01:00
Sybren A. Stüvel
9f5e4cc0cc
License: license all code under "GPL-3.0-or-later"
...
The add-on code was copy-pasted from other addons and used the GPL v2
license, whereas by accident the LICENSE text file had the GNU "Affero" GPL
license v3 (instead of regular GPL v3).
This is now all streamlined, and all code is licensed as "GPL v3 or later".
Furthermore, the code comments just show a SPDX License Identifier
instead of an entire license block.
2022-03-07 15:26:46 +01:00
Sybren A. Stüvel
43a9e1d439
Add some nice-to-have new features to FEATURES.md
2022-03-07 11:21:31 +01:00
Sybren A. Stüvel
4062f024b7
Cleanup: move code to a nicer place
2022-03-04 17:46:44 +01:00