'proj': mayaProjPath,
'scene': mayaScenePath,

's': startFrame,
'e': endFrame,
'packetSize': packetSize,
'framesList': framesList,

'rx': resX,
'ry': resY,
'cam': camera,

'as': '1',

'o': outFileFormat,
'pad': paddingSize,
'f': renderDirPath,
'p': outFileNamePrefix
}

tags =  { "prod":"test", "shot":"test" }

decomposer='puliclient.contrib.puliDbg.mtoa.MtoaDecomposer'

graph = Graph('mtoa_graph', tags=tags, poolName='default' )

graph.addNewTask( "mtoa_task", tags=tags, arguments=arguments, decomposer=decomposer, lic="shave&mtoa" )

graph.submit("vfxpc64", 8004)
# graph.execute()
from puliclient import Task, Graph

if __name__ == '__main__':
    simpleTask = Task(name="simpleTask",
                      arguments={},
                      decomposer="puliclient.contrib.generic.GenericDecomposer")
    
    graph = Graph('simpleGraph', simpleTask)
    
    host, port = ("127.0.0.1", 8004)
    graph.submit(host, port)
    tags =  { "prod":"test", "shot":"test", "nbFrames":options.num }

    #
    # Create custom graph
    #
    simpleTask = Task( name=options.jobname, arguments=args, tags=tags, runner="puliclient.contrib.commandlinerunner.CommandLineRunner", lic="katana" )
    # simpleTask = Task( name="T-Generic", arguments=args, tags=tags, runner="puliclient.contrib.debug.WaitRunner" )
    graph = Graph( options.jobname, simpleTask, tags=tags, poolName='default' )

#    graph.addNewTask( name="T1", arguments={ "args": command, "start":1, "end":5, "packetSize":1 }, tags={ "prod":"test", "shot":"test", "nbFrames":5}, runner=runner )
#
#
#    g1 = graph.addNewTaskGroup( name="group1", tags=tags )
#    g1.addTask( simpleTask )
#    g1.addNewTask( name="T2", arguments={ "args": command, "start":1, "end":1, "packetSize":1 }, tags={ "prod":"test", "shot":"test", "nbFrames":1}, runner=runner )
#    g1.addNewTask( name="T3", arguments={ "args": command, "start":1, "end":1, "packetSize":1 }, tags={ "prod":"test", "shot":"test", "nbFrames":1}, runner=runner )
#
#    graph.addNewTask( name="T4", arguments={ "args": command, "start":1, "end":10, "packetSize":1 }, tags={ "prod":"test", "shot":"test", "nbFrames":10}, runner=runner )

    if options.dump:
        print graph

    #
    # Execute
    #
    if options.execute:
        graph.execute()
    else:
        graph.submit(options.hostname, options.port)

#!/usr/bin/python
# coding: utf-8

import sys
sys.path.insert(0,"/s/apps/lin/vfx_test_apps/OpenRenderManagement/Puli/src")


from puliclient import Task, Graph

# command = "nuke -x -F %%MI_FRAME%% ma_comp.nk"
# command = "nuke -x -F %%MI_START%%-%%MI_END%% ma_comp.nk"
# command = "echo currFrame=%%MI_FRAME%% in [%%MI_START%%-%%MI_END%%]"

command = "sleep %%MI_FRAME%%s"
arguments={ 'cmd':command, 'start':1, 'end':50 , 'packetSize':10}

tags =  { "prod":"test", "shot":"test" }

graph = Graph('Testing DefaultRunner', tags=tags, poolName='default' )
task1 = graph.addNewTask( "TASK_1", tags=tags, arguments=arguments )
graph.submit( "puliserver", 8004)

#
# Pour une execution en local
#
#graph.execute()
Exemple #5
0
parser.add_argument('nbTasks',
                    metavar='NB_TASK',
                    type=int,
                    help='Number of task by group.')
parser.add_argument('nbCmds',
                    metavar='NB_CMD',
                    type=int,
                    help='Number of commands by task')
parser.add_argument('server',
                    metavar='SERVER',
                    type=str,
                    help='Name of the server on which to submit job')
parser.add_argument('--sleep', type=int, default=5, help='Sleep duration in s')
args = parser.parse_args()

# Create graph
runner = "puliclient.contrib.generic.GenericRunner"
name = "Job_Test"
tags = {"prod": "mikros_test", "comment": "JOB TEST", "nbFrames": 1}
puliGraph = Graph(name, poolName='mik', tags=tags, maxRN=5)

print "NB_GROUP = " + str(args.nbGroups)
print "NB_TASK = " + str(args.nbTasks)
print "NB_CMD = " + str(args.nbCmds)
print "SERVER = " + args.server

createFolderNodes(puliGraph, args.nbGroups, args.nbTasks, args.nbCmds,
                  args.sleep)

