1414from .retcode import RETCODE
1515from .config import HTTP_TIME_OUT , API_HOST
1616token = ''
17+ group_id = None
1718def get (url , params ):
1819 global token
1920 headers = {'Authorization' : "jwt " + token }
@@ -107,6 +108,9 @@ def upload(oss_task_zip, zip_task_file, endpoint, bucket_name):
107108
108109
109110def job_create (job_type , oss_path , input_data , program_id = None ):
111+ api_version = input_data .get ('api_version' ,1 )
112+ if api_version == 2 :
113+ return job_create_v2 (job_type ,oss_path ,input_data , program_id = program_id )
110114 post_data = {
111115 'job_type' : job_type ,
112116 'oss_path' : oss_path ,
@@ -118,6 +122,49 @@ def job_create(job_type, oss_path, input_data, program_id=None):
118122 return ret ['job_id' ]
119123
120124
125+ def job_create_v2 (job_type , oss_path , input_data , program_id = None ):
126+ global group_id
127+ post_data = {
128+ 'job_type' : job_type ,
129+ 'oss_path' : oss_path ,
130+ }
131+ if program_id is not None :
132+ post_data ["program_id" ] = program_id
133+ if input_data .get ('job_group_id' ) is not None :
134+ post_data ["job_group_id" ] = input_data .get ('job_group_id' )
135+ elif input_data .get ('grouped' ) is not None and input_data .get ('grouped' ):
136+ if group_id is not None :
137+ post_data ["job_group_id" ] = group_id
138+ if input_data .get ('job_name' ) is not None :
139+ post_data ["job_name" ] = input_data .get ('job_name' )
140+ if input_data .get ('image_name' ) is not None :
141+ post_data ["image_name" ] = input_data .get ('image_name' )
142+ if input_data .get ('disk_size' ) is not None :
143+ post_data ["disk_size" ] = input_data .get ('disk_size' )
144+ if input_data .get ('scass_type' ) is not None :
145+ post_data ["scass_type" ] = input_data .get ('scass_type' )
146+ if input_data .get ('scass_type' ) is not None :
147+ post_data ["scass_type" ] = input_data .get ('scass_type' )
148+ if input_data .get ('instance_group_id' ) is not None :
149+ post_data ["instance_group_id" ] = input_data .get ('instance_group_id' )
150+ if input_data .get ('command' ) is not None :
151+ post_data ["cmd" ] = input_data .get ('command' )
152+ if input_data .get ('log_file' ) is not None :
153+ post_data ["log_file" ] = input_data .get ('log_file' )
154+ if input_data .get ('backward_files' ) is not None :
155+ post_data ["out_files" ] = input_data .get ('backward_files' )
156+ if input_data .get ('platform' ) is not None :
157+ post_data ["platform" ] = input_data .get ('platform' )
158+ if input_data .get ('region' ) is not None :
159+ post_data ["region" ] = input_data .get ('region' )
160+ if input_data .get ('zone' ) is not None :
161+ post_data ["zone" ] = input_data .get ('zone' )
162+ if input_data .get ('on_demand' ) is not None :
163+ post_data ["on_demand" ] = input_data .get ('on_demand' )
164+ ret = post ('/data/v2/insert_job' , post_data )
165+ group_id = ret .get ('job_group_id' )
166+ return ret ['job_id' ]
167+
121168def get_jobs (page = 1 , per_page = 10 ):
122169 ret = get (
123170 '/data/jobs' ,
0 commit comments