@@ -169,7 +169,7 @@ async def list_user_runs(
169169 runs = []
170170 for r in run_models :
171171 try :
172- runs .append (run_model_to_run (r ))
172+ runs .append (run_model_to_run (r , return_in_api = True ))
173173 except pydantic .ValidationError :
174174 pass
175175 if len (run_models ) > len (runs ):
@@ -252,7 +252,7 @@ async def get_run(
252252 run_model = res .scalar ()
253253 if run_model is None :
254254 return None
255- return run_model_to_run (run_model )
255+ return run_model_to_run (run_model , return_in_api = True )
256256
257257
258258async def get_run_plan (
@@ -428,7 +428,7 @@ async def submit_run(
428428 await session .commit ()
429429 await session .refresh (run_model )
430430
431- run = run_model_to_run (run_model )
431+ run = run_model_to_run (run_model , return_in_api = True )
432432 return run
433433
434434
@@ -639,7 +639,9 @@ async def create_instance(
639639 return instance_model_to_instance (instance )
640640
641641
642- def run_model_to_run (run_model : RunModel , include_job_submissions : bool = True ) -> Run :
642+ def run_model_to_run (
643+ run_model : RunModel , include_job_submissions : bool = True , return_in_api : bool = False
644+ ) -> Run :
643645 jobs : List [Job ] = []
644646 run_jobs = sorted (run_model .jobs , key = lambda j : (j .replica_num , j .job_num , j .submission_num ))
645647 for replica_num , replica_submissions in itertools .groupby (
@@ -654,7 +656,16 @@ def run_model_to_run(run_model: RunModel, include_job_submissions: bool = True)
654656 if job_spec is None :
655657 job_spec = JobSpec .__response__ .parse_raw (job_model .job_spec_data )
656658 if include_job_submissions :
657- submissions .append (job_model_to_job_submission (job_model ))
659+ job_submission = job_model_to_job_submission (job_model )
660+ if return_in_api :
661+ # Set default non-None values for 0.18 backward-compatibility
662+ # Remove in 0.19
663+ if job_submission .job_provisioning_data is not None :
664+ if job_submission .job_provisioning_data .hostname is None :
665+ job_submission .job_provisioning_data .hostname = ""
666+ if job_submission .job_provisioning_data .ssh_port is None :
667+ job_submission .job_provisioning_data .ssh_port = 22
668+ submissions .append (job_submission )
658669 if job_spec is not None :
659670 jobs .append (Job (job_spec = job_spec , job_submissions = submissions ))
660671
0 commit comments