@@ -14,6 +14,8 @@ def __init__(self, context):
1414 self .context = context
1515 self .input_data = context .remote_profile ['input_data' ].copy ()
1616 self .api_version = self .input_data .get ('api_version' , 1 )
17+ self .grouped = self .input_data .get ('grouped' , False )
18+ self .group_id = None
1719
1820 def gen_script (self , job ):
1921 shell_script = super (DpCloudServer , self ).gen_script (job )
@@ -24,10 +26,10 @@ def gen_script_header(self, job):
2426 return shell_script_header
2527
2628 def gen_local_script (self , job ):
27- script_str = self .gen_script (job )
29+ script_str = self .gen_script (job )
2830 script_file_name = job .script_file_name
2931 self .context .write_local_file (
30- fname = script_file_name ,
32+ fname = script_file_name ,
3133 write_str = script_str
3234 )
3335 return script_file_name
@@ -49,9 +51,11 @@ def do_submit(self, job):
4951 job_type = input_data ['job_type' ],
5052 oss_path = input_data ['job_resources' ],
5153 input_data = input_data ,
52- program_id = self .context .remote_profile .get ('program_id' , None )
54+ program_id = self .context .remote_profile .get ('program_id' , None ),
55+ group_id = self .group_id
5356 )
54- self .input_data ['job_group_id' ] = group_id
57+ if self .grouped :
58+ self .group_id = group_id
5559 job .job_id = str (job_id ) + ':job_group_id' + str (group_id )
5660 job_id = job .job_id
5761 else :
@@ -68,26 +72,29 @@ def check_status(self, job):
6872 if job .job_id == '' :
6973 return JobStatus .unsubmitted
7074 job_id = job .job_id
71- if type (job .job_id ) is str and ':job_group_id' in job .job_id :
75+ group_id = None
76+ if isinstance (job .job_id ,str ) and ':job_group_id' in job .job_id :
77+ group_id = None
7278 ids = job .job_id .split (":job_group_id" )
73- job .job_id ,self .input_data ["job_group_id" ] = int (ids [0 ]), int (ids [1 ])
79+ job_id , group_id = int (ids [0 ]), int (ids [1 ])
80+ if self .input_data .get ('grouped' ) and 'job_group_id' not in self .input_data :
81+ self .group_id = group_id
7482 self .api_version = 2
75- job_id = job .job_id
76- dlog .debug (f"debug: check_status; job.job_id:{ job .job_id } ; job.job_hash:{ job .job_hash } " )
83+ dlog .debug (f"debug: check_status; job.job_id:{ job_id } ; job.job_hash:{ job .job_hash } " )
7784 check_return = None
85+ # print("api",self.api_version,self.input_data.get('job_group_id'),job.job_id)
7886 if self .api_version == 2 :
79- check_return = api .get_tasks_v2 (job_id ,self . input_data . get ( 'job_group_id' ) )
87+ check_return = api .get_tasks_v2 (job_id ,group_id )
8088 else :
8189 check_return = api .get_tasks (job_id )
8290 try :
8391 dp_job_status = check_return [0 ]["status" ]
8492 except IndexError as e :
85- dlog .error (f"cannot find job information in check_return. job { job_id } . check_return:{ check_return } ; retry one more time after 60 seconds" )
93+ dlog .error (f"cannot find job information in check_return. job { job . job_id } . check_return:{ check_return } ; retry one more time after 60 seconds" )
8694 time .sleep (60 )
8795 retry_return = None
88- retry_return = api .get_tasks (job_id )
8996 if self .api_version == 2 :
90- retry_return = api .get_tasks_v2 (job_id ,self . input_data . get ( 'job_group_id' ) )
97+ retry_return = api .get_tasks_v2 (job_id ,group_id )
9198 else :
9299 retry_return = api .get_tasks (job_id )
93100 try :
0 commit comments