envoy-client-docs.gridmarkets.com Open in urlscan Pro
188.114.97.3  Public Scan

URL: https://envoy-client-docs.gridmarkets.com/
Submission: On July 08 via automatic, source certstream-suspicious — Scanned from NL

Form analysis 1 forms found in the DOM

<form>
  <div class="form-group">
    <input type="search" class="form-control" placeholder="Search..." id="mkdocs-search-query" title="Type search term here">
  </div>
</form>

Text Content

GridMarkets Envoy Client v7.1.10
 * Search

 * Introduction
   * Concepts
   * Installation
   * Creating an Envoy client instance
   * Authentication
   * Getting user details including credits balance
   * Discovering product types and supported product type plugins
   * Get all product types using product resolver
   * Get the list of versions by product type or plugin type
   * Get compatible combination for a specific product type and version
   * Get compatible combination for one or more product type and versions
   * Fetching machine types
   * Uploading and submitting project together
   * Uploading just the project files
   * Submitting a project skipping upload of files
   * Setting up a project with job dependencies
   * Setting credits budget limit and action trigger for a job
   * Fetching status of the project
   * Error handling
   * Getting package version
   * Validating authentication
   * Validating user credits
   * Blender job
   * Cinema4D job
   * Houdini Job
   * Maya job
   * Nuke job
   * V-Ray job


INTRODUCTION

GridMarkets Envoy client is Python library which enables users to upload project
files, submit the project for processing and lookup status of submissions by
interfacing with the Envoy service.


CONCEPTS


ENVOY

Envoy is a tool which end users install on their machines to manage project
files uploaded to GridMarkets, watch and download results.

Envoy consists of a user interface portion and an underlying local web service
typically running at http://localhost:8090. Both Envoy user interface and the
Envoy client library uses the web service to interact with GridMarkets system.

When the user opens the Envoy user interface, Envoy web service will
automatically get started and keeps running in the background.


PROJECT

A project defines a group of one or more jobs which need to be processed
together.


JOB

Job defines the product type, version and other parameters required for
processing the same in GridMarkets. A job will be always be defined with a
project.


PRODUCT TYPES AND PLUGINS

Each job can be defined to run on a specific product version along with a list
of compatible product plugins.

The following table shows the list of supported product types and their
compatible plugins:

Note: Value in brackets are the short code to be used while defining the product
type ina job

Product Type Compatible Plugins Blender (blender) V-Ray (blender_vray) Cinema 4D
(c4d) Arnold (arnold), Redshift (redshift), V-Ray (vray) Houdini (hou) Arnold
(htoa), Nuke (hton), Redshift (hou_redshift), Renderman (prman), FFMPEG
Transcode (htot), V-Ray (hou_vray) Maya (hou) Arnold (mtoa), Redshift
(maya_redshift), Renderman (maya_prman), V-Ray (maya_vray) Nuke (nuke) V-Ray
(vray)

All the currently active list of product types and compatible plugins including
versions can be fetched via the product resolver explained further in a separate
section.


MACHINE TYPES

CPU or a GPU machine type can be chosen to run a job depending on your
requirement. Fetching the available machine types based on the product type and
plugins are covered in a separate section.


INSTANCES

This defines the requested number of concurrent tasks/frames to run for the job.
Note that the instances are constrained by your service plan applied across all
your jobs.


OPERATION TYPES

Each job has to define a operation type to use. This is also used for fetching
machine types to use as well.

The following are the operation types supported:

Operation type Description render Defines a render operation sim Defines a
simulation operation composite Defines a composite operation transcode Defines a
transcode operation

Each product type defines the operation types supported.


INSTALLATION

The Envoy Python client library is available as a universal Wheel package for
Python 2.6, 2.7 and 3.3+. Users can install it using pip or easy_install as a
global module or to a specific folder path to use and package with product
plugins.


PRE-REQUISITES

This has dependency on Python future and requests 2.x libraries. When using pip
or easy_install, dependencies are automatically installed.


USING IN PYTHON 2.6, 2.7 AND 3.3+

# Install as python global module
pip install https://gm-envoy-client-docs.netlify.com/downloads/gridmarkets_envoy_client-7.1.10-py2.py3-none-any.whl


# Install to a folder location to package with plugin
pip install https://gm-envoy-client-docs.netlify.com/downloads/gridmarkets_envoy_client-7.1.10-py2.py3-none-any.whl -t <target_dir>



