Following the release of Shotgun’s new descriptor workflow along with its Bootstrap API I’ve finally got round to updating our pipeline to take advantage of these new features. It has been a big improvement over the old Toolkit pipeline configuration deployment approach and has definitely aided our development and deployment processes.
There has been one hurdle we’ve had to overcome; when bootstrapping in to a Shotgun environment on rendernodes with multiple slaves, it appears that the bootstrap process fails if there are concurrent threads all trying to copy the pipeline config to a shared location.
Thankfully there was a simple solution which involves setting up a custom GlobalJobPreLoad.py which appears to have resolved the issue.
- Create a file called GlobalJobPreLoad.py and save it to your deadline repos /custom/plugins directory. This file will be run before every job that’s loaded by each slave.
- Copy the following code in to the GlobalJobPreLoad.py file :
What this script does is set a slave-specific SHOTGUN_HOME location(in this case c:\your_studio\shotgun\cache\slaveName ensuring that each slave can bootstrap in to its own folder. Problem solved!