diff --git a/vendor/deadline/readme.md b/vendor/deadline/readme.md index 803a290050..31ffffd0b7 100644 --- a/vendor/deadline/readme.md +++ b/vendor/deadline/readme.md @@ -1,32 +1,29 @@ ## OpenPype Deadline repository overlay - This directory is overlay for Deadline repository. - It means that you can copy whole hierarchy to Deadline repository and it should work. + This directory is an overlay for Deadline repository. + It means that you can copy the whole hierarchy to Deadline repository and it + should work. Logic: ----- - Event - ----- - For each rendering job OpenPype event is triggered, it stores path to OpenPype - executable (needs to be configured on `Deadline's Configure Events > OpenPype`) - job's extra key 'openpype_executables'. + GlobalJobPreLoad + ----- - This value is used by `GlobalJobPreLoad` to call that executable to pull - environment's variables which are needed to add to ALL plugins process environments. - These env. vars are injected into rendering process. - - Event is necessary here as a middle man to allow configuring location of executable - which is ONLY then used by `GlobalJobPreLoad` (which doesnt have any user facing - configuration at all). - - `GlobalJobPreLoad` is triggered before each job, it contains backward compatible - logic to not modify old Pype2 or not OpenPype triggered jobs. +The `GlobalJobPreLoad` will retrieve the OpenPype executable path from the +`OpenPype` Deadline Plug-in's settings. Then it will call the executable to +retrieve the environment variables needed for the Deadline Job. +These environment variables are injected into rendering process. + +Deadline triggers the `GlobalJobPreLoad.py` for each Worker as it starts the +Job. + +*Note*: It also contains backward compatible logic to preserve functionality +for old Pype2 and non-OpenPype triggered jobs. Plugin ------ - For each publishing job `OpenPypeDeadlinePlugin` is called, which calls - configured location of OpenPype executable (needs to be configured in - `Deadline's Configure Plugins > OpenPype`) - and triggers command. + For each render and publishing job the `OpenPype` Deadline Plug-in is checked + for the configured location of the OpenPype executable (needs to be configured + in `Deadline's Configure Plugins > OpenPype`) through `GlobalJobPreLoad`. diff --git a/website/docs/assets/deadline_configure_event.png b/website/docs/assets/deadline_configure_event.png deleted file mode 100644 index 537a18506c..0000000000 Binary files a/website/docs/assets/deadline_configure_event.png and /dev/null differ diff --git a/website/docs/module_deadline.md b/website/docs/module_deadline.md index b4cf85abc2..eed786d7b4 100644 --- a/website/docs/module_deadline.md +++ b/website/docs/module_deadline.md @@ -14,43 +14,33 @@ For [AWS Thinkbox Deadline](https://www.awsthinkbox.com/deadline) support you ne 1. Deploy OpenPype executable to all nodes of Deadline farm. See [Install & Run](admin_use) -2. Enable Deadline module it in the [settings](admin_settings_system#deadline) +2. Enable Deadline Module in the [OpenPype Admin Settings](admin_settings_system#deadline) 3. Set up *Deadline Web API service*. For more details on how to do it, see [here](https://docs.thinkboxsoftware.com/products/deadline/10.0/1_User%20Manual/manual/web-service.html). -4. Point OpenPype to your deadline webservice URL in the [settings](admin_settings_system#deadline) +4. Point OpenPype to your deadline webservice URL in the [OpenPype Admin Settings](admin_settings_system#deadline) -5. Install our custom plugin, event plugin and scripts to your deadline repository. It should be as simple as copying content of `openPype/vendor/deadline/custom` to `path/to/your/deadline/repository/custom` +5. Install our custom plugin and scripts to your deadline repository. It should be as simple as copying content of `openPype/vendor/deadline/custom` to `path/to/your/deadline/repository/custom` ## Configuration -OpenPype integration with Deadline consists of two parts, event listener which gets triggered for each job and - handles populating rendering jobs with proper environment variables and -OpenPype plugin which handles publishing itself. +OpenPype integration with Deadline consists of two parts, an `OpenPype` Deadline Plug-in a `GlobalJobPreLoad` script that gets triggered for each job and + handles populating render and publish jobs with proper environment variables. -Both need to be configured by pointing DL to OpenPype executables. These executables need to be installed to +The `OpenPype` Deadline Plug-in must be configured to point to a valid OpenPype executable location. The executable need to be installed to destinations accessible by DL process. Check permissions (must be executable and accessible by Deadline process) - Enable `Tools > Super User Mode` in Deadline Monitor -- Go to `Tools > Configure plugins`, find `OpenPype` in the list on the left side, find location of OpenPype +- Go to `Tools > Configure Plugins...`, find `OpenPype` in the list on the left side, find location of OpenPype executable. It is recommended to use the `openpype_console` executable as it provides a bit more logging. -- In case of multi OS farms, provide multiple locations, each node goes through a list and tries to find accessible - locations for itself. +- In case of multi OS farms, provide multiple locations, each node goes through a list and tries to find the first accessible + location for itself. ![Configure plugin](assets/deadline_configure_plugin.png) -- Go to `Tools > Configure events`, find `OpenPype` in the list on the left side, find location of OpenPype -executable. It is recommended to use the `openpype_console` executable as it provides a bit more logging. - -- State is expected to be set to `Global Enabled` - -![Configure event](assets/deadline_configure_event.png) - -Path to executables needs to be configured on both, plugin and event level! - ## Troubleshooting #### Publishing jobs fail directly in DCCs @@ -67,7 +57,7 @@ Each publishing from OpenPype consists of 2 jobs, first one is rendering, second - Jobs are failing with `OpenPype executable was not found` error - Check if OpenPype is installed on a node handling this job, plugin and events are properly [configured](#configuration) + Check if OpenPype is installed on the Worker handling this job and ensure `OpenPype` Deadline Plug-in is properly [configured](#configuration) - Publishing job is failing with `ffmpeg not installed` error