Skip to content

Commit 15449ce

Browse files
committed
Filter and remove dataset part parameters in runners
- Added logic to exclude `DATASET_PART_VARTYPE_FILE` and `DATASET_PART_VARTYPE_DB` parameters during runner updates in `RunnerService`. - Introduced a new integration test to validate parameter filtering behavior for dataset part types.
1 parent 30c83f1 commit 15449ce

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

runner/src/integrationTest/kotlin/com/cosmotech/runner/service/RunnerServiceIntegrationTest.kt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,49 @@ class RunnerServiceIntegrationTest : CsmTestBase() {
247247
assertEquals("integer", updateRunnerSaved.parametersValues[0].varType)
248248
}
249249

250+
@Test
251+
fun `test updateRunner and check parameterValues after updating a simple solution parameter to DATASET_PART varType`() {
252+
253+
// 1 - create a runner with an integer parameter
254+
val parameterId = "param1"
255+
val creationParameterValue =
256+
RunnerRunTemplateParameterValue(parameterId = parameterId, value = "7", varType = "integer")
257+
val newRunner =
258+
makeRunnerCreateRequest(
259+
name = "NewRunner",
260+
datasetList = mutableListOf(datasetSaved.id),
261+
parametersValues = mutableListOf(creationParameterValue))
262+
val newRunnerSaved =
263+
runnerApiService.createRunner(organizationSaved.id, workspaceSaved.id, newRunner)
264+
265+
assertNotNull(newRunnerSaved.parametersValues)
266+
assertEquals(1, newRunnerSaved.parametersValues.size)
267+
assertEquals(creationParameterValue, newRunnerSaved.parametersValues[0])
268+
269+
// 2 - the solution parameter varType is changed for a dataset varType
270+
271+
solutionApiService.updateSolutionParameter(
272+
organizationSaved.id,
273+
solutionSaved.id,
274+
parameterId,
275+
RunTemplateParameterUpdateRequest(varType = DATASET_PART_VARTYPE_FILE))
276+
277+
// 3 - try to update the runner and check that the parameters are updated too
278+
val newParameterValue =
279+
RunnerRunTemplateParameterValue(
280+
parameterId = parameterId, value = "10", varType = "integer")
281+
282+
val updateRunnerSaved =
283+
runnerApiService.updateRunner(
284+
organizationSaved.id,
285+
workspaceSaved.id,
286+
newRunnerSaved.id,
287+
RunnerUpdateRequest(parametersValues = mutableListOf(newParameterValue)))
288+
289+
assertNotNull(updateRunnerSaved.parametersValues)
290+
assertTrue(updateRunnerSaved.parametersValues.isEmpty())
291+
}
292+
250293
@Test
251294
fun `test CRUD operations on Runner as Platform Admin`() {
252295
every { getCurrentAccountIdentifier(any()) } returns "random_user_with_patform_admin_role"

runner/src/main/kotlin/com/cosmotech/runner/service/RunnerService.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,9 @@ class RunnerService(
518518
}
519519

520520
return parametersValues
521+
.filter {
522+
it.varType != DATASET_PART_VARTYPE_DB && it.varType != DATASET_PART_VARTYPE_FILE
523+
}
521524
.filter { allowedParametersIds.contains(it.parameterId) }
522525
.toMutableList()
523526
}
@@ -632,6 +635,10 @@ class RunnerService(
632635
?.varType
633636
?.let { runnerParam.varType = it }
634637
}
638+
639+
this.runner.parametersValues.removeIf {
640+
it.varType == DATASET_PART_VARTYPE_FILE || it.varType == DATASET_PART_VARTYPE_DB
641+
}
635642
}
636643

637644
fun initBaseDatasetListFromParent(

0 commit comments

Comments
 (0)