diff --git a/pom.xml b/pom.xml
index be0cb6d..9b7394a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -132,6 +132,7 @@
com.powsybl
powsybl-ws-commons
+ 1.20.0-SNAPSHOT
org.springframework.cloud
diff --git a/src/main/java/org/gridsuite/voltageinit/server/VoltageInitController.java b/src/main/java/org/gridsuite/voltageinit/server/VoltageInitController.java
index 7895a1c..61f8804 100644
--- a/src/main/java/org/gridsuite/voltageinit/server/VoltageInitController.java
+++ b/src/main/java/org/gridsuite/voltageinit/server/VoltageInitController.java
@@ -11,7 +11,6 @@
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
-
import org.gridsuite.voltageinit.server.dto.VoltageInitResult;
import org.gridsuite.voltageinit.server.dto.VoltageInitStatus;
import org.gridsuite.voltageinit.server.service.VoltageInitRunContext;
@@ -21,6 +20,7 @@
import org.springframework.web.bind.annotation.*;
import java.util.List;
+import java.util.Optional;
import java.util.UUID;
import static com.powsybl.ws.commons.computation.service.NotificationService.HEADER_USER_ID;
@@ -49,9 +49,10 @@ public ResponseEntity runAndSave(@Parameter(description = "Network UUID")
@Parameter(description = "reportUuid") @RequestParam(name = "reportUuid", required = false) UUID reportUuid,
@Parameter(description = "reporterId") @RequestParam(name = "reporterId", required = false) String reporterId,
@Parameter(description = "The type name for the report") @RequestParam(name = "reportType", required = false, defaultValue = "VoltageInit") String reportType,
+ @Parameter(description = "Debug mode") @RequestParam(name = "debug", required = false) Boolean debug,
@Parameter(description = "parametersUuid") @RequestParam(name = "parametersUuid", required = false) UUID parametersUuid,
@RequestHeader(HEADER_USER_ID) String userId) {
- VoltageInitRunContext runContext = new VoltageInitRunContext(networkUuid, variantId, receiver, reportUuid, reporterId, reportType, userId, parametersUuid);
+ VoltageInitRunContext runContext = new VoltageInitRunContext(networkUuid, variantId, receiver, reportUuid, reporterId, reportType, userId, parametersUuid, Optional.ofNullable(debug).orElse(false));
UUID resultUuid = voltageInitService.runAndSaveResult(runContext);
return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(resultUuid);
}
diff --git a/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitResultContext.java b/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitResultContext.java
index 1226ef7..014ac7c 100644
--- a/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitResultContext.java
+++ b/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitResultContext.java
@@ -10,8 +10,8 @@
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.powsybl.commons.PowsyblException;
-import lombok.Getter;
import com.powsybl.ws.commons.computation.service.AbstractResultContext;
+import lombok.Getter;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
@@ -67,8 +67,9 @@ public static VoltageInitResultContext fromMessage(Message message, Obje
.orElse(null);
String reporterId = headers.containsKey(REPORTER_ID_HEADER) ? (String) headers.get(REPORTER_ID_HEADER) : null;
String reportType = headers.containsKey(REPORT_TYPE_HEADER) ? (String) headers.get(REPORT_TYPE_HEADER) : null;
+ Boolean debug = (Boolean) headers.get(DEBUG_HEADER);
VoltageInitRunContext runContext = new VoltageInitRunContext(
- networkUuid, variantId, receiver, reportUuid, reporterId, reportType, userId, parametersUuid, voltageLevelsIdsRestricted
+ networkUuid, variantId, receiver, reportUuid, reporterId, reportType, userId, parametersUuid, voltageLevelsIdsRestricted, Optional.ofNullable(debug).orElse(false)
);
return new VoltageInitResultContext(resultUuid, runContext);
}
diff --git a/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitRunContext.java b/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitRunContext.java
index 808f18f..058aca1 100644
--- a/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitRunContext.java
+++ b/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitRunContext.java
@@ -6,9 +6,9 @@
*/
package org.gridsuite.voltageinit.server.service;
-import lombok.Getter;
import com.powsybl.ws.commons.computation.dto.ReportInfos;
import com.powsybl.ws.commons.computation.service.AbstractComputationRunContext;
+import lombok.Getter;
import java.util.HashMap;
import java.util.Map;
@@ -24,13 +24,13 @@ public class VoltageInitRunContext extends AbstractComputationRunContext {
private final Map voltageLevelsIdsRestricted;
- public VoltageInitRunContext(UUID networkUuid, String variantId, String receiver, UUID reportUuid, String reporterId, String reportType, String userId, UUID parametersUuid, Map voltageLevelsIdsRestricted) {
- super(networkUuid, variantId, receiver, new ReportInfos(reportUuid, reporterId, reportType), userId, null, null);
+ public VoltageInitRunContext(UUID networkUuid, String variantId, String receiver, UUID reportUuid, String reporterId, String reportType, String userId, UUID parametersUuid, Map voltageLevelsIdsRestricted, boolean debug) {
+ super(networkUuid, variantId, receiver, new ReportInfos(reportUuid, reporterId, reportType), userId, null, null, debug);
this.parametersUuid = parametersUuid;
this.voltageLevelsIdsRestricted = voltageLevelsIdsRestricted;
}
- public VoltageInitRunContext(UUID networkUuid, String variantId, String receiver, UUID reportUuid, String reporterId, String reportType, String userId, UUID parametersUuid) {
- this(networkUuid, variantId, receiver, reportUuid, reporterId, reportType, userId, parametersUuid, new HashMap<>());
+ public VoltageInitRunContext(UUID networkUuid, String variantId, String receiver, UUID reportUuid, String reporterId, String reportType, String userId, UUID parametersUuid, boolean debug) {
+ this(networkUuid, variantId, receiver, reportUuid, reporterId, reportType, userId, parametersUuid, new HashMap<>(), debug);
}
}
diff --git a/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitWorkerService.java b/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitWorkerService.java
index 95a9e02..a74171a 100644
--- a/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitWorkerService.java
+++ b/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitWorkerService.java
@@ -85,7 +85,7 @@ private boolean checkReactiveSlacksOverThreshold(OpenReacResult openReacResult,
protected CompletableFuture getCompletableFuture(VoltageInitRunContext context, String provider, UUID resultUuid) {
OpenReacParameters parameters = voltageInitParametersService.buildOpenReacParameters(context, context.getNetwork());
OpenReacConfig config = OpenReacConfig.load();
- return OpenReacRunner.runAsync(context.getNetwork(), context.getNetwork().getVariantManager().getWorkingVariantId(), parameters, config, executionService.getComputationManager(), context.getReportNode(), null);
+ return OpenReacRunner.runAsync(context.getNetwork(), context.getNetwork().getVariantManager().getWorkingVariantId(), parameters, config, context.getComputationManager(), context.getReportNode(), null);
}
@Override
@@ -147,14 +147,14 @@ protected void postRun(VoltageInitRunContext runContext, AtomicReference resultContext, OpenReacResult result) {
+ public Map getResultHeaders(AbstractResultContext resultContext, OpenReacResult result) {
+ Map additionalHeaders = super.getResultHeaders(resultContext, result);
VoltageInitRunContext context = resultContext.getRunContext();
double reactiveSlacksThreshold = voltageInitParametersService.getReactiveSlacksThreshold(context.getParametersUuid());
boolean resultCheckReactiveSlacks = checkReactiveSlacksOverThreshold(result, reactiveSlacksThreshold);
- Map additionalHeaders = new HashMap<>();
additionalHeaders.put(HEADER_REACTIVE_SLACKS_OVER_THRESHOLD, resultCheckReactiveSlacks);
additionalHeaders.put(HEADER_REACTIVE_SLACKS_THRESHOLD_VALUE, reactiveSlacksThreshold);
- notificationService.sendResultMessage(resultContext.getResultUuid(), context.getReceiver(), context.getUserId(), additionalHeaders);
+ return additionalHeaders;
}
@Override
diff --git a/src/test/java/org/gridsuite/voltageinit/server/service/parameters/ParametersTest.java b/src/test/java/org/gridsuite/voltageinit/server/service/parameters/ParametersTest.java
index 9b499be..0606101 100644
--- a/src/test/java/org/gridsuite/voltageinit/server/service/parameters/ParametersTest.java
+++ b/src/test/java/org/gridsuite/voltageinit/server/service/parameters/ParametersTest.java
@@ -147,7 +147,7 @@ private ListAssert testsBuildSpecificVoltageLimitsCommon(L
final VoltageInitParametersEntity voltageInitParameters = entityManager.persistFlushFind(
new VoltageInitParametersEntity(null, null, "", voltageLimits, null, null, null, 100., 0., false)
);
- final VoltageInitRunContext context = new VoltageInitRunContext(NETWORK_UUID, VARIANT_ID_1, null, REPORT_UUID, null, "", "", voltageInitParameters.getId());
+ final VoltageInitRunContext context = new VoltageInitRunContext(NETWORK_UUID, VARIANT_ID_1, null, REPORT_UUID, null, "", "", voltageInitParameters.getId(), true);
context.setReportNode(ReportNode.newRootReportNode().withMessageTemplate(COMPUTATION_TYPE, COMPUTATION_TYPE).build());
final OpenReacParameters openReacParameters = voltageInitParametersService.buildOpenReacParameters(context, network);
log.debug("openReac build parameters report: {}", mapper.writeValueAsString(context.getReportNode()));
@@ -258,7 +258,7 @@ void testsBuildSpecificVoltageLimitsWithFourSubstationStudy() throws Exception {
new VoltageInitParametersEntity(null, null, "", List.of(vl1, vl2, vl3, vl4), null, null, null, 100., 0., false)
);
- final VoltageInitRunContext context = new VoltageInitRunContext(networkUuid, variantId, null, REPORT_UUID, null, "", "", voltageInitParameters.getId());
+ final VoltageInitRunContext context = new VoltageInitRunContext(networkUuid, variantId, null, REPORT_UUID, null, "", "", voltageInitParameters.getId(), false);
context.setReportNode(ReportNode.newRootReportNode().withMessageTemplate("VoltageInit", "VoltageInit").build());
final OpenReacParameters openReacParameters = voltageInitParametersService.buildOpenReacParameters(context, network);
if (log.isDebugEnabled()) {