CREATING AN ENVOY CLIENT INSTANCE

from gridmarkets import EnvoyClient

# create an instance of Envoy client
envoy_client = EnvoyClient()



AUTHENTICATION

Authenticate user using authenticate method as below. AuthenticationError is
thrown if authemtication is not successful.

envoy_client.authenticate('your@email.address', 'your_password')



GETTING USER DETAILS INCLUDING CREDITS BALANCE

# get get user info
user_info = envoy_client.get_user_info()



RESPONSE

{
  "created": "2019-07-01T15:27:48",
  "credits_available": 1000.0,
  "credits_consumed": 200.0,
  "email_address": "email_address",
  "job_throughput_limit": 30,
  "max_throughput": 30,
  "name": "your_name",
  "service_plan": "Standard"
}



DISCOVERING PRODUCT TYPES AND SUPPORTED PRODUCT TYPE PLUGINS

Envoy client provides a product resolver which enables the user to do the
following:

 * Get the list of all product types and their supported plugins.
 * Get the list of versions for a specific product type or plugin
 * Get compatible combination for one or more product types and/or plugins

Every product and product plugin has an associated code and version to identify
a specific product. Few examples below:

 * hou represents a Houdini product type
 * hou_redshift represents a Houdini Redshift plugin
 * hou:17.0.459 represents Houdini version 17.0.459

Above formats can be used to perform searches using the methods available in
product resolver.


GET ALL PRODUCT TYPES USING PRODUCT RESOLVER

# get product resolver
resolver = envoy_client.get_product_resolver()

# get all products including plugins
products = resolver.get_all_types()

# get all products excluding plugins
products = resolver.get_all_types(False)




RESPONSE

{
  "hou": {
    "versions": ["17.5.173", "17.5.229"],
    "is_plugin": false,
    "name": "Houdini",
    "business_vertical": "media"
  },
  "hou_redshift": {
    "versions": ["2.6.38", "2.6.39"],
    "is_plugin": true,
    "name": "hou_redshift",
    "business_vertical": "media"
  }
}



GET THE LIST OF VERSIONS BY PRODUCT TYPE OR PLUGIN TYPE

# get product resolver
resolver = envoy_client.get_product_resolver()

# get products for Houdini product type
qry = 'hou'
products = resolver.get_versions_by_type(qry)

# get products supporting Houdini Redshift plugin
qry = 'hou_redshift'
products = resolver.get_versions_by_type(qry)



RESPONSE

["14.0.395", "15.0.459"]



GET COMPATIBLE COMBINATION FOR A SPECIFIC PRODUCT TYPE AND VERSION

# get product resolver
resolver = envoy_client.get_product_resolver()

# get compatible combinations for a specific Houdini version
# query type can be a list of tuple, the example below uses a tuple
qry = ('hou:17.5.173',) # or qry = ['hou:17.5.173']
products = resolver.get_compatible_combinations(qry)



RESPONSE

{
  "hou_redshift": {
    "versions": ["2.6.37", "2.6.38", "2.6.39"],
    "is_plugin": true,
    "name": "Houdini",
    "business_vertical": "media"
  },
  "htoa": {
    "versions": ["4.0.1", "4.0.2"],
    "is_plugin": true,
    "name": "htoa",
    "business_vertical": "media"
  }
}



GET COMPATIBLE COMBINATION FOR ONE OR MORE PRODUCT TYPE AND VERSIONS

# get product resolver
resolver = envoy_client.get_product_resolver()

# get compatible combinations for Houdini versions 17.5.173 and 17.5.229
# query type can be a list of tuple, the example below uses a tuple
qry = ('hou:17.5.173', 'hou:17.5.229') # or qry = ['hou:17.5.173', 'hou:17.5.229'] 
products = resolver.get_compatible_combinations(qry)



RESPONSE

{
  "hou_redshift": {
    "versions": ["2.6.37", "2.6.38", "2.6.39"],
    "is_plugin": true,
    "name": "hou_redshift",
    "business_vertical": "media"
  }
}


Note that the queries can be one or more product types or the short code which
is a combination of product type and version.


FETCHING MACHINE TYPES

# get the CPU machines for say Cinema 4D
# Refer to the product types and plugins section to know about the codes to be used
envoy_client.get_machines('c4d', 'render', category=EnvoyClient.MACHINE_CATEGORY_CPU)

