Skip to content

Commit ff26b42

Browse files
committed
[PROD-15528] Allow updating a Runner's validationStatus
1 parent 46f7c63 commit ff26b42

7 files changed

Lines changed: 37 additions & 1 deletion

File tree

api/src/integrationTest/kotlin/com/cosmotech/api/home/ControllerTestUtils.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ class ControllerTestUtils {
220220
tags: MutableList<String> = mutableListOf(),
221221
datasetList: MutableList<String>? = mutableListOf(),
222222
parametersValues: MutableList<RunnerRunTemplateParameterValue>? = mutableListOf(),
223+
validationStatus: RunnerValidationStatus,
223224
): RunnerUpdateRequest {
224225

225226
return RunnerUpdateRequest(
@@ -233,6 +234,7 @@ class ControllerTestUtils {
233234
additionalData = additionalData,
234235
solutionName = solutionName,
235236
runTemplateName = runTemplateName,
237+
validationStatus = validationStatus,
236238
)
237239
}
238240
}

api/src/integrationTest/kotlin/com/cosmotech/api/home/runner/RunnerControllerTests.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,7 @@ class RunnerControllerTests : ControllerTestBase() {
474474
val datasetList = mutableListOf(datasetId)
475475
val runnerParameterValue = "parameter_value"
476476
val runnerParameterVarType = "this_is_a_vartype"
477+
val validationStatus = RunnerValidationStatus.Validated
477478

478479
val additionalData =
479480
mutableMapOf(
@@ -521,6 +522,7 @@ class RunnerControllerTests : ControllerTestBase() {
521522
isInherited = false,
522523
)
523524
),
525+
validationStatus = validationStatus,
524526
)
525527

526528
mvc.perform(
@@ -555,6 +557,7 @@ class RunnerControllerTests : ControllerTestBase() {
555557
.andExpect(jsonPath("$.parametersValues[0].value").value(runnerParameterValue))
556558
.andExpect(jsonPath("$.parametersValues[0].varType").value(solutionParameterVarType1))
557559
.andExpect(jsonPath("$.parametersValues[0].isInherited").value(false))
560+
.andExpect(jsonPath("$.validationStatus").value(validationStatus.name))
558561
.andExpect(jsonPath("$.security.accessControlList[0].role").value(ROLE_ADMIN))
559562
.andExpect(jsonPath("$.security.accessControlList[0].id").value(PLATFORM_ADMIN_EMAIL))
560563
.andDo(MockMvcResultHandlers.print())

doc/Models/RunnerUpdateRequest.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
| **additionalData** | [**Map**](AnyType.md) | Free form additional data | [optional] [default to null] |
1414
| **solutionName** | **String** | the Solution name | [optional] [default to null] |
1515
| **runTemplateName** | **String** | the Solution Run Template name associated with this Runner | [optional] [default to null] |
16+
| **validationStatus** | [**RunnerValidationStatus**](RunnerValidationStatus.md) | | [optional] [default to null] |
1617

1718
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
1819

openapi/plantuml/schemas.plantuml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,7 @@ entity RunnerUpdateRequest {
435435
additionalData: Map
436436
solutionName: String
437437
runTemplateName: String
438+
validationStatus: RunnerValidationStatus
438439
}
439440

440441
entity RunnerValidationStatus {

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,30 @@ class RunnerServiceIntegrationTest : CsmTestBase() {
314314
)
315315
}
316316

317+
@Test
318+
fun `test updateRunner with validationStatus`() {
319+
assertEquals(RunnerValidationStatus.Draft, runnerSaved.validationStatus)
320+
321+
val updateRunnerResponse =
322+
runnerApiService.updateRunner(
323+
organizationSaved.id,
324+
workspaceSaved.id,
325+
runnerSaved.id,
326+
RunnerUpdateRequest(
327+
validationStatus = RunnerValidationStatus.Validated,
328+
),
329+
)
330+
assertEquals(RunnerValidationStatus.Validated, updateRunnerResponse.validationStatus)
331+
332+
val updatedRunner =
333+
runnerApiService.getRunner(
334+
organizationSaved.id,
335+
workspaceSaved.id,
336+
runnerSaved.id,
337+
)
338+
assertEquals(RunnerValidationStatus.Validated, updatedRunner.validationStatus)
339+
}
340+
317341
@Test
318342
fun `test updateRunner and check parameterValues after updating a simple solution parameter to DATASET_PART varType`() {
319343

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,7 @@ class RunnerService(
456456
)
457457
}
458458

459+
@Suppress("LongMethod")
459460
fun setValueFrom(runnerUpdateRequest: RunnerUpdateRequest): RunnerInstance {
460461

461462
runnerUpdateRequest.runSizing?.let {
@@ -515,7 +516,8 @@ class RunnerService(
515516
lastRunStatus = this.runner.lastRunInfo.lastRunStatus,
516517
lastRunId = this.runner.lastRunInfo.lastRunId,
517518
),
518-
validationStatus = this.runner.validationStatus,
519+
validationStatus =
520+
runnerUpdateRequest.validationStatus ?: this.runner.validationStatus,
519521
)
520522
)
521523
}

runner/src/main/openapi/runner.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -774,6 +774,9 @@ components:
774774
description: the Solution Run Template name associated with this Runner
775775
minLength: 1
776776
x-size-message: "cannot be empty"
777+
validationStatus:
778+
allOf:
779+
- $ref: '#/components/schemas/RunnerValidationStatus'
777780
RunnerSecurity:
778781
type: object
779782
description: the Runner security information

0 commit comments

Comments
 (0)