def post(self, task_id): ( name, mode, software_id, comment, revision, separator, ) = self.get_arguments() try: task = tasks_service.get_task(task_id) user_service.check_project_access(task["project_id"]) software = files_service.get_software(software_id) is_revision_set_by_user = revision != 0 if not is_revision_set_by_user: revision = files_service.get_next_working_file_revision( task_id, name ) file_path = file_tree_service.get_working_folder_path( task, mode=mode, software=software, name=name, sep=separator, revision=revision ) file_name = file_tree_service.get_working_file_name( task, mode=mode, revision=revision, software=software, name=name ) except MalformedFileTreeException as exception: return ( {"message": str(exception), "received_data": request.json}, 400, ) return {"path": file_path, "name": file_name}, 200
def build_path(self, task, name, revision, software, sep, mode): folder_path = file_tree_service.get_working_folder_path( task, name=name, software=software, mode=mode ) file_name = file_tree_service.get_working_file_name( task, name=name, software=software, revision=revision, mode=mode ) return "%s%s%s" % (folder_path, sep, file_name)
def get_preview_path(self, task, name, revision): try: folder_path = file_tree_service.get_working_folder_path( task, name=name, mode="preview", revision=revision) file_name = file_tree_service.get_working_file_name( task, name=name, mode="preview", revision=revision) except MalformedFileTreeException: # No template for preview files. return {"folder_path": "", "file_name": ""} return {"folder_path": folder_path, "file_name": file_name}
def post(self, task_id): ( name, mode, software_id, comment, revision, separator ) = self.get_arguments() try: task = tasks_service.get_task(task_id) if not permissions.has_manager_permissions(): user_service.check_has_task_related(task["project_id"]) software = files_service.get_software(software_id) is_revision_set_by_user = revision != 0 if not is_revision_set_by_user: revision = files_service.get_next_working_file_revision( task_id, name ) file_path = file_tree_service.get_working_folder_path( task, mode=mode, software=software, name=name, sep=separator ) file_name = file_tree_service.get_working_file_name( task, mode=mode, revision=revision, software=software, name=name ) except MalformedFileTreeException: return { "error": "Tree is not properly written, check modes and variables", "received_data": request.json, }, 400 return {"path": file_path, "name": file_name}, 200
def test_get_working_file_name_shot(self): file_name = file_tree_service.get_working_file_name( self.shot_task.serialize(), revision=3 ) self.assertEquals(file_name, "cosmos_landromat_s01_p01_animation_v003")
def test_get_working_file_name_asset(self): file_name = file_tree_service.get_working_file_name( self.task.serialize(), revision=3 ) self.assertEquals(file_name, "cosmos_landromat_props_tree_shaders_v003")
def post(self, task_id): person_id = self.get_arguments() gunicorn_logger.log(logging.ERROR, task_id) gunicorn_logger.log(logging.ERROR, person_id) task = tasks_service.get_task(task_id) working_file_name = re.sub( r'_v\d\d\d.\w\w\w', '', file_tree_service.get_working_file_name(task)) gunicorn_logger.log(logging.ERROR, working_file_name) next_revision = files_service.get_next_working_revision( task_id, working_file_name) working_file_path = file_tree_service.get_working_file_path( task, mode="working", revision=next_revision) working_file = files_service.create_new_working_revision( task_id, person_id, "edfd3a91-4d55-47a4-ae15-f2123c07edf6", working_file_name, working_file_path) comment = tasks_service.create_comment( task_id, '4f4256d0-72d9-4de5-bf71-a08209b56750', person_id, "Version %s created" % next_revision) preview_file = tasks_service.add_preview_file_to_comment( comment['id'], person_id, task_id, revision=next_revision) entities_service.update_entity_preview(task['entity_id'], preview_file['id']) output_preview_file_path = file_tree_service.get_working_file_path( task, mode="preview_output", revision=next_revision) output_slated_file_path = file_tree_service.get_working_file_path( task, mode="slated_output", revision=next_revision, frame="0001") movies_preview_file_path = '/opt/zou/previews/movies/previews/' + preview_file[ 'id'][:3] + '/' + preview_file['id'][3:6] + '/' pictures_original_file_path = '/opt/zou/previews/pictures/originals/' + preview_file[ 'id'][:3] + '/' + preview_file['id'][3:6] + '/' pictures_preview_file_path = '/opt/zou/previews/pictures/previews/' + preview_file[ 'id'][:3] + '/' + preview_file['id'][3:6] + '/' pictures_thumbnail_file_path = '/opt/zou/previews/pictures/thumbnails/' + preview_file[ 'id'][:3] + '/' + preview_file['id'][3:6] + '/' if not os.path.exists(movies_preview_file_path): os.makedirs(movies_preview_file_path) if not os.path.exists(pictures_original_file_path): os.makedirs(pictures_original_file_path) if not os.path.exists(pictures_preview_file_path): os.makedirs(pictures_preview_file_path) if not os.path.exists(pictures_thumbnail_file_path): os.makedirs(pictures_thumbnail_file_path) if not os.path.exists(os.path.dirname(working_file_path)): os.makedirs(os.path.dirname(working_file_path)) file = open(working_file_path, "w") file.close() os.symlink(output_preview_file_path, movies_preview_file_path + preview_file['id']) os.symlink(output_slated_file_path, pictures_original_file_path + preview_file['id']) os.symlink(output_slated_file_path, pictures_preview_file_path + preview_file['id']) os.symlink(output_slated_file_path, pictures_thumbnail_file_path + preview_file['id']) return working_file, 200