puliGraph.submit(args.server, 8004)
if __name__ == "__main__":

    #
    # Submission script
    #
    tags = {
        "prod": "prod_name",
        "shot": "shot_code",
        # Add any valuable info relative to the job here: type, step, version, iteration...
    }

    # First we create a graph
    # Added to the graph is a dict of tags that will be used to clarify the job process
    graph = Graph('simple job', tags=tags)

    # To define a Task, we need 3 arguments :
    #   - its name
    #   - a runner is a python class that defines the workflow execution for a given job type.
    #     Here, we will use MyRunner which has been declared previously
    #   - an arguments dict
    name = "wait 10s"
    runner = "example.MyRunner"
    arguments = {"wait": 10}

    # Then add a new task to the graph
    graph.addNewTask(name, runner=runner, arguments=arguments)

    # Finally submit the graph to the server
    graph.submit("pulitest", 8004)
def submit(job, poolName=None):
    g = Graph(job.name, job, username(), poolName)
    print g.submit(gethost(), getport())
                   help='Number of task by group.')
parser.add_argument('nbCmds',
                   metavar='NB_CMD',
                   type=int,
                   help='Number of commands by task')
parser.add_argument('server',
                   metavar='SERVER',
                   type=str,
                   help='Name of the server on which to submit job')
parser.add_argument('--sleep',
                   type=int,
                   default=5,
                   help='Sleep duration in s')
args = parser.parse_args()

# Create graph
runner = "puliclient.contrib.generic.GenericRunner"
name = "Job_Test"
tags = {"prod": "mikros_test", "comment": "JOB TEST", "nbFrames": 1}
puliGraph = Graph(name, poolName='mik', tags=tags, maxRN=5)

print "NB_GROUP = " + str(args.nbGroups)
print "NB_TASK = " + str(args.nbTasks)
print "NB_CMD = " + str(args.nbCmds)
print "SERVER = " + args.server

createFolderNodes(puliGraph, args.nbGroups, args.nbTasks, args.nbCmds, args.sleep)

puliGraph.submit(args.server, 8004)

if __name__ == "__main__":

    #
    # Submission script
    #
    tags = {
        "prod": "prod_name",
        "shot": "shot_code",
        # Add any valuable info relative to the job here: type, step, version, iteration...
    }

    # First we create a graph
    # Added to the graph is a dict of tags that will be used to clarify the job process
    graph = Graph("simple job", tags=tags)

    # To define a Task, we need 3 arguments :
    #   - its name
    #   - a runner is a python class that defines the workflow execution for a given job type.
    #     Here, we will use MyRunner which has been declared previously
    #   - an arguments dict
    name = "wait 10s"
    runner = "example.MyRunner"
    arguments = {"wait": 10}

    # Then add a new task to the graph
    graph.addNewTask(name, runner=runner, arguments=arguments)

    # Finally submit the graph to the server
    graph.submit("pulitest", 8004)
    tags =  { "prod":"test", "shot":"test" }
    decomposer = "puliclient.contrib.generic.GenericDecomposer"

    graph = Graph('simpleGraph', tags=tags)
    task1 = graph.addNewTask(name="task1", arguments=args, tags=tags)
    task2 = graph.addNewTask(name="task2", arguments=args, tags=tags)
    task3 = graph.addNewTask(name="task3", arguments=args, tags=tags)    
    task4 = graph.addNewTask(name="task4", arguments=args, tags=tags)    
    task5 = graph.addNewTask(name="task5", arguments=args, tags=tags)    
    task6 = graph.addNewTask(name="task6", arguments=args, tags=tags)    

    # Create a chain of dependencies, execution order will be: 
    # task1 > task4 > task3 > task2 > task5 > task6
    graph.addChain( [task1, task4, task3, task2, task5, task6] )

    graph.submit(host="vfxpc64")


# PREVIOUS METHOD (still valid)
    # task1 = Task(name="task1", arguments=args, decomposer=decomposer)
    # task2 = Task(name="task2", arguments=args, decomposer=decomposer)
    # task3 = Task(name="task3", arguments=args, decomposer=decomposer)
    # task4 = Task(name="task4", arguments=args, decomposer=decomposer)
    # task5 = Task(name="task5", arguments=args, decomposer=decomposer)
    # task6 = Task(name="task6", arguments=args, decomposer=decomposer)

    # mainTG = TaskGroup( name="group" )
    # mainTG.addTask(task1)
    # mainTG.addTask(task2)
    # mainTG.addTask(task3)
    # mainTG.addTask(task4)
    # First we create a graph
    # Added to the graph is a dict of tags that will be used to clarify the job process
    graph = Graph('job with callable', tags=tags)

    # First task
    name = "callable function"

    graph.addNewCallable(
        myFunction,
        "callable function",
        user_args=("param1", "param2"),
        user_kwargs={"wait": 10},
    )

    # Second task
    name = "callable method"

    graph.addNewCallable(
        MyClass.myMethod,
        "callable method",
        user_args=(),
        user_kwargs={
            "param1": "first_param",
            "param2": "second_param",
            "wait": 10
        },
    )

    # Finally submit the graph to the server
    graph.submit("vfxpc64", 8004)
def submit(job, poolName=None, maxRN=-1):
    g = Graph(job.name, job, username(), poolName, maxRN)
    print g.submit(gethost(), getport())