# get the GPU machines for say Cinema 4D and Arnold plugin
envoy_client.get_machines('c4d', 'render', category=EnvoyClient.MACHINE_CATEGORY_CPU, ['arnold'])

# get all machine types for say Cinema 4D
envoy_client.get_machines('c4d', 'render', category=EnvoyClient.MACHINE_CATEGORY_ALL)



RESPONSE

[
  {
    "gpu": false,
    "id": "gm4800",
    "is_default": true,
    "name": "GM4800"
  },
  {
    "gpu": false,
    "id": "gm6400",
    "is_default": false,
    "name": "GM6400"
  },
  {
    "gpu": true,
    "id": "1xp100-ob220",
    "is_default": true,
    "name": "1xP100 : OB220"
  },
  {
    "gpu": true,
    "id": "1xv100-ob330",
    "is_default": false,
    "name": "1xV100 : OB330"
  }
]



UPLOADING AND SUBMITTING PROJECT TOGETHER

Uploading of files and submission of the project for processing can be done
together by following the steps below. This will be the common and most used
method to send the project for processing in GridMarkets.

Uploading and submitting can be performed separately as well, this is more
useful when you would want to run multiple jobs with different parameters on the
same job files. This is covered in a separate section.


CREATE A INSTANCE OF ENVOYCLIENT

from gridmarkets import EnvoyClient
from gridmarkets import Project
from gridmarkets import Job
from gridmarkets import WatchFile

# create an instance of Envoy client
envoy_client = EnvoyClient()

# authenticate user
envoy_client.authenticate('your@email.address', 'your_password')



CREATE A PROJECT

# create a project
# project files root folder path
project_folder = "c:\\sample_project"

# name of the project is optional, if not passed inferred from the project root folder
# this is also used the as name for the remote root folder so ensure it is a valid file system folder name
project_name = "sample_project"

# submission name
# this is optional argument, if not passed, a timestamp based submission name is automatically set
submission_name = "submission 1"

# results output folder name
# this is optional argument to override the results folder name which is by default the submission name
results_folder_name = "my_results"

project = Project(project_folder, name=project_name, submission_name=submission_name, output_folder_name=results_folder_name)



ADD PROJECT FILES FOR UPLOAD

# add files to project
# only files and folders within the project path can be added, use relative or full path
# any other paths passed will be ignored
# set the local folder, you can use path set in the project or can use a different folder path
local_folder = "c:\\sample_project" # or project.LocalRoot
# set the remote path, this path is either the remote folder or a folder within the remote folder path
remote_folder = project.RemoteRoot
# add 2 files from local folder into remote folder
project.add_files(local_folder, remote_folder, ['sample.c4d', 'another_file.ext'])

# add assets folder
local_folder = "c:\\sample_project\\assets"
# remote folders always use forward slashes as path separator
remote_folder = project.RemoteRoot + '/assets'
# all the files/folders in the local folder is added to the remote folder
project.add_files(local_folder, remote_folder)



ADD JOB

# define the jobs
# create a Cinema4D job

job = Job(
  name="test job", # job name
  app="c4d", # product/app type
  app_version="R19", # product type version
  operation="render", # operation
  path="sample_project/sample.c4d", # job file to be run, note that the path is relative to the project name which is also the remote folder name
  instances=5, # instances - number of instances to to be used for processing the job
  machine_type='gm4800', # machine type to be used, check the section which describes fetching available machine types. If passed empty string then GridMarkets will select the default based on your profile settings
  plugins=None,
  # rest of the params are job specific params
  frames="0 0 1",
  output_height=600,
  output_width=400,
  output_format='tiff'
)

# add job to project
project.add_jobs(job)



ADD WATCH FILES TO AUTO DOWNLOAD RESULTS

# setting watch files to auto download results
# Note that if watch files are not set, by default, results will get downloaded to the result folder argument `results_folder_name` set for the project.

# results regex pattern to download
# `project.remote_output_folder` provides the remote root folder under which results are available
# below is the regex to look for all folders and files under `project.remote_output_folder`
output_pattern = '{0}/.+'.format(project.remote_output_folder)

# download path
download_path = 'c:\\sample_project\my_results'

# create a watch file
watch_file = WatchFile(output_pattern, download_path)

# add watch files, this will auto download results to the defined `download_path`
project.add_watch_files(watch_file)



SUBMIT PROJECT

