Skip to content

Commit 94a7052

Browse files
committed
start using batch register function jobs in api-server
1 parent 7b38b4d commit 94a7052

File tree

6 files changed

+46
-27
lines changed

6 files changed

+46
-27
lines changed

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/webserver/v1/functions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ async def register_function_job(
333333
),
334334
)
335335

336-
async def register_function_job_batch(
336+
async def batch_register_function_jobs(
337337
self,
338338
*,
339339
product_name: ProductName,

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

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,16 @@ async def pre_register_function_job(
163163
)
164164
for input_ in job_inputs
165165
]
166-
jobs = await self._web_rpc_client.register_function_job(
167-
function_jobs=TypeAdapter(FunctionJobList).validate_python(
168-
function_jobs
169-
),
170-
user_id=self.user_id,
171-
product_name=self.product_name,
166+
batch_registered_jobs = (
167+
await self._web_rpc_client.batch_register_function_jobs(
168+
function_jobs=TypeAdapter(FunctionJobList).validate_python(
169+
function_jobs
170+
),
171+
user_id=self.user_id,
172+
product_name=self.product_name,
173+
)
172174
)
175+
jobs = batch_registered_jobs.created_items
173176

174177
elif function.function_class == FunctionClass.SOLVER:
175178
function_jobs = [
@@ -184,13 +187,16 @@ async def pre_register_function_job(
184187
)
185188
for input_ in job_inputs
186189
]
187-
jobs = await self._web_rpc_client.register_function_job(
188-
function_jobs=TypeAdapter(FunctionJobList).validate_python(
189-
function_jobs
190-
),
191-
user_id=self.user_id,
192-
product_name=self.product_name,
190+
batch_registered_jobs = (
191+
await self._web_rpc_client.batch_register_function_jobs(
192+
function_jobs=TypeAdapter(FunctionJobList).validate_python(
193+
function_jobs
194+
),
195+
user_id=self.user_id,
196+
product_name=self.product_name,
197+
)
193198
)
199+
jobs = batch_registered_jobs.created_items
194200
else:
195201
raise UnsupportedFunctionClassError(
196202
function_class=function.function_class,

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,10 @@ async def register_function_job(
172172
user_id: Annotated[UserID, Depends(get_current_user_id)],
173173
product_name: Annotated[ProductName, Depends(get_product_name)],
174174
) -> RegisteredFunctionJob:
175-
registered_jobs = await wb_api_rpc.register_function_job(
176-
function_jobs=[function_job], user_id=user_id, product_name=product_name
175+
registered_job = await wb_api_rpc.register_function_job(
176+
function_job=function_job, user_id=user_id, product_name=product_name
177177
)
178-
assert len(registered_jobs) == 1 # nosec
179-
return registered_jobs[0]
178+
return registered_job
180179

181180

182181
@function_job_router.get(

services/api-server/src/simcore_service_api_server/services_rpc/wb_api_server.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,14 @@
2323
)
2424
from models_library.api_schemas_webserver.licensed_items import LicensedItemRpcGetPage
2525
from models_library.functions import (
26+
BatchCreateRegisteredFunctionJobs,
2627
FunctionInputsList,
28+
FunctionJob,
2729
FunctionJobList,
2830
FunctionJobStatus,
2931
FunctionOutputs,
3032
FunctionUserAccessRights,
3133
FunctionUserApiAccessRights,
32-
RegisteredFunctionJobList,
3334
RegisteredFunctionJobWithStatus,
3435
RegisteredProjectFunctionJobPatchInputList,
3536
RegisteredSolverFunctionJobPatchInputList,
@@ -487,10 +488,23 @@ async def register_function_job(
487488
self,
488489
*,
489490
user_id: UserID,
490-
function_jobs: FunctionJobList,
491+
function_job: FunctionJob,
491492
product_name: ProductName,
492-
) -> RegisteredFunctionJobList:
493+
) -> RegisteredFunctionJob:
493494
return await self._rpc_client.functions.register_function_job(
495+
user_id=user_id,
496+
product_name=product_name,
497+
function_job=function_job,
498+
)
499+
500+
async def batch_register_function_jobs(
501+
self,
502+
*,
503+
user_id: UserID,
504+
function_jobs: FunctionJobList,
505+
product_name: ProductName,
506+
) -> BatchCreateRegisteredFunctionJobs:
507+
return await self._rpc_client.functions.batch_register_function_jobs(
494508
user_id=user_id,
495509
product_name=product_name,
496510
function_jobs=function_jobs,

services/web/server/tests/unit/with_dbs/04/functions/wb-api-server/test_function_job_collections_controller_rpc.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ async def test_function_job_collection(
7070
]
7171
# Register the function jobs
7272
registered_jobs_batch_create = (
73-
await webserver_rpc_client.functions.register_function_job_batch(
73+
await webserver_rpc_client.functions.batch_register_function_jobs(
7474
function_jobs=TypeAdapter(FunctionJobList).validate_python(function_jobs),
7575
user_id=logged_user["id"],
7676
product_name=osparc_product_name,
@@ -201,7 +201,7 @@ async def test_create_function_job_collection_same_function_job_uuid(
201201
)
202202
# Register the function job
203203
registered_jobs_batch_create = (
204-
await webserver_rpc_client.functions.register_function_job_batch(
204+
await webserver_rpc_client.functions.batch_register_function_jobs(
205205
function_jobs=[registered_function_job],
206206
user_id=logged_user["id"],
207207
product_name=osparc_product_name,
@@ -278,7 +278,7 @@ async def test_list_function_job_collections(
278278
]
279279
# Register the function jobs
280280
registered_jobs_batch_create = (
281-
await webserver_rpc_client.functions.register_function_job_batch(
281+
await webserver_rpc_client.functions.batch_register_function_jobs(
282282
function_jobs=TypeAdapter(FunctionJobList).validate_python(function_jobs),
283283
user_id=logged_user["id"],
284284
product_name=osparc_product_name,
@@ -378,7 +378,7 @@ async def test_list_function_job_collections_filtered_function_id(
378378
]
379379
# Register the function job
380380
registered_jobs_batch_create = (
381-
await webserver_rpc_client.functions.register_function_job_batch(
381+
await webserver_rpc_client.functions.batch_register_function_jobs(
382382
function_jobs=TypeAdapter(FunctionJobList).validate_python(
383383
function_jobs
384384
),

services/web/server/tests/unit/with_dbs/04/functions/wb-api-server/test_function_jobs_controller_rpc.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ async def test_register_get_delete_function_job(
8080

8181
# Register the function job
8282
registered_jobs_batch_create = (
83-
await webserver_rpc_client.functions.register_function_job_batch(
83+
await webserver_rpc_client.functions.batch_register_function_jobs(
8484
function_jobs=[function_job],
8585
user_id=logged_user["id"],
8686
product_name=osparc_product_name,
@@ -203,7 +203,7 @@ async def test_list_function_jobs(
203203

204204
# Register the function job
205205
registered_jobs_batch_create = (
206-
await webserver_rpc_client.functions.register_function_job_batch(
206+
await webserver_rpc_client.functions.batch_register_function_jobs(
207207
function_jobs=[function_job],
208208
user_id=logged_user["id"],
209209
product_name=osparc_product_name,
@@ -451,7 +451,7 @@ async def test_find_cached_function_jobs(
451451

452452
# Register the function job
453453
registered_jobs_batch_create = (
454-
await webserver_rpc_client.functions.register_function_job_batch(
454+
await webserver_rpc_client.functions.batch_register_function_jobs(
455455
function_jobs=TypeAdapter(FunctionJobList).validate_python(function_jobs),
456456
user_id=logged_user["id"],
457457
product_name=osparc_product_name,

0 commit comments

Comments
 (0)