diff --git a/src/distributed_job_manager.py b/src/distributed_job_manager.py index 4de9a1f..4180ab3 100644 --- a/src/distributed_job_manager.py +++ b/src/distributed_job_manager.py @@ -309,16 +309,31 @@ class DistributedJobManager: # submission_results.items()] # todo: fix this @staticmethod - def __create_subjob(job_data, local_hostname, project_path, server_data, server_hostname, worker): - subjob = job_data.copy() - subjob['name'] = f"{worker.name}[{server_data['frame_range'][0]}-{server_data['frame_range'][-1]}]" - subjob['parent'] = f"{worker.id}@{local_hostname}" - subjob['start_frame'] = server_data['frame_range'][0] - subjob['end_frame'] = server_data['frame_range'][-1] - logger.debug(f"Posting subjob with frames {subjob['start_frame']}-" - f"{subjob['end_frame']} to {server_hostname}") - post_results = RenderServerProxy(server_hostname).post_job_to_server( - file_path=project_path, job_list=[subjob]) + def new_create_subjob(parent_job_id, remote_hostname, start_frame, end_frame): + """ + Create and post a subjob to a remote render server. + + Parameters: + - parent_job_id (str): ID of the parent job. + - remote_hostname (str): Remote server's hostname/address. + - start_frame (int): Starting frame of the subjob. + - end_frame (int): Ending frame of the subjob. + + Example: + new_create_subjob('parent_job_123', 'remote-server.example.com', 1, 100) + """ + logger.info(f"parentID: {parent_job_id}") + parent_job = RenderQueue.job_with_id(parent_job_id) + subjob_data = {'renderer': parent_job.engine.name(), 'input_path': parent_job.input_path, + 'args': parent_job.args, 'output_path': parent_job.output_path, + 'engine_version': parent_job.renderer_version, 'start_frame': start_frame, + 'end_frame': end_frame, 'parent': f"{parent_job_id}@{socket.gethostname()}"} + + logger.debug(f"new subjob data: {subjob_data}") + + logger.debug(f"Creating subjob {start_frame}-{end_frame} for {remote_hostname}") + post_results = RenderServerProxy(remote_hostname).post_job_to_server( + file_path=parent_job.input_path, job_list=[subjob_data]) return post_results @staticmethod