前言

本文介绍如何使用 Deadline 的 Python API 操作Deadline。通过 Python API 可在 Python 中与 HTTP API 通信。

拷贝 PythonAPI 模块

首先在使用 API 之前,需要配置python环境使我们可以调用到 API。我们需要安装和使用 python2.7.9或 3.7 以上的python版本,然后将 Deadline 储存库路径(//your/repository/api/python)下的整个“Deadline”文件夹复制到Python 安装路径下的的“site-packages”文件夹,API 即可调用。

Deadline拷贝PythonAPI

开启 WebService 服务

我们还需要通过 WebService 通信以发送和接收请求,因此,还要在 Deadline 管理的局域网中的任何一台可见的设备上运行 WebService服务,该服务为“C:\Program Files\Thinkbox\Deadline10\bin\deadlinewebservice.exe”,打开后,我们就可以通过该设备的设备名称或者Ip地址进行通讯,API访问的端口默认情况下为8082。

DeadlineWebServer

使用 PythonAPI

使用时,必须创建一个 DeadlineCon 对象。该对象用于与 WebService 通信以发送和接收请求,该对象需要两个参数:“运行 WebService 服务的设备名或IP地址”、“该设备上允许 WebService 通信的端口号(默认为8082)”,这两个参数可以从已经运行的 WebService 通讯服务上找到。

Deadline设备名称和端口号

然后我们就可以使用API创建一个连接对象“connectionObject = Deadline.DeadlineConnect.DeadlineCon(‘WebServiceName’, WebServicePortNumber)”, 通过该对象,我们可以查询、修改 Deadline 上的大部分信息。

示例代码1:查询作业组、暂停指定作业

import Deadline.DeadlineConnect as Connect  # 导入 Deadline.DeadlineConnect 作为连接
connectionObject = Connect.DeadlineCon('DESKTOP-Mirror', 8082)
print(connectionObject.Groups.GetGroupNames())
#["group1","group2","group3"]
jobId = "622c38262812473ba4c08eca"  #(有效的job ID号)
print(connectionObject.Jobs.SuspendJob(jobId))
# 'Success'

示例代码2:提交作业

import Deadline.DeadlineConnect as Connect

Deadline = Connect.DeadlineCon('DESKTOP-Mirror', 8082)
JobInfo = {
    "Name": "Submitted via Python",
    "UserName": "UserName",
    "Frames": "0-1",
    "Plugin": "VraySpawner"
}

PluginInfo = {
    "Version": "Max2014"
}

try:
    newJob = connectionObject.Jobs.SubmitJob(JobInfo, PluginInfo)
    print(newJob)
except:
    print("Sorry, Web Service is currently down!")

参考