971 Commits

Author SHA1 Message Date
Nate Rupsis
c187b9a9ad Add Arcanist config file
Add a `.arcconfig` file so Arcanist can be used for patch handling.

Reviewed by: sybren

Differential Revision: https://developer.blender.org/D15367
2022-07-05 17:14:46 +02:00
Nate Rupsis
2c5b41555c README.md: compatibility with Phabricator
Fix issues where Phabricator would render the README.md incorrectly.

Reviewed by: sybren

Differential Revision: https://developer.blender.org/D15367
2022-07-05 17:14:09 +02:00
Sybren A. Stüvel
37db10481e Website theming
Some styling & theming, including a new icon. Probably not the final
color scheme, but better than the "this looks like default Bootstrap"
blue color.
2022-07-05 17:10:27 +02:00
Sybren A. Stüvel
9939e43b63 Add make site target to build & publish the website
This of course needs SSH access to the flamenco.io website.

Run `hugo --serve` from the `web/flamenco-io-site` directory to simply
run an in-memory copy of the site, and browse it locally at
http://localhost:1313/
2022-07-05 16:17:25 +02:00
Francesco Siddi
eb54d1ab41 Add flamenco-manager.yaml to .gitignore 2022-07-05 15:21:17 +02:00
Sybren A. Stüvel
3c7c79206e More work on the new flamenco.io site
This is basically the contents of the `README.md` file, spread over
multiple documentation pages.
2022-07-05 14:46:38 +02:00
Sybren A. Stüvel
a61fe3b6ab Update job submission URL in debug shell scripts
Add `/v3/` component introduced in 9daecf2b
2022-07-05 11:53:37 +02:00
Sybren A. Stüvel
feaf9545a6 Revert "Move the webapp from /app/… to /app/v3/…"
This reverts commit fcb261f5d336c4362339e6da5b35a340ec5aa6e1. The
`/app/v3` URL didn't look nice enough.
2022-07-05 11:51:05 +02:00
Sybren A. Stüvel
2965856aa3 Worker: add test flag to enable Blender-dependent test
Add a `-withBlender` CLI argument for a unit test, to aid in debugging
T99438.

Run the test with `go test ./internal/worker/find_blender/ -args -withBlender`
to actually fail when the file association with `.blend` files cannot be
found.

Note that this doesn't rely on Blender being runnable, but it does rely
on _something_ being associated with .blend files.
2022-07-05 10:01:10 +02:00
Sybren A. Stüvel
60971722fc Windows: add missing imports
A recent refactor (rFfb89658530da25a77dc03fb329c394198bf6358f) performed
on Linux didn't properly update a Windows-only file.
2022-07-05 10:01:10 +02:00
Sybren A. Stüvel
bcde49ede0 Initial checkin of a static documentation website
Building this site requires Hugo (not yet included in the README or in the
installation of dependencies in the Makefile). Still very much work in
progress, this is basically the [Geekdocks theme][1] + one page.

[1]: https://geekdocs.de/
2022-07-04 18:00:43 +02:00
Sybren A. Stüvel
0d9e9d1fb4 Remove FEATURES.md
The list of tasks is now tracked on the workboard at
https://developer.blender.org/project/board/58/
2022-07-04 16:08:50 +02:00
Sybren A. Stüvel
dc43049183 Web: fix auto-reloading
Fix an issue with the hourly auto-reloading, where the `reload()` call
somehow was called on "an object that doesn't implement the Location
interface".
2022-07-04 14:08:55 +02:00
Sybren A. Stüvel
2c932ebad5 Show Worker's "last seen" timestamp in web interface & API responses 2022-07-04 12:49:56 +02:00
Sybren A. Stüvel
4c8ab01dae OAPI: regenerate code 2022-07-04 12:49:26 +02:00
Sybren A. Stüvel
b34fee514a OAPI: include worker's "last seen" timestamp
Include the worker's "last seen" timestamp in the worker summary, details,
and SocketIO updates.