# submit project
resp = envoy_client.submit_project(project) # returns project name



UPLOADING JUST THE PROJECT FILES

There are cases where users might want to upload files and then run multiple
submission based on the already uploaded files. The code below details the step
to upload project files.

# upload files project
response = envoy_client.upload_project_files(project) # returns project name



SUBMITTING A PROJECT SKIPPING UPLOAD OF FILES

As indicated in the prior section, users can perform multiple submissions with
different parameters based on the already uploaded files. Note that all project
files should be available in GridMarkets system for running jobs successfully.
Follow the steps below to submit a project for processing in GridMarkets system.

# submit project
skip_upload = True
envoy_client.submit_project(project, skip_upload)



SETTING UP A PROJECT WITH JOB DEPENDENCIES

Users can setup inter-job dependencies to enable GridMarkets system to pipeline
the job processing accordingly.

job1 = Job(...)
job2 = Job(...)
job3 = Job(...)

# setting up job1 and job2 as dependencies to job3
# GridMarkets system will process job1 and job2 followed by job3.
job3.add_dependencies(job1, job2)



SETTING CREDITS BUDGET LIMIT AND ACTION TRIGGER FOR A JOB


# create a job
job = Job(...)

# set credits limit for job and stop the job if consumed credits reaches 50
job.set_credits_budget(value=50.00,action=Job.CREDITS_BUDGET_ACTION_STOP)

# set credits limit for job and suspend the job if consumed credits reaches 50
# When a job gets suspended, already running tasks are allowed to complete and non-started tasks are stopped
job.set_credits_budget(value=50.00,action=Job.CREDITS_BUDGET_ACTION_SUSPEND)

# set credits limit for job and send an email alert if consumed credits reaches 50
job.set_credits_budget(value=50.00,action=Job.CREDITS_BUDGET_ACTION_ALERT)



FETCHING STATUS OF THE PROJECT

# project name
project_name = "sample_project"

resp = envoy_client.get_project_status(project_name)



RESPONSE

{
  "Code": 200,
  "State": "Uploading",
  "Message": "File uploads in progress.",
  "BytesDone": 0,
  "BytesTotal": 2971998,
  "Details": {
    "/sample project/test.c4d": {
      "Name": "/sample project/test.c4d",
      "State": "Uploading",
      "BytesDone": 0,
      "BytesTotal": 2971998,
      "Speed": 0
    }
  },
  "Speed": 0
}


{
  "Code": 200,
  "State": "Submitted",
  "Message": "Job submission successful.",
  "BytesDone": 2971998,
  "BytesTotal": 2971998,
  "Details": {
    "/sample project/test.c4d": {
      "Name": "/sample project/test.c4d",
      "State": "Completed",
      "BytesDone": 2971998,
      "BytesTotal": 2971998,
      "Speed": "0.00"
    }
  },
  "Speed": 0
}



ERROR HANDLING

This section outlines the possible error/exceptions thrown by EnvoyClient while
instantiating and calling the methods on it. It is always a good idea to wrap
the instantiation and call to EnvoyClient functions within a try... except..
block.


AUTHENTICATIONERROR

This exception is thrown by Envoy client when user credentials are incorrect.


INSUFFICIENTCREDITSERROR

This exception is thrown when the user credits is not positive while doing a
submission using the Envoy client.


INVALIDREQUESTERROR

If any of the Job data is incorrect then InvalidRequestError is thrown.


APIERROR

This is a generic error/exception thrown when EnvoyClient is not able to
communicate with Envoy service or any other errors.


ALL EXCEPTIONS IN TRY..CATCH.. BLOCK

from gridmarkets import EnvoyClient
from gridmarkets import Project
from gridmarkets import Job
from gridmarkets import *

try:
  # create an instance of Envoy client
  envoy_client = EnvoyClient(email="EMAIL_ADDRESS", access_key="ACCESS_KEY")
  ...
  ... 
  ... 
  # any other calls on Envoy client
except AuthenticationError as e:
  # handle the exception pertaining to AuthenticationError
except InsufficientCreditsError as e:
  # handle the exception pertaining to InsufficientCreditsError
except InvalidRequestError as e:
  # handle the exception pertaining to InvalidRequestError
except ApIError as e:
  # handle the exception pertaining to APIError



GETTING PACKAGE VERSION

Use the code below to get the current package version

version = envoy_client.version



VALIDATING AUTHENTICATION

