pmanage = RepositoryUtils.GetPowerManagementOptions()
pmanage.Groups[0].SlaveNames.Add(slavename)
errored 2016-08-05 16:53:12: Traceback (most recent call last):
2016-08-05 16:53:12: File "none", line 62, in OnSlaveStarted
2016-08-05 16:53:12: AttributeError: 'String[]' object has no attribute 'Add'
2016-08-05 16:53:13: Auto Configuration: Picking configuration based on: Render-VM-05 / 192.168.94.79
Full Code:
[code]###############################################################
Imports
###############################################################
from System.Diagnostics import *
from System.IO import *
from System import TimeSpan
from Deadline.Events import *
from Deadline.Scripting import *
import re, sys, os, subprocess, traceback, shlex
###############################################################
This is the function called by Deadline to get an instance of the Draft event listener.
###############################################################
def GetDeadlineEventListener():
return ConfigSlaveEventListener()
def CleanupDeadlineEventListener( eventListener ):
eventListener.Cleanup()
###############################################################
The Draft event listener class.
###############################################################
class ConfigSlaveEventListener (DeadlineEventListener):
def init( self ):
self.OnSlaveStartedCallback += self.OnSlaveStarted
def Cleanup( self ):
del self.OnSlaveStartedCallback
## This is called when the job finishes rendering.
def OnSlaveStarted( self, slavename ):
try:
slaveSettings = RepositoryUtils.GetSlaveSettings(slavename, True)
if slavename.lower()[0:10] == "render-vm-":
remotehost="render-" + slavename[-2:] + "-host"
cmd="getmac /S " + remotehost + " /NH"
p=subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
output, errors = p.communicate()
if output is not None :
output = output.decode("utf-8")
if output != "":
try:
item = output.split("\n")[1].split(" ")[0]
slaveSettings.SlaveMacAddressOverride = item
RepositoryUtils.SaveSlaveSettings(slaveSettings)
except:
ClientUtils.LogText( traceback.format_exc() )
RepositoryUtils.AddPoolToSlave(slavename, "urgent")
RepositoryUtils.AddPoolToSlave(slavename, "global")
RepositoryUtils.AddGroupToSlave(slavename, "global")
RepositoryUtils.AddGroupToSlave(slavename, "i7_v01")
RepositoryUtils.AddGroupToSlave(slavename, "rendernodes")
pmanage = RepositoryUtils.GetPowerManagementOptions()
pmanage.Groups[0].SlaveNames.Add(slavename)
except:
ClientUtils.LogText( traceback.format_exc() )[/code]