def main(): # get an instance of the stub server = TacticServerStub() # start the transaction server.start("Set query") try: # define the search type we are searching for search_type = "prod/asset" # define a filter filters = [] filters.append( ("asset_library", "chr") ) # do the query assets = server.query(search_type, filters) # show number found print("found [%s] assets" % len(assets) ) # go through the asset and print the code for asset in assets: code = asset.get("code") print(code) except: # in the case of an exception, abort all of the interactions server.abort() raise else: # otherwise, finish the transaction server.finish()
def main(args): usage = "USAGE: checkin.py <search_type> <code> [context] <path>\n" usage += "example: python checkin.py beat Sc01.Bt01 .\\test\\image.png" context = "publish" # TODO: lots of assumptions here if len(args) == 2: # assume code and file path are equivalent code = args[1] file_path = args[1] elif len(args) == 3: code = args[1] file_path = args[2] elif len(args) == 4: code = args[1] context = args[2] file_path = args[3] else: print usage return search_type = args[0] server = TacticServerStub() # do the actual work server.start("Checked in file [%s] to [%s] - [%s]" % (file_path, search_type, code)) try: # query all of the search_types to simplify argument if search_type.find("/") == -1: columns = ["search_type"] results = server.query("sthpw/search_object", columns=columns) for result in results: test = result.get("search_type") if test.endswith("/%s" % search_type): search_type = test break else: raise Exception("Search type [%s] not found" % search_type) search_key = server.build_search_key(search_type, code) # upload the file server.upload_file(file_path) # checkin the uploaded file result = server.simple_checkin(search_key, context, file_path) except Exception as e: server.abort() print "ERROR: ", e.__str__() else: server.finish()
def main(): # get an instance of the stub server = TacticServerStub() # start the transaction server.start("Ping Test") try: # ping the server print server.ping() except: # in the case of an exception, abort all of the interactions server.abort() raise else: # otherwise, finish the transaction server.finish()
def main(): # get an instance of the stub server = TacticServerStub() # start the transaction server.start("Ping Test") try: # ping the server print server.ping() except: # in the case of an exception, abort all of the interactions server.abort() raise else: # otherwise, finish the transaction server.finish()
def main(args): # USAGE: query_shot.py <shot_code> shot_code = args[0] server = TacticServerStub() search_key = server.build_search_type(SEARCH_TYPE) # do the actual work server.start("Queried shot [%s]" % shot_code) try: filters = [('code', shot_code)] print server.query(search_key, filters) except: server.abort() raise else: server.finish()
def main(args): search_type = args[0] code = args[1] if len(args) == 2: context = "publish" to_dir = "." elif len(args) == 3: context = "publish" to_dir = args[2] else: context = args[2] to_dir = args[3] server = TacticServerStub() # do the actual work server.start("Checked out file/s to [%s]" % to_dir) try: # query all of the search_types to simplify argument if search_type.find("/") == -1: columns = ["search_type"] results = server.query("sthpw/search_object", columns=columns) for result in results: test = result.get("search_type") if test.endswith("/%s" % search_type): search_type = test break else: raise Exception("Search type [%s] not found" % search_type) search_key = server.build_search_key(search_type, code) # checkin the uploaded file version = -1 result = server.checkout(search_key, context, version=version, to_dir=to_dir) print result except: server.abort() raise else: server.finish()
def main(args, login=None): # USAGE: checkin_plates.py code = args[0] file_range = args[1] pattern = args[2] # hard-coded for now context = 'publish' server = TacticServerStub(login) # do the actual work server.start("Checked in file group [%s]" % pattern) try: # checkin the uploaded file filters = [] filters.append(('code', code)) results = server.query(SEARCH_TYPE, filters) # take the first one if results: id = results[0].get('id') else: print "Plate with code [%s] not found. Please insert an entry in the Plates tab first." %code return search_key = server.build_search_key(SEARCH_TYPE, id, column='id') # move the file dir = server.get_handoff_dir() print "Copied files to handoff dir\n" new_pattern = pattern file_type = 'main' # run group checkin server.group_checkin(search_key, context, file_path=new_pattern, file_type=file_type, \ file_range=file_range, mode='copy', info={'type':'2d_plates'}) except: server.abort() raise else: server.finish()
def main(args, login=None): # USAGE: checkin_plates.py code = args[0] file_range = args[1] pattern = args[2] # hard-coded for now context = 'publish' server = TacticServerStub(login) # do the actual work server.start("Checked in file group [%s]" % pattern) try: # checkin the uploaded file filters = [] filters.append(('code', code)) results = server.query(SEARCH_TYPE, filters) # take the first one if results: id = results[0].get('id') else: print "Plate with code [%s] not found. Please insert an entry in the Plates tab first." %code return search_key = server.build_search_key(SEARCH_TYPE, id, column='id') # move the file dir = server.get_handoff_dir() print "Copied files to handoff dir\n" new_pattern = pattern file_type = 'main' # run group checkin server.group_checkin(search_key, context, file_path=new_pattern, file_type=file_type, \ file_range=file_range, mode='copy', info={'type':'2d_plates'}) except: server.abort() raise else: server.finish()
def main(args): # USAGE: query_shot.py <shot_code> shot_code = args[0] server = TacticServerStub() search_key = server.build_search_type(SEARCH_TYPE) # do the actual work server.start("Queried shot [%s]" % shot_code) try: filters = [ ('code', shot_code) ] print server.query(search_key, filters) except: server.abort() raise else: server.finish()
def main(args, login=None): # USAGE: checkin_shot.py <shot_code> <context> <path> shot_code = args[0] context = args[1] file_path = args[2] server = TacticServerStub(login) search_key = server.build_search_key(SEARCH_TYPE, shot_code) # do the actual work server.start("Checked in file [%s]" % file_path) try: # upload the file #server.upload_file(file_path) # checkin the uploaded file result = server.simple_checkin(search_key, context, file_path, mode='upload') except: server.abort() raise else: server.finish()
def main(args, login=None): # USAGE: checkin_shot.py <shot_code> <context> <path> shot_code = args[0] context = args[1] file_path = args[2] server = TacticServerStub(login) search_key = server.build_search_key(SEARCH_TYPE, shot_code) # do the actual work server.start("Checked in file [%s]" % file_path) try: # upload the file # server.upload_file(file_path) # checkin the uploaded file result = server.simple_checkin(search_key, context, file_path, mode="upload") except: server.abort() raise else: server.finish()
import tacticenv from tactic_client_lib import TacticServerStub server = TacticServerStub(protocol="xmlrpc") #server.set_project("sample3d") server.set_ticket("60128265ebea63620de1f5b0ffc502eb") search_type = "prod/shot" server.start(title='cow') sobject = server.insert(search_type, {'description': 'wow'}) server.update(search_key, {'description': 'another update'}) server.finish() sobject = server.insert(search_type, {'description': 'wow2'}) sobject = server.insert(search_type, {'description': 'wow3'})
def main(args, login=None): # USAGE: checkin_render.py type = args[0] if type == "shot": parent_search_type = "prod/shot" elif type == "asset": parent_search_type = "prod/asset" else: parent_search_type = type code = args[1] file_range = args[2] pattern = args[3] layer_name = '' context = 'publish' if type == "layer": parent_search_type = "prod/layer" code, layer_name = args[1].split('|') server = TacticServerStub(login) # do the actual work server.start("Checked in file group [%s] to %s [%s]" % (pattern, type, code)) try: # checkin the uploaded file filters = [] if type == 'layer': filters.append(('shot_code', code)) filters.append(('name', layer_name)) else: filters.append(('code', code)) results = server.query(parent_search_type, filters) # take the first one if results: id = results[0].get('id') else: if type == 'layer': print "%s Code [%s] name [%s] not found. Please insert an entry in TACTIC first." % ( type, code, layer_name) else: print "%s Code [%s] not found. Please insert an entry in TACTIC first." % ( type, code) search_type = server.build_search_type(parent_search_type) file_type = 'main' render_type = '' # not used yet # move the file dir = server.get_handoff_dir() paths = expand_paths(pattern, file_range) copy_file(paths, dir) file_name = os.path.basename(pattern) new_pattern = '%s/%s' % (dir, file_name) print "Copied files to handoff dir\n" render = find_render(server, search_type, id, login, render_type) if not render: render_data = { 'search_type': search_type, 'search_id': id, 'login': login #'type': render_type } render = server.insert("prod/render", render_data) # run group checkin server.group_checkin(render.get("__search_key__"), context=context, file_path=new_pattern, file_type=file_type, file_range=file_range) except: server.abort() raise else: server.finish()
import tacticenv from tactic_client_lib import TacticServerStub server = TacticServerStub(protocol="xmlrpc") #server.set_project("sample3d") server.set_ticket("60128265ebea63620de1f5b0ffc502eb") search_type = "prod/shot" server.start(title='cow') sobject = server.insert(search_type, { 'description': 'wow'} ) server.update(search_key, { 'description': 'another update'} ) server.finish() sobject = server.insert(search_type, { 'description': 'wow2'} ) sobject = server.insert(search_type, { 'description': 'wow3'} )
def main(args, login=None): # USAGE: checkin_render_layer.py shot_code = args[0] layer_name = args[1] version = args[2] context = args[3] file_range = args[4] pattern = args[5] server = TacticServerStub(login) # do the actual work server.start("Checked in file group [%s] to shot [%s] layer [%s]" % (pattern, shot_code, layer_name)) try: # move the file dir = server.get_handoff_dir() paths = expand_paths(pattern, file_range) move_file(paths, dir) file_name = os.path.basename(pattern) new_pattern = '%s/%s' % (dir, file_name) print "Files moved to handoff dir.\n" # checkin the moved files filters = [] filters.append(('shot_code', shot_code)) filters.append(('name', layer_name)) results = server.query('prod/layer', filters) # take the first one if results: id = results[0].get('id') search_type = server.build_search_type('prod/layer') # find the layer snapshot filters = [] filters.append(('version', version)) filters.append(('search_type', search_type)) filters.append(('search_id', id)) #TODO : may need a context to search for the proper layer results = server.query('sthpw/snapshot', filters) snap_code = '' if results: snap_code = results[0].get('code') # find the render render = None filters = [] filters.append(('search_type', search_type)) filters.append(('search_id', id)) filters.append(('snapshot_code', snap_code)) results = server.query(SEARCH_TYPE, filters) if results: render = results[0] if not render: render_data = { 'search_type': search_type, 'search_id': id, 'snapshot_code': snap_code } render = server.insert("prod/render", render_data) ''' results = server.query(SEARCH_TYPE, filters) render_id = 0 if results: render_id = results[0].get('id') # find the render id search_key = server.build_search_key(SEARCH_TYPE, render_id, column='id') ''' file_type = 'main' # run group checkin server.group_checkin(render.get("__search_key__"), context=context, file_path=new_pattern, file_type=file_type, file_range=file_range) except: server.abort() raise else: server.finish()
def main(args, login=None): # USAGE: checkin_render.py type = args[0] if type == "shot": parent_search_type = "prod/shot" elif type == "asset": parent_search_type = "prod/asset" else: parent_search_type = type code = args[1] file_range = args[2] pattern = args[3] layer_name = '' context = 'publish' if type == "layer": parent_search_type = "prod/layer" code, layer_name = args[1].split('|') server = TacticServerStub(login) # do the actual work server.start("Checked in file group [%s] to %s [%s]" % (pattern,type,code)) try: # checkin the uploaded file filters = [] if type=='layer': filters.append(('shot_code', code)) filters.append(('name', layer_name)) else: filters.append(('code', code)) results = server.query(parent_search_type, filters) # take the first one if results: id = results[0].get('id') else: if type =='layer': print "%s Code [%s] name [%s] not found. Please insert an entry in TACTIC first." %(type, code, layer_name) else: print "%s Code [%s] not found. Please insert an entry in TACTIC first." %(type, code) search_type = server.build_search_type(parent_search_type) file_type = 'main' render_type = '' # not used yet # move the file dir = server.get_handoff_dir() paths = expand_paths(pattern, file_range) copy_file(paths, dir) file_name = os.path.basename(pattern) new_pattern = '%s/%s' %(dir, file_name) print "Copied files to handoff dir\n" render = find_render(server, search_type, id, login, render_type) if not render: render_data = { 'search_type': search_type, 'search_id': id, 'login': login #'type': render_type } render = server.insert("prod/render", render_data) # run group checkin server.group_checkin(render.get("__search_key__"), context=context, file_path=new_pattern, file_type=file_type, file_range=file_range) except: server.abort() raise else: server.finish()
def main(args, login=None): # USAGE: checkin_render_layer.py shot_code = args[0] layer_name = args[1] version = args[2] context = args[3] file_range = args[4] pattern = args[5] server = TacticServerStub(login) # do the actual work server.start("Checked in file group [%s] to shot [%s] layer [%s]" % (pattern, shot_code, layer_name)) try: # move the file dir = server.get_handoff_dir() paths = expand_paths(pattern, file_range) move_file(paths, dir) file_name = os.path.basename(pattern) new_pattern = "%s/%s" % (dir, file_name) print "Files moved to handoff dir.\n" # checkin the moved files filters = [] filters.append(("shot_code", shot_code)) filters.append(("name", layer_name)) results = server.query("prod/layer", filters) # take the first one if results: id = results[0].get("id") search_type = server.build_search_type("prod/layer") # find the layer snapshot filters = [] filters.append(("version", version)) filters.append(("search_type", search_type)) filters.append(("search_id", id)) # TODO : may need a context to search for the proper layer results = server.query("sthpw/snapshot", filters) snap_code = "" if results: snap_code = results[0].get("code") # find the render render = None filters = [] filters.append(("search_type", search_type)) filters.append(("search_id", id)) filters.append(("snapshot_code", snap_code)) results = server.query(SEARCH_TYPE, filters) if results: render = results[0] if not render: render_data = {"search_type": search_type, "search_id": id, "snapshot_code": snap_code} render = server.insert("prod/render", render_data) """ results = server.query(SEARCH_TYPE, filters) render_id = 0 if results: render_id = results[0].get('id') # find the render id search_key = server.build_search_key(SEARCH_TYPE, render_id, column='id') """ file_type = "main" # run group checkin server.group_checkin( render.get("__search_key__"), context=context, file_path=new_pattern, file_type=file_type, file_range=file_range, ) except: server.abort() raise else: server.finish()