For some cases like usage within a plugin, you would want to explicitly validate
whether the user credentials are valid. You can use the code below to validate
authentication

try:
  is_auth_valid = envoy_client.validate_auth()
except AuthenticationError as e:
  # handle exception, this means that the user credentials are not valid



VALIDATING USER CREDITS

For some cases like usage within a plugin, you would want to explicitly validate
user credits. You can use the code below.

try:
  is_valid_credits = envoy_client.validate_credits()
except InsufficientCreditsError as e:
  # handle exception, this means that the user credits is not positive



BLENDER JOB

from gridmarkets import Job

job = Job(
  name=JOB_NAME, # job name
  app=PRODUCT_TYPE, # product type
  app_version=PRODUCT_VERSION, # product version
  operation=OPERATION, # operation
  path=RENDER_FILE, # job file to be run, note that the path is relative to the project name which is also the remote folder name
  instances=5, # requested concurrent machines
  machine_type=MACHINE_TYPE, # machine type to use
  plugins=PLUGINS, # plugins to be used
  frames=FRAMES, # rest are all job specific params
  output_prefix=OUTPUT_PREFIX,
  output_format=OUTPUT_FORMAT,
  engine=RENDER_ENGINE, # optional param
  gpu=GPU # optional param
)



Name Type Description JOB_NAME string Job name is the first argument passed to
Job instance PRODUCT_TYPE string blender should be passed for Blender
PRODUCT_VERSION string Supported Blender version should be passed, fetched via
product resolver OPERATION string render is the only supported operation
RENDER_FILE string Path to .blend file expressed relative to the remote project
folder. If your project name is sample_project then remote root becomes /sample
project. Render file path example is /sample project/sample.blend INSTANCES
number Requested number of concurrent machine to process job MACHINE_TYPE string
Machine type to use, see section fetching machine types PLUGINS string list
Plugins to use FRAMES string Defines the frame range in format start [end]
[step],[start [end] [step]],... OUTPUT_PREFIX string Defines the render output
file prefix OUTPUT_FORMAT string Defines the render output format RENDER_ENGINE
string (optional) Defines the render engine to be used GPU bool (optional)
Defines if a GPU is required for running the job.


CINEMA4D JOB

from gridmarkets import Job

job = Job(
  name=JOB_NAME, # job name
  app=PRODUCT_TYPE, # product type
  app_version=PRODUCT_VERSION, # product version
  operation=OPERATION, # operation
  path=RENDER_FILE, # job file to be run, note that the path is relative to the project name which is also the remote folder name
  instances=5, # requested concurrent machines
  machine_type=MACHINE_TYPE, # machine type to use
  plugins=PLUGINS, # plugins to be used
  frames=FRAMES, # rest are all job specific params
  output_height=OUTPUT_HEIGHT,
  output_width=OUTPUT_WIDTH,
  output_prefix=OUTPUT_PREFIX,
  output_format=OUTPUT_FORMAT,
  output_multipass_prefix=OUTPUT_MULTIPASS_PREFIX # optional param,
  gpu=GPU
)



Name Type Description JOB_NAME string Job name is the first argument passed to
Job instance PRODUCT_TYPE string c4d should be passed for Cinema4D
PRODUCT_VERSION string Supported Cinema4D version should be passed fetched via
product resolver OPERATION string render is the only supported operation
RENDER_FILE string Path to .c4d file expressed relative to the remote project
folder. If your project name is sample_project then remote root becomes /sample
project. Render file path example is /sample project/sample.c4d INSTANCES number
Requested number of concurrent machine to process job MACHINE_TYPE string
Machine type to use, see section fetching machine types PLUGINS string list
Plugins to use FRAMES string Defines the frame range in format start [end]
[step],[start [end] [step]],... OUTPUT_WIDTH number Defines the render output
file width OUTPUT_HEIGHT number Defines the render output file height
OUTPUT_PREFIX string Defines the render output file prefix OUTPUT_FORMAT string
Defines the render output file format OUTPUT_MULTIPASS_PREFIX string (optional)
Defines the multipass render output file prefix GPU bool (optional) Defines if a
GPU is required for running the job.


HOUDINI JOB


PROJECT LEVEL PARAMETERS

# create a project
project = Project(SRC_PATH, PROJECT_NAME,
    project_summary_log_file=PROJECT_SUMMARY_LOG_FILE,
    project_param_output=PROJECT_PARAM_OUTPUT,
    project_param=PROJECT_PARAM,
    project_env=PROJECT_ENV)