This is different from the "updated" timestamp, which indicates the last
time the worker entry in the database was updated (which could also be
in response to a status change request from the web interface).
2022-07-04 12:47:25 +02:00
Sybren A. Stüvel
fcb261f5d3 Move the webapp from /app/… to /app/v3/…
This will help in the future to host multiple (major) versions of Flamenco
on the same system, redirecting based on their URL prefix.
2022-07-04 12:22:41 +02:00
Sybren A. Stüvel
7d64d1bca4 Move SwaggerUI to /api/v3/swagger-ui
Include the `v3` path component in the Swagger UI URL.
2022-07-04 12:21:18 +02:00
Sybren A. Stüvel
5537f2c07c OAPI: regenerate code 2022-07-04 12:12:45 +02:00
Sybren A. Stüvel
9daecf2b45 OAPI: version all API URLs with /v3/
Change all API URL paths from `/api/…` to `/api/v3/…`. This ensures that
old Flamenco v2 clients/workers stop working when the new Manager is in
place. This also allows redirecting API calls based on the URL, also for
future upgrades.
2022-07-04 12:11:58 +02:00
Sybren A. Stüvel
30f7df5259 OAPI: change Shaman URL paths from /shaman/… to /api/shaman/…
This makes all OpenAPI URLs start with `/api/`.
2022-07-04 12:09:19 +02:00
Sybren A. Stüvel
0e3d822868 Web: refresh page every hour
Do a refresh of the web interface once per hour. This is just to make sure
that long-lived displays (like the TV in the hallway at Blender HQ) pick
up on HTML/JS/CSS changes eventually.
2022-07-04 11:59:19 +02:00
Sybren A. Stüvel
f2f8357df7 Bump thumbnail JPEG quality from 80 to 85
80 was a bit too low. 85 might still be too low, we'll have to see.
2022-07-01 17:44:26 +02:00
Sybren A. Stüvel
5fbdc388ad Job compiler: tweak settings visibility of simple-blender-render
In the `simple-blender-render` job type settings, hide the `chunk_size`
setting from the web frontend, and show the `blendfile` setting instead.

The actual blend file being rendered is important to know, whereas the
chunk size can be inferred from the task names anyway.
2022-07-01 13:36:44 +02:00
Sybren A. Stüvel
ae0125edcd Web: fix URL of 'nothing rendered yet' image 2022-07-01 13:32:43 +02:00
Sybren A. Stüvel
beb8684a38 Web: fix styling of last-rendered image in job details
Instead of putting the styling in `<style scoped>`, I moved it to the
global `base.css`. This made things work again.
2022-07-01 13:10:51 +02:00
Sybren A. Stüvel
d25151184d Add a "Last Rendered" view
Add a "Last Rendered" view to the webapp.

The Manager now stores (in the database) which job was the last
recipient of a rendered image, and serves that to the appropriate
OpenAPI endpoint.

A new SocketIO subscription + accompanying room makes it possible for
the web interface to receive all rendered images (if they survive the
queue, which discards images when it gets too full).
2022-07-01 12:34:40 +02:00
Sybren A. Stüvel
801fa20f12 OAPI: regenerate code 2022-07-01 12:32:42 +02:00
Sybren A. Stüvel
60f3f5482d OAPI: add operation & SocketIO subscription for global last-rendered img
Add an operation to get the last-rendered image from whatever job received
such output from a Worker, and add a SocketIO subscription type to receive
updates about all jobs' last-rendered images.

These are necessary for a global last-rendered image display.
2022-07-01 12:31:18 +02:00
Sybren A. Stüvel
f5f63455d6 Web: add comment to explain URL of last-rendered image
No functional changes.
2022-06-30 19:27:54 +02:00
Sybren A. Stüvel
0a0035eb5b Web: better styling of last-rendered image 2022-06-30 19:27:43 +02:00
Sybren A. Stüvel
2457a63518 Manager: Show "nothing rendered yet" image in job details
Show a "nothing rendered yet" image in the job details when there is no
last-rendered image yet.
2022-06-30 19:20:19 +02:00
Sybren A. Stüvel
56463fa3ec OAPI: regenerate code 2022-06-30 19:19:38 +02:00
Sybren A. Stüvel
cca8155894 OAPI: add 204 as "nothing rendered" response to fetchJobLastRenderedInfo
Add a "204 No Content" response to the `fetchJobLastRenderedInfo` operation,
indicating that there is no rendered output yet.
2022-06-30 19:18:52 +02:00
Sybren A. Stüvel
84d598c813 Web: reload the last-rendered image on SocketIO notification 2022-06-30 18:37:12 +02:00
Sybren A. Stüvel
0fc5ba0bc6 Manager: broadcast last-rendered image info via SocketIO
After processing an image in the "last-rendered" processor, a SocketIO
object is sent to clients to indicate the last-rendered image needs to
be (re)loaded.

