Commit Graph

38 Commits

Author SHA1 Message Date
Brett Williams
a3e2fa7e07 Update the renderer to reflect the current file type 2023-11-17 08:18:07 -06:00
Brett Williams
23901bc8e4 Fix add_job crashing 2023-11-16 14:36:09 -06:00
Brett Williams
ba996c58f5 Make sure supported_extensions is now called as a method everywhere 2023-11-16 14:01:48 -06:00
Brett Williams
9e8eb77328 Cleanup extension matching 2023-11-16 13:55:49 -06:00
Brett Williams
81d2cb70b8 Cleanup unnecessary code in FFMPEG 2023-11-16 11:27:30 -06:00
Brett Williams
6dc8db2d8c Make sure progress UI updates occur on main thread 2023-11-16 06:13:12 -06:00
Brett Williams
0e0eba7b22 Close the session properly - part 2 2023-11-11 10:59:39 -06:00
Brett Williams
86c5d4cc15 Properly close the renderqueue when shutting down 2023-11-11 10:58:21 -06:00
da61bf72f8 Add job polish (#63)
* Remove legacy client

* Misc cleanup

* Add message box after submission success / fail

* Use a new is_localhost method to handle localhost not including '.local'

* Code cleanup

* Fix issue where engine browser would think we're downloading forever

* Add message box after submission success / fail

* Use a new is_localhost method to handle localhost not including '.local'

* Code cleanup

* Fix issue where engine browser would think we're downloading forever

* Add pubsub messages to serverproxy_manager.py

* Add resolution, fps and renderer versions to add_job.py

* Add cameras to add_job.py

* Add message box after submission success / fail

* Use a new is_localhost method to handle localhost not including '.local'

* Code cleanup

* Fix issue where engine browser would think we're downloading forever

* Add message box after submission success / fail

* Code cleanup

* Add cameras to add_job.py

* Add dynamic engine options and output format

* Move UI work out of BG threads and add engine presubmission tasks

* Submit dynamic args when creating a new job

* Hide groups and show messagebox after submission

* Choose file when pressing New Job in main window now
2023-11-11 07:35:56 -06:00
0271abf705 Serverproxy manager (#61)
* Create serverproxy_manager.py

* Replace use of direct RenderServerProxy with ServerProxyManager method
2023-11-05 01:00:36 -05:00
c3b446be8e Don't create empty output directories in the source path (#60) 2023-11-04 23:58:08 -05:00
06a613fcc4 Zeroconf reports system properties (#59)
* Zeroconf.found_clients() now returns dicts of clients, not just hostnames

* Adjustments to distributed_job_manager.py

* Undo config change

* Report system metrics (cpu, os, etc) via zeroconf_server.py

* Zeroconf.found_clients() now returns dicts of clients, not just hostnames

* Adjustments to distributed_job_manager.py

* Undo config change

* Zeroconf.found_clients() now returns dicts of clients, not just hostnames

* Adjustments to distributed_job_manager.py

* Undo config change

* Adjustments to distributed_job_manager.py

* Undo config change

* Rename ZeroconfServer.found_clients() to found_hostnames()
2023-11-04 20:46:27 -05:00
d3b84c6212 Remove legacy client (#58)
* Remove legacy client

* Misc cleanup
2023-11-04 16:13:40 -05:00
Brett Williams
014489e3bf Add engine_help_viewer.py 2023-11-04 10:41:33 -05:00
65c256b641 New UI Redesign in pyqt6 (#56)
* Initial commit for new UI

* Initial commit for new UI

* WIP

* Status bar updates and has an icon for online / offline

* Add log_viewer.py

* Use JSON for delete_engine_download API

* Fix class issue with Downloaders

* Move Config class to new ui

* Add engine_browser.py

* Add a close event handler to the main window

* Fix issue with engine manager not deleting engines properly

* Rearrange all the files

* Add icons and resources

* Cache system info in RenderServerProxy

* Toolbar polish

* Fix resource path in status bar

* Add config_dir to misc_helper.py

* Add try block to zeroconf setup

* Add add_job.py

* Add raw args to add_job.py
2023-11-04 09:52:15 -05:00
bc8e88ea59 Config class (#51)
* Add new Config class to handle loading config files

* Use new config class in api_server.py
2023-10-29 22:22:40 -05:00
6ce69c8d35 Thread Safe Downloads for Renderers (#49)
* Make engines download on another thread

* Fix merge issues
2023-10-29 22:22:29 -05:00
dcc0504d3c Engine and downloader refactoring (#50)
* Make downloaders subclass of base_downloader.py

* Link engines and downloaders together for all engines

* Replace / merge worker_factory.py with engine_manager.py
2023-10-29 20:57:26 -05:00
Brett Williams
22aaa82da7 Simplify database.db logic 2023-10-27 02:41:31 -05:00
Brett Williams
951bebb3a8 Save database.db to upload dir, not code dir 2023-10-27 02:35:21 -05:00
Brett Williams
deac943e4c Add UI notifications to a try block 2023-10-25 21:52:08 -05:00
Brett Williams
32d863f624 Cancel all children if parent job is cancelled 2023-10-25 06:37:46 -05:00
Brett Williams
760d239d0c Minor fixes 2023-10-25 06:29:30 -05:00
cc1cf92118 Add simple notifications on job errors, completion and start. (#46) 2023-10-25 06:15:52 -05:00
Brett Williams
917a15c60c Make engine updating multithreaded 2023-10-25 02:57:25 -05:00
f01192909d Split add job helper (#45)
* Fix issue with engine not being available to download

* Add version caches to ffmpeg downloader

* Remove some test parameters

* "releases" should be "release" in linux ffmpeg url

* CPU was incorrectly reported as OS

* Fix naming structure for FFMPEG downloads for linux

* More linux ffmpeg work

* Improved error handling

* WIP

* Consolidate platform reporting to not use platform directly

* Fix missing folder name

* Fix project output naming

* Undo config.yaml commit

* Add is_engine_available API call

* Fix issue where subjobs would not find servers
2023-10-25 02:49:07 -05:00
Brett Williams
03e7b95e1b Split add_job_handler out to all_job_helpers.py 2023-10-24 20:53:06 -05:00
782a1a4699 Added engine update check on launch (#43) 2023-10-23 08:26:11 -05:00
e52682c8b9 Engine downloader API for #31 (#42)
* Add is_engine_available_to_download API call

* Fix issue with worker never throwing error if engine is not found

* Add API call to get most recent engine version

* Fix some minor import issues

* Fix web urls

* Fix default server log level

* Add progress bar for project download worker_factory downloads missing engine versions

* Better error handling when invalid version is given

* Add timeouts to engine downloaders
2023-10-22 17:02:30 -05:00
Brett Williams
9603046432 Fix path to blender pack_project.py 2023-10-21 22:48:15 -05:00
Brett Williams
9027cd7202 More code re-organizing 2023-10-21 22:45:30 -05:00
7a52cce40a Windows File Path Fixes (#39)
* Added system_safe_path to convert paths to Windows

* Fix issue where engines would not be reported unless a system engine was installed

* Platform independent searching for binaries in engine directory

* Add missing package to requirements.txt

* Better error handling for ffmpeg.get_all_formats()

* Add system_safe_path to more locations in api_server.py

* Fix naming issue with Blender on macos

* Fix path lookups and add engine_path to workers

* Report installed renderers in status

* Remove files included by accident
2023-10-21 22:12:09 -05:00
0b6b971fbc Get detailed formats from engines (#38)
* Add get_detected_gpus() and supported_render_engines() to Blender class

* Parse help args for Blender

* Return dict instead of list

* Parse args for FFMPEG

* Add API to get renderer args

* Only return available renderers

* Parse help args for Blender

* Return dict instead of list

* Parse args for FFMPEG

* Rebase off master

* Rebase

* Change methods from class methods to instance methods

* FFMPEG format fetching
2023-10-20 21:06:16 -05:00
Brett Williams
c499096efc Update requirements.txt 2023-10-20 20:39:44 -05:00
af5eda97c5 FFMPEG downloader (#36)
* Add ffmpeg_downloader.py

* Move shared download logic to downloader_core.py

* Added Windows support and some misc cleanup

* Fix issue with copying contents of .dmg files

* Add FFMPEGDownloader to engine_manager.py
2023-10-20 18:46:54 -05:00
7d1ecf1fa5 Downloadable engines (#34)
* Add blender_downloader.py

* Add engine_manager.py

* Add additional methods to engine_manager.py

* Refactor file layout to make engines on par with workers

* Add system platform info to status response

* Default to using system platform / cpu if none are provided

* Add API to download an engine and some general cleanup

* Add method to delete downloaded engine

* Add API calls to download engines and delete downloads

* Misc fixes
2023-10-20 15:05:29 -05:00
4563dcb255 Fix #20 - Relaunch renderer when renderer crashes (#28)
* Render worker makes multiple attempts if file_path increases on each run

* Change blender_worker.py to not overwrite existing files

* Chmod +x to client
2023-07-02 23:50:15 -05:00
a475aa999a Major file reorganization (#26)
* Major file reorganization

* Rearrange imports

* Fix default log level
2023-06-30 21:24:40 -05:00