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): # 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_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()
''' Toda parte de configuracao de servidor ''' projeto_name = 'xxxx' ip_sever = 'xxx.xxx.x.xx' if projeto_name: server = TacticServerStub() server.set_server(ip_sever) server.set_project(projeto_name) print 'OK server' else: print 'server down' search_type = projeto_name + '/shot' print 'USER LOGIN: %s' % (server.get_login()) print server.build_search_type(search_type) ''' Inicializando a busca por arquvos ''' # self.nameSnapshots() def converter_jpg(self, path): # Vai converter todas as imagens que forem necessarias. converter(path) def nameSnapshots(self): for index, itens in enumerate(self.paths): # Code recebe o nome que vai ser colocado no snapshot. self.listNameSnapshots.append({ 'code': '', 'description' : itens }) if os.listdir(itens): for i in os.listdir(itens):
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()
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, src_snapshot_code=None, src_search_type=None, src_search_code=None, src_context=None, src_version=None,\ tgt_context=None, tgt_version=None, file_path=None): if len(args) == 3: # assume code and file path are equivalent search_type = args[0] code = args[1] bin_info = args[2] elif len(args) == 4: search_type = args[0] code = args[1] bin_info = args[2] file_path = args[3] server = TacticServerStub() if file_path: description = "Dailies Submission [%s] to [%s] - [%s]" % (file_path, search_type, code) elif src_snapshot_code: description = "Dailies Submission internal reference [%s] to [%s] - [%s]" \ % (src_snapshot_code, search_type, code) else: description = "Dailies Submission internal reference [%s|%s] to [%s] - [%s]" \ % (src_search_type, src_search_code, search_type, code) server.start(title='Dailies Submission', description=description ) try: parts = bin_info.split('|') if len(parts) == 3: bin_code, type, label = parts[0], parts[1], parts[2] bins = server.query('prod/bin', [('code', bin_code), ('label', label), ('type', type)]) elif len(parts) == 2: bin_code, type = parts[0], parts[1] bins = server.query('prod/bin', [('code', bin_code), ('type', type)]) if not bins: raise TacticApiException("Bin code [%s], type [%s], label [%s] not found in system " % (bin_code, type, label)) search_key = server.build_search_key(search_type, code) sobject = server.query(search_type, [("code", code)]) if not sobject: raise TacticApiException("SObject [%s] with code [%s] not found" %(search_type, code)) sobject_id = sobject[0].get('id') # add a new submission full_search_type = server.build_search_type(search_type) submit_data = {'search_type': full_search_type,\ 'search_id': sobject_id,\ 'description': "Client Api Submission: [%s]" %code\ } if tgt_context and tgt_version != None: submit_data['context'] = tgt_context if tgt_version in ['0', 0 ,'-1', -1]: tgt_snapshot = server.get_snapshot(search_key, tgt_context, version=tgt_version) if not tgt_snapshot: print "tgt_context [%s] and tgt_version [%s] for this sobject cannot be found" %(tgt_context, tgt_version) else: tgt_version = tgt_snapshot.get('version') submit_data['version'] = tgt_version src_snapshot = None if src_snapshot_code: src_snapshot = server.query('sthpw/snapshot',filters=[('code', src_snapshot_code)], single=True) submit_data['context'] = src_snapshot.get('context') submit_data['version'] = src_snapshot.get('version') submission = server.insert('prod/submission', submit_data) # add to bin submit_in_bin_data = { 'bin_id': bins[0].get('id'), \ 'submission_id': submission.get('id')\ } server.insert('prod/submission_in_bin', submit_in_bin_data) print "New submission [%s] created for [%s].\n" %(submission.get('__search_key__'), full_search_type) if file_path: #NOTE: use the upload method instead of copy or move server.simple_checkin(submission.get('__search_key__'), 'publish', file_path, \ snapshot_type='submission', description='Client API dailies submission', mode='upload') else: if src_snapshot: pass elif src_search_type: src_search_key = server.build_search_key(src_search_type, src_search_code) else: src_search_key = search_key if not src_snapshot: src_snapshot = server.get_snapshot(src_search_key, context=src_context, version=src_version) if src_snapshot: snapshot_code = src_snapshot.get('code') # build a new snapshot submit_snapshot = server.create_snapshot(submission.get('__search_key__'), \ "publish", description='Client API dailies submission', \ snapshot_type='submission') # add dependency server.add_dependency_by_code(submit_snapshot.get('code'), snapshot_code) else: raise TacticApiException("No snapshot found for [%s] with context [%s] and version [%s]."\ %(src_search_key, src_context, src_version)) return except Exception, e: server.abort() print "ERROR: ", e.__str__()