Skip to content

Commit d5c56f1

Browse files
committed
Fix hostname/ssh_port backward compatibility
1 parent b2043dd commit d5c56f1

File tree

1 file changed

+16
-5
lines changed
  • src/dstack/_internal/server/services

1 file changed

+16
-5
lines changed

src/dstack/_internal/server/services/runs.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

258258
async 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

Comments
 (0)