Project level parameters are common and shared across all jobs in the project.

Name Type Description PROJECT_SUMMARY_LOG_FILE string Defines the path of the
summary log files generated by Houdini plugin PROJECT_PARAM_OUTPUT list Defines
the list of project output parameters PROJECT_PARAM dict Defines the project
output parameter mappings PROJECT_ENV dict Defines the project level environment
variable mappings PROJECT_PARAM dict Defines the project parameters


JOB LEVEL PARAMETERS

# create Houdini job
job = Job(
  name=JOB_NAME, # job name
  app=PRODUCT_TYPE, # product type
  app_version=PRODUCT_VERSION, # product version
  operation=OPERATION, # operation
  path=RENDER_FILE, # job file to be run, note that the path is relative to the project name which is also the remote folder name
  instances=5, # requested concurrent machines
  machine_type=MACHINE_TYPE, # machine type to use
  plugins=PLUGINS, # plugins to be used
  frames=FRAMES,
  take=TAKE,
  rop_nodetype=ROP_NODE_TYPE,
  rop_nodepath=ROP_NODE_PATH,
  output_upload=OUTPUT_UPLOAD,
  disk_output_ext=DISK_OUTPUT_EXT,
  disk_output_mode=DISK_OUTPUT_MODE,
  disk_output_parm=DISK_OUTPUT_PARM,
  disk_output_path=DISK_OUTPUT_PATH,
  disk_output_renderer=DISK_OUTPUT_RENDERER,
  disk_output_path_parm=DISK_OUTPUT_PATH_PARM
  gpu=GPU)


Name Type Description JOB_NAME string Job name is the first argument passed to
Job instance. PRODUCT_TYPE string hou should be passed for Houdini.;
PRODUCT_VERSION string Supported Houdini version should be passed fetched via
product resolver. OPERATION string (optional) render, batch are supported
operations. Default is render if this parameter is not passed. RENDER_FILE
string Path to .hip, .hipnc, .hiplc file expressed relative to the remote
project folder. If your project name is sample_project then remote root becomes
/sample project. Render file path example is /sample project/sample.hip.
INSTANCES number Requested number of concurrent machine to process job
MACHINE_TYPE string Machine type to use, see section fetching machine types
PLUGINS string list Plugins to use FRAMES string Defines the frame range in
format start [end] [step],[start [end] [step]],... ROP_NODE_TYPE string Defines
the render operation node type. ROP_NODE_PATH string Defines the render
operation node path. OUTPUT_UPLOAD list Defines the output pattern to be
uploaded to long time storage (LTS). DISK_OUTPUT_EXT string (optional) Defines
the disk output extension. DISK_OUTPUT_MODE string (optional) Defines the disk
output mode. DISK_OUTPUT_PARM string (optional) Defines the disk output
parameter. DISK_OUTPUT_PATH string (optional) Defines the disk output path.
DISK_OUTPUT_RENDERER string (optional) Defines the disk output renderer.
DISK_OUTPUT_PATH_PARM string (optional) Defines the disk output path parameter.
GPU bool (optional) Defines if a GPU is required for running the job.


MAYA JOB

