Exemplo n.º 1
0
    def update_parameter(cls, job_id, role, party_id,
                         updated_parameters: dict):
        job_configuration = job_utils.get_job_configuration(job_id=job_id,
                                                            role=role,
                                                            party_id=party_id)
        job_parameters = updated_parameters.get("job_parameters")
        component_parameters = updated_parameters.get("component_parameters")
        if job_parameters:
            job_configuration.runtime_conf["job_parameters"] = job_parameters
            job_parameters = RunParameters(**job_parameters["common"])
            cls.create_job_parameters_on_party(role=role,
                                               party_id=party_id,
                                               job_parameters=job_parameters)
            job_configuration.runtime_conf_on_party[
                "job_parameters"] = job_parameters.to_dict()
        if component_parameters:
            job_configuration.runtime_conf[
                "component_parameters"] = component_parameters
            job_configuration.runtime_conf_on_party[
                "component_parameters"] = component_parameters

        job_info = {}
        job_info["job_id"] = job_id
        job_info["role"] = role
        job_info["party_id"] = party_id
        job_info["runtime_conf"] = job_configuration.runtime_conf
        job_info[
            "runtime_conf_on_party"] = job_configuration.runtime_conf_on_party
        JobSaver.update_job(job_info)
Exemplo n.º 2
0
 def start_inheriting_job(cls, job):
     JobSaver.update_job(
         job_info={
             "job_id": job.f_job_id,
             "role": job.f_role,
             "party_id": job.f_party_id,
             "inheritance_status": JobInheritanceStatus.RUNNING
         })
     conf_dir = job_utils.get_job_directory(job_id=job.f_job_id)
     os.makedirs(conf_dir, exist_ok=True)
     process_cmd = [
         sys.executable or 'python3',
         sys.modules[JobInherit.__module__].__file__,
         '--job_id',
         job.f_job_id,
         '--role',
         job.f_role,
         '--party_id',
         job.f_party_id,
     ]
     log_dir = os.path.join(
         job_utils.get_job_log_directory(job_id=job.f_job_id),
         "job_inheritance")
     p = process_utils.run_subprocess(job_id=job.f_job_id,
                                      config_dir=conf_dir,
                                      process_cmd=process_cmd,
                                      log_dir=log_dir,
                                      process_name="job_inheritance")
Exemplo n.º 3
0
 def update_job_on_initiator(cls, initiator_job: Job, update_fields: list):
     jobs = JobSaver.query_job(job_id=initiator_job.f_job_id)
     if not jobs:
         raise Exception("Failed to update job status on initiator")
     job_info = initiator_job.to_human_model_dict(
         only_primary_with=update_fields)
     for field in update_fields:
         job_info[field] = getattr(initiator_job, "f_%s" % field)
     for job in jobs:
         job_info["role"] = job.f_role
         job_info["party_id"] = job.f_party_id
         JobSaver.update_job_status(job_info=job_info)
         JobSaver.update_job(job_info=job_info)
Exemplo n.º 4
0
    def status_reload(cls, job, source_tasks, target_tasks):
        schedule_logger(job.f_job_id).info("start reload status")
        # update task status
        for key, source_task in source_tasks.items():
            JobSaver.reload_task(source_task, target_tasks[key])

        # update job status
        JobSaver.update_job(
            job_info={
                "job_id": job.f_job_id,
                "role": job.f_role,
                "party_id": job.f_party_id,
                "inheritance_status": JobInheritanceStatus.SUCCESS
            })
        schedule_logger(job.f_job_id).info("reload status success")
Exemplo n.º 5
0
 def update_job(cls, job_info):
     """
     Save to local database
     :param job_info:
     :return:
     """
     return JobSaver.update_job(job_info=job_info)
Exemplo n.º 6
0
def update_job():
    job_info = request.json
    jobs = JobSaver.query_job(job_id=job_info['job_id'],
                              party_id=job_info['party_id'],
                              role=job_info['role'])
    if not jobs:
        return get_json_result(retcode=101, retmsg='find job failed')
    else:
        JobSaver.update_job(
            job_info={
                'description': job_info.get('notes', ''),
                'job_id': job_info['job_id'],
                'role': job_info['role'],
                'party_id': job_info['party_id']
            })
        return get_json_result(retcode=0, retmsg='success')
Exemplo n.º 7
0
 def _run(self):
     job = JobSaver.query_job(job_id=self.args.job_id,
                              role=self.args.role,
                              party_id=self.args.party_id)[0]
     try:
         JobController.job_reload(job)
     except Exception as e:
         traceback.print_exc()
         JobSaver.update_job(
             job_info={
                 "job_id": job.f_job_id,
                 "role": job.f_role,
                 "party_id": job.f_party_id,
                 "inheritance_status": JobInheritanceStatus.FAILED
             })
         LOGGER.exception(e)
Exemplo n.º 8
0
 def align_job_args(cls, job_id, role, party_id, job_info):
     job_info["job_id"] = job_id
     job_info["role"] = role
     job_info["party_id"] = party_id
     JobSaver.update_job(job_info)