This also moves the previously existing "done callback" from a single
function to a per-image callback, so that it can be called with the
right information in there, and only when that particular image is
actually done processing.

The notification message sent via SocketIO also contains the necessary
info to render the image, so that the web client doesn't have to call
the `fetchJobLastRenderedInfo` operation.
2022-06-30 18:36:24 +02:00
Sybren A. Stüvel
123674cf57 OAPI: regenerate code 2022-06-30 18:33:36 +02:00
Sybren A. Stüvel
c9500b85c2 OAPI: add SocketIOLastRenderedUpdate for broadcasting last-rendered imgs
`SocketIOLastRenderedUpdate` objects are meant to be broadcast to SocketIO
clients (i.e. the web interface). They are sent to the job-specific room,
just like task updates.
2022-06-30 18:32:42 +02:00
Sybren A. Stüvel
73e1c1930f Web: run dev server on /app/ base URL
Flamenco Manager serves the webapp on `/app/…`, and now the development
server uses the same base URL.
2022-06-30 18:31:53 +02:00
Sybren A. Stüvel
f1c15dfa2c Make debug-job-render.sh less Blender Studio-specific
Don't output to `/render/_flamenco/...`, but to `/tmp/...` instead.
2022-06-30 18:30:35 +02:00
Sybren A. Stüvel
75723daba2 Improve the static webapp building & embedding
Some smaller changes to make the webapp building smoother, and also to
make sure there are no errors on a clean Git checkout.
2022-06-30 17:41:36 +02:00
Sybren A. Stüvel
b082433757 Web: show last-rendered image in job details
It doesn't update automatically yet (still needs SocketIO notifications),
and there is no check yet for whether there is actually any last-rendered
image at all, but at least there is a component that shows the image.
2022-06-28 17:37:09 +02:00
Sybren A. Stüvel
cc56e5b22e Web: auto-detect whether the port number should be overridden
It's a bit clumsy (if the web port is :8081, override it to :8080 for the
API requests), but works in our case.
2022-06-28 17:15:27 +02:00
Sybren A. Stüvel
159e003745 Web: remove the last bit of the 'Settings' tab
Apparently the header link was still in there.
2022-06-28 17:14:44 +02:00
Sybren A. Stüvel
6efd67b05c Manager: implement FetchJobLastRenderedInfo() API operation
Allow querying for the URL & available versions of a job's last-rendered
image.
2022-06-28 17:08:00 +02:00
Sybren A. Stüvel
668e25fe95 OAPI: regenerate code 2022-06-28 17:07:08 +02:00
Sybren A. Stüvel
5d30459359 OAPI: add endpoint to get URLs of last-rendered images of a job 2022-06-28 17:05:52 +02:00
Sybren A. Stüvel
e6bf60cb77 Addon: fix issue where Shaman checkout directory wasn't used properly
Shaman prevents duplicate checkout directories, and communicates the actual
location back to the client. This wasn't used by the add-on though, so
the Flamenco job definition would point to the wrong files.
2022-06-28 16:28:28 +02:00
Sybren A. Stüvel
be0fbcca8e Add deployment script
It's quite specific to Blender HQ, but still might be nice as inspiration
for others.
2022-06-28 13:08:52 +02:00
Sybren A. Stüvel
f508bd7e92 FEATURES.md: add idea for versioning API 2022-06-28 12:59:26 +02:00