# create Maya job
job = Job(
  name=JOB_NAME, # job name
  app=PRODUCT_TYPE, # product type
  app_version=PRODUCT_VERSION, # product version
  operation=OPERATION, # operation
  path=RENDER_FILE, # job file to be run, note that the path is relative to the project name which is also the remote folder name
  instances=5, # requested concurrent machines
  machine_type=MACHINE_TYPE, # machine type to use
  plugins=PLUGINS, # plugins to be used
  ## Maya specific parameters
  frames=FRAMES,
  output_height=OUTPUT_HEIGHT,
  output_width=OUTPUT_WIDTH,
  output_prefix=OUTPUT_PREFIX,
  output_format=OUTPUT_FORMAT,
  camera=CAMERA,
  renderer=RENDERER,
  gpu=GPU


Name Type Description JOB_NAME string Job name is the first argument passed to
Job instance PRODUCT_TYPE string maya should be passed for V-Ray PRODUCT_VERSION
string Supported V-Ray version should be passed fetched via product resolver
OPERATION string render is the only supported operation RENDER_FILE string Path
to .ma or .mb file expressed relative to the remote project folder. If your
project name is sample_project then remote root becomes /sample project. Render
file path example is /sample project/sample.vrscene INSTANCES number Requested
number of concurrent machine to process job MACHINE_TYPE string Machine type to
use, see section fetching machine types PLUGINS string list Plugins to use
FRAMES string Defines the frame range in format start [end] [step],[start [end]
[step]],... OUTPUT_WIDTH number Defines the render output width OUTPUT_HEIGHT
number Defines the render output height OUTPUT_PREFIX string Defines the render
output file prefix OUTPUT_FORMAT string Defines the render output format GPU
bool (optional) Defines if a GPU is required for running the job.


NUKE JOB

# create Nuke job
job = Job(
  name=JOB_NAME, # job name
  app=PRODUCT_TYPE, # product type
  app_version=PRODUCT_VERSION, # product version
  operation=OPERATION, # operation
  path=RENDER_FILE, # job file to be run, note that the path is relative to the project name which is also the remote folder name
  instances=5, # requested concurrent machines
  machine_type=MACHINE_TYPE, # machine type to use
  plugins=PLUGINS, # plugins to be used
  frames=FRAMES,
  gpu=GPU # optional param



Name Type Description JOB_NAME string Job name is the first argument passed to
Job instance. PRODUCT_TYPE string nuke should be passed for Nuke.;
PRODUCT_VERSION string Supported Nuke version should be passed fetched via
product resolver. OPERATION string (optional) render is the only supported
operations. Default is render if this parameter is not passed. RENDER_FILE
string Path to .nk file expressed relative to the remote project folder. If your
project name is sample_project then remote root becomes /sample project. Render
file path example is /sample project/sample.nk. INSTANCES number Requested
number of concurrent machine to process job MACHINE_TYPE string Machine type to
use, see section fetching machine types PLUGINS string list Plugins to use
FRAMES string Defines the frame range in format start [end] [step],[start [end]
[step]],... GPU bool (optional) Defines if a GPU is required for running the
job.


V-RAY JOB

from gridmarkets import Job

job = Job(
  name=JOB_NAME, # job name
  app=PRODUCT_TYPE, # product type
  app_version=PRODUCT_VERSION, # product version
  operation=OPERATION, # operation
  path=RENDER_FILE, # job file to be run, note that the path is relative to the project name which is also the remote folder name
  instances=5, # requested concurrent machines
  machine_type=MACHINE_TYPE, # machine type to use
  plugins=PLUGINS, # plugins to be used
  frames=FRAMES, # rest are all job specific params
  output_height=OUTPUT_HEIGHT,
  output_width=OUTPUT_WIDTH,
  output_prefix=OUTPUT_PREFIX,
  output_format=OUTPUT_FORMAT,
  rt_engine=RT_ENGINE, # optional param
  sampling_type=SAMPLING_TYPE # optional param
  remap_file=REMAP_FILE # optional param
)



Name Type Description JOB_NAME string Job name is the first argument passed to
Job instance PRODUCT_TYPE string vray should be passed for V-Ray PRODUCT_VERSION
string Supported V-Ray version should be passed fetched via product resolver
OPERATION string render is the only supported operation RENDER_FILE string Path
to .vrscene file expressed relative to the remote project folder. If your
project name is sample_project then remote root becomes /sample project. Render
file path example is /sample project/sample.vrscene INSTANCES number Requested
number of concurrent machine to process job MACHINE_TYPE string Machine type to
use, see section fetching machine types PLUGINS string list Plugins to use
FRAMES string Defines the frame range in format start [end] [step],[start [end]
[step]],... OUTPUT_WIDTH number Defines the render output width OUTPUT_HEIGHT
number Defines the render output height OUTPUT_PREFIX string Defines the render
output file prefix OUTPUT_FORMAT string Defines the render output format
RT_ENGINE number Defines the RT engine, supported values are regular render (0),
CPU RT (1), GPU RT on OpenCL (3), GPU RT on CUDA (5) SAMPLING_TYPE number
Defines the sampling type, progressive or bucket REMAP_FILE number XML file path
which maps absolute paths to server folder resolved paths

--------------------------------------------------------------------------------

Documentation built with MkDocs.

SEARCH

×Close

From here you can search these documents. Enter your search terms below.





KEYBOARD SHORTCUTS

×Close

Keys Action ? Open this help n Next page p Previous page s Search