Last active
March 23, 2020 19:49
-
-
Save reformstudios/4996e903fc72a19cadba7bf3aaab5649 to your computer and use it in GitHub Desktop.
This script solves the problem of running multiple deadline slaves on one workstation and then attempting to bootstrap a Shotgun pipeline config as part of a deadline task. The script does this by setting a unique path for each slave's Shotgun session (using the SHOTGUN_HOME environment variable)Save this script to your deadline repo's 'custom/p…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from System.IO import * | |
from Deadline.Events import * | |
from Deadline.Scripting import * | |
import os | |
def set_slave_specific_shotgun_home_path(deadlinePlugin): | |
''' | |
In situations where you have multiple deadline Slaves on a single rendernode | |
Shotgun may fail to bootstrap a pipelineconfig if more than one slave | |
attempts to bootstrap at the same time. This is because by default each | |
slave will use the same location to store it's shotgun pipeline configuration so | |
when more than one slave is bootstrapping, there may be two processes attempting to | |
copy files to the same location at the same time, thus causing an error. | |
Setting a slave-specific directory per slave prevents this clash from occurring. | |
:param deadlinePlugin: The deadlinePlugin class passed from __main__ | |
:return: None | |
''' | |
deadlinePlugin.LogInfo(". Setting-up environment") | |
slavename = deadlinePlugin.GetSlaveName() | |
deadlinePlugin.SetProcessEnvironmentVariable("DEADLINE_SLAVENAME", slavename) | |
SHOTGUN_HOME = os.path.join('c:\\', 'studio','shotgun','cache',slavename) | |
deadlinePlugin.LogInfo(". setting SHOTGUN_HOME : %s" % SHOTGUN_HOME) | |
deadlinePlugin.SetProcessEnvironmentVariable("SHOTGUN_HOME", SHOTGUN_HOME) | |
def __main__(deadlinePlugin): | |
# Set SHOTGUN_HOME environment variable to slave-specific location | |
set_slave_specific_shotgun_home_path(deadlinePlugin) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Nevermind, i found your blog. Thanks for sharing!