def component_list(): request_data = request.json parser = schedule_utils.get_job_dsl_parser_by_job_id(job_id=request_data.get('job_id')) if parser: return get_json_result(data={'components': list(parser.get_dsl().get('components').keys())}) else: return get_json_result(retcode=100, retmsg='No job matched, please make sure the job id is valid.')
def component_parameters(): request_data = request.json check_request_parameters(request_data) job_id = request_data.get('job_id', '') job_dsl_parser = schedule_utils.get_job_dsl_parser_by_job_id(job_id=job_id) if job_dsl_parser: component = job_dsl_parser.get_component_info( request_data['component_name']) parameters = component.get_role_parameters() for role, partys_parameters in parameters.items(): for party_parameters in partys_parameters: if party_parameters.get('local', {}).get( 'role', '') == request_data['role'] and party_parameters.get( 'local', {}).get('party_id', '') == int( request_data['party_id']): output_parameters = {} output_parameters['module'] = party_parameters.get( 'module', '') for p_k, p_v in party_parameters.items(): if p_k.endswith('Param'): output_parameters[p_k] = p_v return get_json_result(retcode=0, retmsg='success', data=output_parameters) else: return get_json_result( retcode=0, retmsg='can not found this component parameters') else: return get_json_result(retcode=101, retmsg='can not found this job')
def initialize_tasks(cls, job_id, role, party_id, run_on_this_party, initiator_role, initiator_party_id, job_parameters: RunParameters = None, dsl_parser=None, components: list = None, **kwargs): common_task_info = {} common_task_info["job_id"] = job_id common_task_info["initiator_role"] = initiator_role common_task_info["initiator_party_id"] = initiator_party_id common_task_info["role"] = role common_task_info["party_id"] = party_id common_task_info["run_on_this_party"] = run_on_this_party common_task_info["federated_mode"] = kwargs.get( "federated_mode", job_parameters.federated_mode if job_parameters else None) common_task_info["federated_status_collect_type"] = kwargs.get( "federated_status_collect_type", job_parameters.federated_status_collect_type if job_parameters else None) common_task_info["auto_retries"] = kwargs.get( "auto_retries", job_parameters.auto_retries if job_parameters else None) common_task_info["auto_retry_delay"] = kwargs.get( "auto_retry_delay", job_parameters.auto_retry_delay if job_parameters else None) common_task_info["task_version"] = kwargs.get("task_version") if dsl_parser is None: dsl_parser = schedule_utils.get_job_dsl_parser_by_job_id(job_id) provider_group = ProviderManager.get_job_provider_group( dsl_parser=dsl_parser, components=components) initialized_result = {} for group_key, group_info in provider_group.items(): initialized_config = {} initialized_config.update(group_info) initialized_config["common_task_info"] = common_task_info if run_on_this_party: code, _result = WorkerManager.start_general_worker( worker_name=WorkerName.TASK_INITIALIZER, job_id=job_id, role=role, party_id=party_id, initialized_config=initialized_config, run_in_subprocess=False if initialized_config["if_default_provider"] else True) initialized_result.update(_result) else: cls.initialize_task_holder_for_scheduling( role=role, party_id=party_id, components=initialized_config["components"], common_task_info=common_task_info, provider_info=initialized_config["provider"]) return initialized_result, provider_group
def get_component_output_tables_meta(task_data): check_request_parameters(task_data) tracker = Tracker(job_id=task_data['job_id'], component_name=task_data['component_name'], role=task_data['role'], party_id=task_data['party_id']) job_dsl_parser = schedule_utils.get_job_dsl_parser_by_job_id(job_id=task_data['job_id']) if not job_dsl_parser: raise Exception('can not get dag parser, please check if the parameters are correct') component = job_dsl_parser.get_component_info(task_data['component_name']) if not component: raise Exception('can not found component, please check if the parameters are correct') output_data_table_infos = tracker.get_output_data_info() output_tables_meta = tracker.get_output_data_table(output_data_infos=output_data_table_infos) return output_tables_meta