diff --git a/pype/modules/deadline/custom/events/pype/Pype.param b/pype/modules/deadline/custom/events/pype/Pype.param deleted file mode 100644 index 64de6bf69b..0000000000 --- a/pype/modules/deadline/custom/events/pype/Pype.param +++ /dev/null @@ -1,37 +0,0 @@ -[State] -Type=Enum -Items=Global Enabled;Opt-In;Disabled -Category=Options -CategoryOrder=0 -CategoryIndex=0 -Label=State -Default=Disabled -Description=How this event plug-in should respond to events. If Global, all jobs and slaves will trigger the events for this plugin. If Opt-In, jobs and slaves can choose to trigger the events for this plugin. If Disabled, no events are triggered for this plugin. - -[PythonSearchPaths] -Type=MultiLineMultiFolder -Label=Additional Python Search Paths -Category=Options -CategoryOrder=0 -CategoryIndex=1 -Default= -Description=The list of paths to append to the PYTHONPATH environment variable. This allows the Python job to find custom modules in non-standard locations. - -[LoggingLevel] -Type=Enum -Label=Logging Level -Category=Options -CategoryOrder=0 -CategoryIndex=2 -Items=DEBUG;INFO;WARNING;ERROR -Default=DEBUG -Description=Logging level where printing will start. - -[Pype Executable] -Type=MultiLineMultiFolder -Label=Path to Pype executable -Category=Job Plugins -CategoryOrder=1 -CategoryIndex=1 -Default= -Description= \ No newline at end of file diff --git a/pype/modules/deadline/custom/events/pype/Pype.py b/pype/modules/deadline/custom/events/pype/Pype.py deleted file mode 100644 index a55f28793c..0000000000 --- a/pype/modules/deadline/custom/events/pype/Pype.py +++ /dev/null @@ -1,215 +0,0 @@ -import os -import sys -import logging -import json - -import Deadline.Events -import Deadline.Scripting - - -def GetDeadlineEventListener(): - return PypeEventListener() - - -def CleanupDeadlineEventListener(eventListener): - eventListener.Cleanup() - - -class PypeEventListener(Deadline.Events.DeadlineEventListener): - - def __init__(self): - self.OnJobSubmittedCallback += self.OnJobSubmitted - self.OnJobStartedCallback += self.OnJobStarted - self.OnJobFinishedCallback += self.OnJobFinished - self.OnJobRequeuedCallback += self.OnJobRequeued - self.OnJobFailedCallback += self.OnJobFailed - self.OnJobSuspendedCallback += self.OnJobSuspended - self.OnJobResumedCallback += self.OnJobResumed - self.OnJobPendedCallback += self.OnJobPended - self.OnJobReleasedCallback += self.OnJobReleased - self.OnJobDeletedCallback += self.OnJobDeleted - self.OnJobErrorCallback += self.OnJobError - self.OnJobPurgedCallback += self.OnJobPurged - - self.OnHouseCleaningCallback += self.OnHouseCleaning - self.OnRepositoryRepairCallback += self.OnRepositoryRepair - - self.OnSlaveStartedCallback += self.OnSlaveStarted - self.OnSlaveStoppedCallback += self.OnSlaveStopped - self.OnSlaveIdleCallback += self.OnSlaveIdle - self.OnSlaveRenderingCallback += self.OnSlaveRendering - self.OnSlaveStartingJobCallback += self.OnSlaveStartingJob - self.OnSlaveStalledCallback += self.OnSlaveStalled - - self.OnIdleShutdownCallback += self.OnIdleShutdown - self.OnMachineStartupCallback += self.OnMachineStartup - self.OnThermalShutdownCallback += self.OnThermalShutdown - self.OnMachineRestartCallback += self.OnMachineRestart - - def Cleanup(self): - del self.OnJobSubmittedCallback - del self.OnJobStartedCallback - del self.OnJobFinishedCallback - del self.OnJobRequeuedCallback - del self.OnJobFailedCallback - del self.OnJobSuspendedCallback - del self.OnJobResumedCallback - del self.OnJobPendedCallback - del self.OnJobReleasedCallback - del self.OnJobDeletedCallback - del self.OnJobErrorCallback - del self.OnJobPurgedCallback - - del self.OnHouseCleaningCallback - del self.OnRepositoryRepairCallback - - del self.OnSlaveStartedCallback - del self.OnSlaveStoppedCallback - del self.OnSlaveIdleCallback - del self.OnSlaveRenderingCallback - del self.OnSlaveStartingJobCallback - del self.OnSlaveStalledCallback - - del self.OnIdleShutdownCallback - del self.OnMachineStartupCallback - del self.OnThermalShutdownCallback - del self.OnMachineRestartCallback - - def inject_pype_environment(self, job, additonalData={}): - - # returning early if no plugins are configured - # if not self.GetConfigEntryWithDefault(config_entry, ""): - # return - - # adding python search paths - paths = self.GetConfigEntryWithDefault("PythonSearchPaths", "").strip() - paths = paths.split(";") - - for path in paths: - self.LogInfo("Extending sys.path with: " + str(path)) - sys.path.append(path) - - - # setup logging - level_item = self.GetConfigEntryWithDefault("LoggingLevel", "DEBUG") - level = logging.DEBUG - - if level_item == "INFO": - level = logging.INFO - if level_item == "WARNING": - level = logging.WARNING - if level_item == "ERROR": - level = logging.ERROR - - logging.basicConfig(level=level) - logger = logging.getLogger() - - self.LogInfo("TESTING LOGGING") - - # setup username - os.environ["LOGNAME"] = job.UserName - - - def updateFtrackStatus(self, job, statusName, createIfMissing=False): - "Updates version status on ftrack" - pass - - - def OnJobSubmitted(self, job): - - self.updateFtrackStatus(job, "Render Queued") - - def OnJobStarted(self, job): - - self.inject_pype_environment(job) - self.updateFtrackStatus(job, "Rendering") - - def OnJobFinished(self, job): - - self.updateFtrackStatus(job, "Artist Review") - - def OnJobRequeued(self, job): - - pass - - def OnJobFailed(self, job): - - pass - - def OnJobSuspended(self, job): - - self.updateFtrackStatus(job, "Render Queued") - - def OnJobResumed(self, job): - - self.inject_pype_environment(job) - self.updateFtrackStatus(job, "Rendering") - - def OnJobPended(self, job): - - pass - - def OnJobReleased(self, job): - - pass - - def OnJobDeleted(self, job): - - pass - - def OnJobError(self, job, task, report): - - data = {"task": task, "report": report} - self.inject_pype_environment(job, data) - - def OnJobPurged(self, job): - - pass - - def OnHouseCleaning(self): - - pass - - def OnRepositoryRepair(self, job): - - pass - - def OnSlaveStarted(self, job): - - pass - - def OnSlaveStopped(self, job): - - pass - - def OnSlaveIdle(self, job): - - pass - - def OnSlaveRendering(self, job): - - pass - - def OnSlaveStartingJob(self, job): - - pass - - def OnSlaveStalled(self, job): - - pass - - def OnIdleShutdown(self, job): - - pass - - def OnMachineStartup(self, job): - - pass - - def OnThermalShutdown(self, job): - - pass - - def OnMachineRestart(self, job): - - pass diff --git a/vendor/deadline/custom/events/Pype/Pype.py b/vendor/deadline/custom/events/Pype/Pype.py index 2b2904b229..0388ab6a07 100644 --- a/vendor/deadline/custom/events/Pype/Pype.py +++ b/vendor/deadline/custom/events/Pype/Pype.py @@ -1,6 +1,4 @@ -import os import sys -import logging import json import subprocess import platform @@ -11,7 +9,6 @@ import time import Deadline.Events import Deadline.Scripting -from System import Environment def GetDeadlineEventListener(): return PypeEventListener() @@ -71,7 +68,6 @@ class PypeEventListener(Deadline.Events.DeadlineEventListener): self.ALREADY_INJECTED = False - def Cleanup(self): del self.OnJobSubmittedCallback del self.OnJobStartedCallback @@ -101,7 +97,7 @@ class PypeEventListener(Deadline.Events.DeadlineEventListener): del self.OnThermalShutdownCallback del self.OnMachineRestartCallback - def inject_pype_environment(self, job, additonalData={}): + def inject_pype_environment(self, job, additonalData=None): if self.ALREADY_INJECTED: self.LogInfo("Environment injected previously") @@ -117,16 +113,19 @@ class PypeEventListener(Deadline.Events.DeadlineEventListener): self.LogInfo("inject_pype_environment start") try: + pype_command = "pype_console" if platform.system().lower() == "linux": pype_command = "pype_console.sh" - elif platform.system().lower() == "windows": + if platform.system().lower() == "windows": pype_command = "pype_console.exe" - pype_root = self.GetConfigEntryWithDefault("PypeExecutable", "").strip() + pype_root = self.GetConfigEntryWithDefault("PypeExecutable", "") - pype_app = os.path.join(pype_root , pype_command) + pype_app = os.path.join(pype_root.strip(), pype_command) if not os.path.exists(pype_app): - raise RuntimeError("App '{}' doesn't exist. Fix it in Tools > Configure Events > pype".format(pype_app)) + raise RuntimeError("App '{}' doesn't exist. " + + "Fix it in Tools > Configure Events > " + + "pype".format(pype_app)) # tempfile.TemporaryFile cannot be used because of locking export_url = os.path.join(tempfile.gettempdir(), @@ -134,20 +133,21 @@ class PypeEventListener(Deadline.Events.DeadlineEventListener): 'env.json') # add HHMMSS + delete later self.LogInfo("export_url {}".format(export_url)) - additional_args = {} - additional_args['project'] = job.GetJobEnvironmentKeyValue('AVALON_PROJECT') - additional_args['asset'] = job.GetJobEnvironmentKeyValue('AVALON_ASSET') - additional_args['task'] = job.GetJobEnvironmentKeyValue('AVALON_TASK') - additional_args['app'] = job.GetJobEnvironmentKeyValue('AVALON_APP_NAME') - self.LogInfo("args::{}".format(additional_args)) + add_args = {} + add_args['project'] = \ + job.GetJobEnvironmentKeyValue('AVALON_PROJECT') + add_args['asset'] = job.GetJobEnvironmentKeyValue('AVALON_ASSET') + add_args['task'] = job.GetJobEnvironmentKeyValue('AVALON_TASK') + add_args['app'] = job.GetJobEnvironmentKeyValue('AVALON_APP_NAME') + self.LogInfo("args::{}".format(add_args)) args = [ pype_app, 'extractenvironments', export_url ] - if all(additional_args.values()): - for key, value in additional_args.items(): + if all(add_args.values()): + for key, value in add_args.items(): args.append("--{}".format(key)) args.append(value) @@ -163,13 +163,13 @@ class PypeEventListener(Deadline.Events.DeadlineEventListener): for key, value in contents.items(): job.SetJobEnvironmentKeyValue(key, value) - Deadline.Scripting.RepositoryUtils.SaveJob(job) # IMPORTANT + Deadline.Scripting.RepositoryUtils.SaveJob(job) # IMPORTANT self.ALREADY_INJECTED = True os.remove(export_url) self.LogInfo("inject_pype_environment end") - except Exception as error: + except Exception: import traceback self.LogInfo(traceback.format_exc()) self.LogInfo("inject_pype_environment failed") @@ -177,7 +177,7 @@ class PypeEventListener(Deadline.Events.DeadlineEventListener): raise def updateFtrackStatus(self, job, statusName, createIfMissing=False): - "Updates version status on ftrack" + """Updates version status on ftrack""" pass def OnJobSubmitted(self, job): @@ -220,7 +220,7 @@ class PypeEventListener(Deadline.Events.DeadlineEventListener): def OnJobError(self, job, task, report): self.LogInfo("OnJobError LOGGING") - data = {"task": task, "report": report} + #data = {"task": task, "report": report} def OnJobPurged(self, job): pass diff --git a/pype/modules/deadline/deadline_module.py b/vendor/deadline/custom/plugins/deadline_module.py similarity index 100% rename from pype/modules/deadline/deadline_module.py rename to vendor/deadline/custom/plugins/deadline_module.py