Skip to content

Commit 3b84dd9

Browse files
committed
JobRestInterfaceLinks -> JobInterfaceLinks
1 parent 884cac2 commit 3b84dd9

File tree

10 files changed

+55
-30
lines changed

10 files changed

+55
-30
lines changed

services/api-server/src/simcore_service_api_server/_service_function_jobs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ async def run_function(
257257
solver_key=function.solver_key,
258258
version=function.solver_version,
259259
inputs=JobInputs(values=joined_inputs or {}),
260-
job_rest_interface_links=job_rest_interface_links,
260+
job_links=job_rest_interface_links,
261261
hidden=True,
262262
x_simcore_parent_project_uuid=x_simcore_parent_project_uuid,
263263
x_simcore_parent_node_id=x_simcore_parent_node_id,

services/api-server/src/simcore_service_api_server/_service_jobs.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
from .exceptions.backend_errors import JobAssetsMissingError
3232
from .exceptions.custom_errors import SolverServiceListJobsFiltersError
3333
from .models.api_resources import (
34-
JobRestInterfaceLinks,
34+
JobLinks,
3535
RelativeResourceName,
3636
compose_resource_name,
3737
)
@@ -213,7 +213,7 @@ async def create_project_marked_as_job(
213213
inputs: JobInputs,
214214
parent_project_uuid: ProjectID | None,
215215
parent_node_id: NodeID | None,
216-
job_rest_interface_links: JobRestInterfaceLinks,
216+
job_links: JobLinks,
217217
hidden: bool,
218218
project_name: str | None,
219219
description: str | None,
@@ -256,7 +256,7 @@ async def create_project_marked_as_job(
256256
job = create_job_from_project(
257257
solver_or_program=solver_or_program,
258258
project=new_project,
259-
job_rest_interface_links=job_rest_interface_links,
259+
job_links=job_links,
260260
)
261261
assert job.id == pre_job.id # nosec
262262
assert job.name == pre_job.name # nosec
@@ -316,7 +316,7 @@ async def create_solver_job(
316316
version: VersionStr,
317317
inputs: JobInputs,
318318
hidden: bool,
319-
job_rest_interface_links: JobRestInterfaceLinks,
319+
job_links: JobLinks,
320320
x_simcore_parent_project_uuid: ProjectID | None,
321321
x_simcore_parent_node_id: NodeID | None,
322322
) -> Job:
@@ -333,7 +333,7 @@ async def create_solver_job(
333333
hidden=hidden,
334334
parent_project_uuid=x_simcore_parent_project_uuid,
335335
parent_node_id=x_simcore_parent_node_id,
336-
job_rest_interface_links=job_rest_interface_links,
336+
job_links=job_links,
337337
)
338338

339339
return job

services/api-server/src/simcore_service_api_server/api/routes/programs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
complete_file_upload,
1717
get_upload_links_from_s3,
1818
)
19-
from simcore_service_api_server.models.api_resources import JobRestInterfaceLinks
19+
from simcore_service_api_server.models.api_resources import JobLinks
2020

2121
from ..._service_jobs import JobService
2222
from ..._service_programs import ProgramService
@@ -172,7 +172,7 @@ async def create_program_job(
172172
name=program_key,
173173
version=version,
174174
)
175-
job_rest_interface_links = JobRestInterfaceLinks(
175+
job_rest_interface_links = JobLinks(
176176
url_template=None,
177177
runner_url_template=None,
178178
outputs_url_template=None,
@@ -185,7 +185,7 @@ async def create_program_job(
185185
inputs=inputs,
186186
parent_project_uuid=x_simcore_parent_project_uuid,
187187
parent_node_id=x_simcore_parent_node_id,
188-
job_rest_interface_links=job_rest_interface_links,
188+
job_links=job_rest_interface_links,
189189
hidden=False,
190190
)
191191

services/api-server/src/simcore_service_api_server/api/routes/solvers_jobs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ async def create_solver_job( # noqa: PLR0913
104104
hidden=hidden,
105105
x_simcore_parent_project_uuid=x_simcore_parent_project_uuid,
106106
x_simcore_parent_node_id=x_simcore_parent_node_id,
107-
job_rest_interface_links=get_solver_job_rest_interface_links(
107+
job_links=get_solver_job_rest_interface_links(
108108
url_for=url_for, solver_key=solver_key, version=version
109109
),
110110
)

services/api-server/src/simcore_service_api_server/api/routes/solvers_jobs_read.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ async def list_jobs(
211211
job = create_job_from_project(
212212
solver_or_program=solver,
213213
project=prj,
214-
job_rest_interface_links=job_rest_interface_links,
214+
job_links=job_rest_interface_links,
215215
)
216216
assert job.id == prj.uuid # nosec
217217
assert job.name == prj.name # nosec
@@ -261,7 +261,7 @@ async def list_jobs_paginated(
261261
create_job_from_project(
262262
solver_or_program=solver,
263263
project=prj,
264-
job_rest_interface_links=job_rest_interface_links,
264+
job_links=job_rest_interface_links,
265265
)
266266
for prj in projects_page.data
267267
]
@@ -305,7 +305,7 @@ async def get_job(
305305
job = create_job_from_project(
306306
solver_or_program=solver,
307307
project=project,
308-
job_rest_interface_links=job_rest_interface_links,
308+
job_links=job_rest_interface_links,
309309
)
310310
assert job.id == job_id # nosec
311311
return job # nosec

services/api-server/src/simcore_service_api_server/models/api_resources.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def _url_missing_only_job_id(url: str | None) -> str | None:
102102
return url
103103

104104

105-
class JobRestInterfaceLinks(BaseModel):
105+
class JobLinks(BaseModel):
106106
url_template: Annotated[str | None, AfterValidator(_url_missing_only_job_id)]
107107
runner_url_template: str | None
108108
outputs_url_template: Annotated[

services/api-server/src/simcore_service_api_server/models/schemas/jobs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from servicelib.logging_utils import LogLevelInt, LogMessageStr
2929
from starlette.datastructures import Headers
3030

31-
from ...models.api_resources import JobRestInterfaceLinks
31+
from ...models.api_resources import JobLinks
3232
from ...models.schemas.files import File, UserFile
3333
from .._utils_pydantic import UriSchema
3434
from ..api_resources import (
@@ -327,8 +327,8 @@ def resource_name(self) -> str:
327327

328328
def get_solver_job_rest_interface_links(
329329
*, url_for: Callable, solver_key: SolverKeyId, version: VersionStr
330-
) -> JobRestInterfaceLinks:
331-
return JobRestInterfaceLinks(
330+
) -> JobLinks:
331+
return JobLinks(
332332
url_template=url_for(
333333
"get_job",
334334
solver_key=solver_key,

services/api-server/src/simcore_service_api_server/services_http/solver_job_models_converters.py

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@
44
"""
55

66
import uuid
7+
from collections.abc import Callable
78
from datetime import UTC, datetime
89
from functools import lru_cache
910

1011
import arrow
1112
from models_library.api_schemas_webserver.projects import ProjectCreateNew, ProjectGet
1213
from models_library.api_schemas_webserver.projects_ui import StudyUI
13-
from models_library.basic_types import KeyIDStr
14+
from models_library.basic_types import KeyIDStr, VersionStr
1415
from models_library.projects import Project
1516
from models_library.projects_nodes import InputID
1617
from pydantic import TypeAdapter
17-
from simcore_service_api_server.models.api_resources import JobRestInterfaceLinks
18+
from simcore_service_api_server.models.api_resources import JobLinks
1819

1920
from ..models.domain.projects import InputTypes, Node, SimCoreFileLink
2021
from ..models.schemas.files import File
@@ -26,7 +27,7 @@
2627
PercentageInt,
2728
)
2829
from ..models.schemas.programs import Program
29-
from ..models.schemas.solvers import Solver
30+
from ..models.schemas.solvers import Solver, SolverKeyId
3031
from .director_v2 import ComputationTaskGet
3132

3233
# UTILS ------
@@ -181,11 +182,35 @@ def create_new_project_for_job(
181182
)
182183

183184

185+
def get_solver_job_rest_interface_links(
186+
*, url_for: Callable, solver_key: SolverKeyId, version: VersionStr
187+
) -> JobLinks:
188+
return JobLinks(
189+
url_template=url_for(
190+
"get_job",
191+
solver_key=solver_key,
192+
version=version,
193+
job_id="{job_id}",
194+
),
195+
runner_url_template=url_for(
196+
"get_solver_release",
197+
solver_key=solver_key,
198+
version=version,
199+
),
200+
outputs_url_template=url_for(
201+
"get_job_outputs",
202+
solver_key=solver_key,
203+
version=version,
204+
job_id="{job_id}",
205+
),
206+
)
207+
208+
184209
def create_job_from_project(
185210
*,
186211
solver_or_program: Solver | Program,
187212
project: ProjectGet | Project,
188-
job_rest_interface_links: JobRestInterfaceLinks,
213+
job_links: JobLinks,
189214
) -> Job:
190215
"""
191216
Given a project, creates a job
@@ -215,9 +240,9 @@ def create_job_from_project(
215240
inputs_checksum=job_inputs.compute_checksum(),
216241
created_at=project.creation_date, # type: ignore[arg-type]
217242
runner_name=solver_or_program_name,
218-
url=job_rest_interface_links.url(job_id=job_id),
219-
runner_url=job_rest_interface_links.runner_url(job_id=job_id),
220-
outputs_url=job_rest_interface_links.outputs_url(job_id=job_id),
243+
url=job_links.url(job_id=job_id),
244+
runner_url=job_links.runner_url(job_id=job_id),
245+
outputs_url=job_links.outputs_url(job_id=job_id),
221246
)
222247

223248

services/api-server/tests/unit/service/test_service_jobs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from faker import Faker
88
from pytest_mock import MockType
99
from simcore_service_api_server._service_jobs import JobService
10-
from simcore_service_api_server.models.api_resources import JobRestInterfaceLinks
10+
from simcore_service_api_server.models.api_resources import JobLinks
1111
from simcore_service_api_server.models.schemas.jobs import Job, JobInputs
1212
from simcore_service_api_server.models.schemas.solvers import Solver
1313

@@ -57,7 +57,7 @@ async def test_create_job(
5757
def mock_url_for(*args, **kwargs):
5858
return "https://example.com/api/v1/jobs/test-job"
5959

60-
job_rest_interface_links = JobRestInterfaceLinks(
60+
job_rest_interface_links = JobLinks(
6161
url_template=_faker.url() + "/{job_id}",
6262
runner_url_template=_faker.url(),
6363
outputs_url_template=_faker.url() + "/{job_id}",
@@ -69,7 +69,7 @@ def mock_url_for(*args, **kwargs):
6969
inputs=inputs,
7070
parent_project_uuid=None,
7171
parent_node_id=None,
72-
job_rest_interface_links=job_rest_interface_links,
72+
job_links=job_rest_interface_links,
7373
hidden=False,
7474
project_name="Test Job Project",
7575
description="Test description",

services/api-server/tests/unit/test_services_solver_job_models_converters.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from models_library.projects import Project
88
from models_library.projects_nodes import InputsDict, InputTypes, SimCoreFileLink
99
from pydantic import RootModel, TypeAdapter, create_model
10-
from simcore_service_api_server.models.api_resources import JobRestInterfaceLinks
10+
from simcore_service_api_server.models.api_resources import JobLinks
1111
from simcore_service_api_server.models.schemas.files import File
1212
from simcore_service_api_server.models.schemas.jobs import ArgumentTypes, Job, JobInputs
1313
from simcore_service_api_server.models.schemas.solvers import Solver
@@ -209,7 +209,7 @@ def test_create_job_from_project(faker: Faker):
209209
solver_key = "simcore/services/comp/itis/sleeper"
210210
solver_version = "2.0.2"
211211

212-
fake_job_rest_interface_links = JobRestInterfaceLinks(
212+
fake_job_rest_interface_links = JobLinks(
213213
url_template=faker.url() + "/{job_id}",
214214
runner_url_template=faker.url(),
215215
outputs_url_template=faker.url() + "/{job_id}",
@@ -227,7 +227,7 @@ def test_create_job_from_project(faker: Faker):
227227
job = create_job_from_project(
228228
solver_or_program=solver,
229229
project=project,
230-
job_rest_interface_links=fake_job_rest_interface_links,
230+
job_links=fake_job_rest_interface_links,
231231
)
232232

233233
assert job.id == project.uuid

0 commit comments

Comments
 (0)