Hi,
I have an event plugin that is triggered after the Draft Tile Assembler puts an image back together.
It triggers properly, and creates a new nuke job on the farm which should then run a test nuke script, but it gives me an GetPluginInfoEntry error and doesn’t specify what the problem is.
Full log from the slave:
[code]=======================================================
Error
Error: GetPluginInfoEntry: Script accessed non-existent plugin info key Version (Deadline.Plugins.RenderPluginException)
at Deadline.Plugins.DeadlinePlugin.GetPluginInfoEntry(String key)
at Python.Runtime.Dispatcher.TrueDispatch(ArrayList args)
at Python.Runtime.Dispatcher.Dispatch(ArrayList args)
at Deadline.Plugins.DeadlinePlugin.StartJob()
at Deadline.Plugins.DeadlinePlugin.DoStartJob()
at Deadline.Plugins.PluginWrapper.StartJob(String& outMessage, AbortLevel& abortLevel)
at Deadline.Plugins.PluginWrapper.StartJob(String& outMessage, AbortLevel& abortLevel)
=======================================================
Type
RenderPluginException
=======================================================
Stack Trace
at Deadline.Plugins.SandboxedPlugin.a(DeadlineMessage A_0)
at Deadline.Plugins.SandboxedPlugin.StartJob(Job job)
at Deadline.Slaves.SlaveRenderThread.a(TaskLogWriter A_0)
=======================================================
Log
2017-12-15 10:25:31: 0: Loading Job’s Plugin timeout is Disabled
2017-12-15 10:25:32: 0: Executing plugin command of type ‘Sync Files for Job’
2017-12-15 10:25:32: 0: All job files are already synchronized
2017-12-15 10:25:32: 0: Plugin Nuke was already synchronized.
2017-12-15 10:25:32: 0: Done executing plugin command of type ‘Sync Files for Job’
2017-12-15 10:25:32: 0: Executing plugin command of type ‘Initialize Plugin’
2017-12-15 10:25:33: 0: INFO: Executing plugin script ‘C:\Users\jaime\AppData\Local\Thinkbox\Deadline9\slave\wks15\plugins\5a33a30ff5105a57b8f9977b\Nuke.py’
2017-12-15 10:25:33: 0: INFO: About: Nuke Plugin for Deadline
2017-12-15 10:25:33: 0: INFO: Render Job As User disabled, running as current user ‘jaime’
2017-12-15 10:25:33: 0: INFO: The job’s environment will be merged with the current environment before rendering
2017-12-15 10:25:33: 0: Done executing plugin command of type ‘Initialize Plugin’
2017-12-15 10:25:33: 0: Start Job timeout is disabled.
2017-12-15 10:25:33: 0: Task timeout is disabled.
2017-12-15 10:25:33: 0: Loaded job: teapotdenoiser (Render) - Draft Tile Assembly (5a33a30ff5105a57b8f9977b)
2017-12-15 10:25:33: 0: Executing plugin command of type ‘Start Job’
2017-12-15 10:25:33: 0: INFO: Prepping OFX cache
2017-12-15 10:25:33: 0: INFO: Checking Nuke temp path: C:\Users\jaime\AppData\Local\Temp\nuke
2017-12-15 10:25:33: 0: INFO: Path already exists
2017-12-15 10:25:33: 0: INFO: OFX cache prepped
2017-12-15 10:25:33: 0: Done executing plugin command of type ‘Start Job’
=======================================================
Details
Date: 12/15/2017 10:25:35
Frames: 0
Elapsed Time: 00:00:00:05
Job Submit Date: 12/15/2017 10:25:18
Job User: jaime
Average RAM Usage: 5758337024 (34%)
Peak RAM Usage: 5758337024 (34%)
Average CPU Usage: 4%
Peak CPU Usage: 13%
Used CPU Clocks (x10^6 cycles): 655
Total CPU Clocks (x10^6 cycles): 16353
[/code]
And the simple event plugin:
[code]###############################################################
Imports
###############################################################
import re
from System.IO import *
from System.Text import *
from System import *
from Deadline.Events import *
from Deadline.Scripting import *
##################################################################################################
This is the function called by Deadline to get an instance of the Draft event listener.
##################################################################################################
def GetDeadlineEventListener():
return NukeDenoiseListener()
def CleanupDeadlineEventListener(eventListener):
eventListener.Cleanup()
###############################################################
The event listener class.
###############################################################
class NukeDenoiseListener (DeadlineEventListener):
def init(self):
self.OnJobFinishedCallback += self.OnJobFinished
def Cleanup(self):
del self.OnJobFinishedCallback
def OnJobFinished(self, job):
if job.JobPlugin != "DraftTileAssembler":
return
self.LogInfo("Event Plugin: Nuke is up to something...")
# Create job info file.
jobInfoFilename = Path.Combine( ClientUtils.GetDeadlineTempPath(), "nuke_job_info2dave2.job" )
writer = StreamWriter( jobInfoFilename, False, Encoding.Unicode )
writer.WriteLine( "Plugin=Nuke" )
writer.WriteLine( "Name=%s" % job.JobName )
writer.WriteLine( "Comment=Auto Nuke Denoiser" )
# writer.WriteLine( "Group=%s" % scriptDialog.GetValue( "GroupBox" ) )
# writer.WriteLine( "Priority=%s" % scriptDialog.GetValue( "PriorityBox" ) )
writer.WriteLine( "Frames=%s" % job.JobFrames )
writer.Close()
# Create plugin info file.
pluginInfoFilename = Path.Combine( ClientUtils.GetDeadlineTempPath(), "nuke_plugin_info.job2dave2" )
writer = StreamWriter( pluginInfoFilename, False, Encoding.Unicode )
writer.WriteLine( "SceneFile=%s" % r"\\****\Projects\2017\R_N_D\_nuke\nukecomper-test.nk" )
# writer.WriteLine( "SceneFile=%s" % sceneFile )
writer.WriteLine( "ContinueOnError=False" )
writer.WriteLine( "GpuOverride=0" )
writer.WriteLine( "NukeX=False" )
writer.WriteLine( "PerformanceProfiler=False" )
writer.WriteLine( "RamUse=0" )
writer.WriteLine( "RenderMode=Use Scene Settings" )
writer.WriteLine( "ScriptJob=False" )
writer.WriteLine( "StackSize=0" )
writer.WriteLine( "Threads=0" )
writer.WriteLine( "UseGpu=True" )
writer.Close()
ClientUtils.ExecuteCommand( (jobInfoFilename,pluginInfoFilename) )
self.LogInfo("Event Plugin: Complete")
[/code]
If I submit the Nuke job manually it will process fine.
Any ideas?
Thanks.