From 0bee37d576dd3fea348e58cf074b5b3fe16c864d Mon Sep 17 00:00:00 2001 From: Seddik Yengui Date: Mon, 9 Sep 2024 16:24:54 +0200 Subject: [PATCH 1/4] Bump gridsuite dependencies to 32 Signed-off-by: Seddik Yengui --- pom.xml | 2 +- .../server/SecurityAnalysisController.java | 5 +++-- src/main/resources/config/application.yaml | 4 +++- .../server/SecurityAnalysisControllerTest.java | 8 ++++---- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index df8ad38e..333c5e3d 100644 --- a/pom.xml +++ b/pom.xml @@ -43,7 +43,7 @@ powsybl/java-dynawo:2.1.0 - 31 + 32 org.gridsuite.securityanalysis.server 1.0.5 diff --git a/src/main/java/org/gridsuite/securityanalysis/server/SecurityAnalysisController.java b/src/main/java/org/gridsuite/securityanalysis/server/SecurityAnalysisController.java index df8ecd25..978fe048 100644 --- a/src/main/java/org/gridsuite/securityanalysis/server/SecurityAnalysisController.java +++ b/src/main/java/org/gridsuite/securityanalysis/server/SecurityAnalysisController.java @@ -229,8 +229,9 @@ public ResponseEntity invalidateStatus(@Parameter(description = "Result uu @Operation(summary = "Stop a security analysis computation") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The security analysis has been stopped")}) public ResponseEntity stop(@Parameter(description = "Result UUID") @PathVariable("resultUuid") UUID resultUuid, - @Parameter(description = "Result receiver") @RequestParam(name = "receiver", required = false) String receiver) { - securityAnalysisService.stop(resultUuid, receiver); + @Parameter(description = "Result receiver") @RequestParam(name = "receiver", required = false) String receiver, + @RequestHeader(HEADER_USER_ID) String userId) { + securityAnalysisService.stop(resultUuid, receiver, userId); return ResponseEntity.ok().build(); } diff --git a/src/main/resources/config/application.yaml b/src/main/resources/config/application.yaml index a1aab88c..cfaaf152 100644 --- a/src/main/resources/config/application.yaml +++ b/src/main/resources/config/application.yaml @@ -32,7 +32,9 @@ spring: destination: ${powsybl-ws.rabbitmq.destination.prefix:}sa.stopped publishFailed-out-0: destination: ${powsybl-ws.rabbitmq.destination.prefix:}sa.failed - output-bindings: publishRun-out-0;publishResult-out-0;publishCancel-out-0;publishStopped-out-0;publishFailed-out-0 + publishCancelFailed-out-0: + destination: ${powsybl-ws.rabbitmq.destination.prefix:}sa.cancelfailed + output-bindings: publishRun-out-0;publishResult-out-0;publishCancel-out-0;publishStopped-out-0;publishFailed-out-;publishCancelFailed-out-0 powsybl-ws: database: diff --git a/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java b/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java index 394d73ab..39b207a8 100644 --- a/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java +++ b/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java @@ -648,14 +648,14 @@ public void stopTest() throws Exception { // wait for security analysis to actually run before trying to stop it countDownLatch.await(); - mockMvc.perform(put("/" + VERSION + "/results/" + RESULT_UUID + "/stop" - + "?receiver=me")) + mockMvc.perform(put("/" + VERSION + "/results/" + RESULT_UUID + "/stop" + "?receiver=me") + .header(HEADER_USER_ID, "testUserId")) .andExpect(status().isOk()); - Message message = output.receive(TIMEOUT * 3, "sa.stopped"); + Message message = output.receive(TIMEOUT * 3, "sa.cancelfailed"); assertEquals(RESULT_UUID.toString(), message.getHeaders().get("resultUuid")); assertEquals("me", message.getHeaders().get("receiver")); - assertEquals(getCancelMessage(COMPUTATION_TYPE), message.getHeaders().get("message")); + assertEquals(getCancelFailedMessage(COMPUTATION_TYPE), message.getHeaders().get("message")); } @Test From b1e88c294caf84b58ca487420dd79b0b75286329 Mon Sep 17 00:00:00 2001 From: Seddik Yengui Date: Mon, 9 Sep 2024 16:28:49 +0200 Subject: [PATCH 2/4] add comment Signed-off-by: Seddik Yengui --- .../securityanalysis/server/SecurityAnalysisControllerTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java b/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java index 39b207a8..647ddbbe 100644 --- a/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java +++ b/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java @@ -656,6 +656,8 @@ public void stopTest() throws Exception { assertEquals(RESULT_UUID.toString(), message.getHeaders().get("resultUuid")); assertEquals("me", message.getHeaders().get("receiver")); assertEquals(getCancelFailedMessage(COMPUTATION_TYPE), message.getHeaders().get("message")); + + //FIXME how to test the case when the computation is still in progress and we send a cancel request } @Test From e6e9cb290c3c0e8c704997a45dbb8b253d401122 Mon Sep 17 00:00:00 2001 From: Seddik Yengui Date: Tue, 10 Sep 2024 15:51:36 +0200 Subject: [PATCH 3/4] fix unit tests Signed-off-by: Seddik Yengui --- .../server/SecurityAnalysisControllerTest.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java b/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java index 647ddbbe..69064e16 100644 --- a/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java +++ b/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java @@ -652,12 +652,10 @@ public void stopTest() throws Exception { .header(HEADER_USER_ID, "testUserId")) .andExpect(status().isOk()); - Message message = output.receive(TIMEOUT * 3, "sa.cancelfailed"); + Message message = output.receive(TIMEOUT * 3, "sa.stopped"); assertEquals(RESULT_UUID.toString(), message.getHeaders().get("resultUuid")); assertEquals("me", message.getHeaders().get("receiver")); - assertEquals(getCancelFailedMessage(COMPUTATION_TYPE), message.getHeaders().get("message")); - - //FIXME how to test the case when the computation is still in progress and we send a cancel request + assertEquals(getCancelMessage(COMPUTATION_TYPE), message.getHeaders().get("message")); } @Test From 83e9084ffea5edbdd5f602b84b6d74e778fcb36b Mon Sep 17 00:00:00 2001 From: Seddik Yengui Date: Tue, 10 Sep 2024 17:43:44 +0200 Subject: [PATCH 4/4] add stop and fail test Signed-off-by: Seddik Yengui --- .../server/SecurityAnalysisControllerTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java b/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java index 69064e16..05a9eef7 100644 --- a/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java +++ b/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java @@ -658,6 +658,19 @@ public void stopTest() throws Exception { assertEquals(getCancelMessage(COMPUTATION_TYPE), message.getHeaders().get("message")); } + @Test + public void testStopAndFail() throws Exception { + UUID randomUuid = UUID.randomUUID(); + mockMvc.perform(put("/" + VERSION + "/results/" + randomUuid + "/stop" + "?receiver=me") + .header(HEADER_USER_ID, "testUserId")) + .andExpect(status().isOk()); + + Message message = output.receive(TIMEOUT * 3, "sa.cancelfailed"); + assertEquals(randomUuid.toString(), message.getHeaders().get("resultUuid")); + assertEquals("me", message.getHeaders().get("receiver")); + assertEquals(getCancelFailedMessage(COMPUTATION_TYPE), message.getHeaders().get("message")); + } + @Test public void runTestWithError() throws Exception { MvcResult mvcResult;