Welcome to Jobtronaut’s documentation!¶
Jobtronaut is an extension of the Tractor API for authoring extensive and reusable task hierarchies in a flexible fashion.
Contents:
Prerequisites¶
Jobtronaut was developed and tested within a Linux environment using Tractor 2.2 1715407 with Python 2.7. Besides the tractor python api itself it requires schema as external dependency.
Configuration¶
To make Jobtronaut fit into your environment nicely you can define your own configuation. This is supposed to be a python file and its full filepath need to be made available via the JOBTRONAUT_PLUGIN_PATH env var.
Variable Name | Type | Description | Default if not defined |
---|---|---|---|
COMMANDFLAGS_ARGUMENT_NAME | str |
A magic argument with the given name that can be used to inject additional flags into any command. This is especially useful if you are using an application bootstrap framework. | additional_command_flags |
LOGGING_NAMESPACE | str |
A custom namespace that can be used instead of the default one. | jobtronaut |
ENABLE_PLUGIN_CACHE | bool |
If True it will reuse plugins from its own cache instead of resourcing modules when initializing the Plugins discovery. | True |
PLUGIN_PATH | list |
A list of directories Jobtronaut’s Plugins discovery mechanism will use. All .py files in the given directories will be considered. | [] |
EXECUTABLE_RESOLVER | callable |
A custom callable that can be used to resolve a executable declared in within any of your Command tasks. The first item of Task.cmd() will be passed to the callable. | lambda x: x if os.path.isfile(x) and os.path.isabs(x) and os.access(x, os.X_OK) else (_ for _ in ()).throw(OSError("Command Id `{}` is not an executable.".format(x))) |
ENVIRONMENT_RESOLVER | callable |
A custom callable that can be used to resolve an environment. This will be ignored in case INHERIT_ENVIRONMENT is set to False. | lambda: OrderedDict(sorted(os.environ.items())) |
INHERIT_ENVIRONMENT | bool |
If set to True it will use the ENVIRONMENT_RESOLVER to add its return value to the envkey attribute of any resulting job. | True |
ARGUMENTS_SERIALIZED_MAX_LENGTH | int |
The maximum number of characters a serialized Arguments object can have within a command. It it exceeds this limit the serialized Arguments will be dumped into a file within the defined ARGUMENTS_STORAGE_PATH. | 10000 |
ARGUMENTS_STORAGE_PATH | str |
A directory path where serialized Arguments objects can be dumped. | |
JOB_STORAGE_PATH_TEMPLATE | str |
If set it defines where .alf job representation files will be dumped whenever a job was submitted. | |
KATANA_SCRIPT_WRAPPER | str |
Path to a custom python file that acts like a wrapper for Katana to allow consume python code directly. | <JOBTRONAUT_DIR>/author/scripts/katanascript.py |
MAYA_SCRIPT_WRAPPER | str |
Path to a custom python file that acts like a wrapper for Maya to allow consume python code directly. | <JOBTRONAUT_DIR>/author/scripts/mayascript.mel |
NUKE_SCRIPT_WRAPPER | str |
Path to a custom python file that acts like a wrapper for Nuke to allow consume python code directly. | <JOBTRONAUT_DIR>/author/scripts/nukescript.py |
TRACTOR_ENGINE_CREDENTIALS_RESOLVER | callable |
A custom callable that needs to be set whenever internal processes will use the tractor query api or you will use any of the jobtronaut.query features directly. This callable needs to return a valid Tractor user and password with proper permissions. | lambda: ("unknown_user", "unknown_password") |
Getting Started!¶
Contents:
Commandline Interface¶
We provide a commandline interface to easily submit any available task to Tractor or retrieve information about tasks and processors.
Usage¶
Available Subcommands:
>> jobtronaut -h
usage: -c [-h] {info,visualize,list,submit} ...
positional arguments:
{info,visualize,list,submit}
submit Submit a job to the farm.
list Can list all known plugins.
info Get more info on a specific plugin.
visualize Visualize the resulting task tree.
optional arguments:
-h, --help show this help message and exit
jobtronaut submit:
>> jobtronaut submit -h
usage: -c submit [-h] [--paused] --task TASK [--title TITLE]
[--comment COMMENT] [--service SERVICE]
[--afterjids JIDS] [--priority PRIORITY]
[--tags TAGS [TAGS ...]] [--projects PROJECTS [PROJECTS ...]]
[--args ARGNAME:ARGVALUE [ARGNAME:ARGVALUE ...]]
[--env ENVVAR:ENVVALUE [ENVVAR:ENVVALUE ...]]
optional arguments:
-h, --help show this help message and exit
--paused Submit the job in a paused state.
--local Submit the job locally. All commands will be enforced
to run on the spoolhost.
--task TASK Set the root task for the job.
--title TITLE Set a custom job title.
--comment COMMENT Set a job comment.
--service SERVICE Specify a hostmask to limit the blades this job can
run on.
--afterjids JIDS Only start the job when the jobs with these ids are
done.
--priority PRIORITY Set the priority of the job.
--maxactive MAXACTIVE Limit simultaneous active render nodes. Default value
is 0 (no limit)
--tags TAGS [TAGS ...]
Speficy custom limit tags on the job.
--projects PROJECTS [PROJECTS ...]
Specify the projects of the job.
--args ARGNAME:ARGVALUE [ARGNAME:ARGVALUE ...]
Job Arguments. Supported value types are: str, int,
float, list
--env ENVVAR:ENVVALUE [ENVVAR:ENVVALUE ...]
Custom environment variables that will be set prior to
a command's execution on the farm
jobtronaut list:
>> jobtronaut list -h
usage: -c list [-h] {all,tasks,processors,sitestatusfilters}
positional arguments:
{all,tasks,processors,sitestatusfilters}
Define which plugins you want to list.
optional arguments:
-h, --help Show this help message and exit
--info Show the detailed information for every plugin.
jobtronaut info:
>> jobtronaut info -h
usage: -c info [-h] plugin
positional arguments:
plugin Specify the plugin name for which you want more information.
optional arguments:
-h, --help show this help message and exit
jobtronaut arguments:
>> jobtronaut arguments -h
usage: -c arguments [-h] [--filter FILTER] search
positional arguments:
search A task id to extract the arguments object from.
optional arguments:
-h, --help show this help message and exit
--filter FILTER A regex pattern to filter argument names. Default: '.*'