Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
package org.gridsuite.study.server.controller.loadflow;

import org.gridsuite.study.server.StudyApi;
import org.gridsuite.study.server.dto.LoadFlowParametersInfos;
import org.gridsuite.study.server.service.loadflow.LoadFlowService;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
Expand Down Expand Up @@ -40,8 +39,8 @@ public ResponseEntity<String> getDefaultLimitReductions() {
}

@GetMapping(value = "/parameters/{parameterUuid}")
public ResponseEntity<LoadFlowParametersInfos> getLoadFlowParameters(@PathVariable UUID parameterUuid) {
return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(loadFlowService.getLoadFlowParameters(parameterUuid));
public ResponseEntity<String> getLoadFlowParameters(@PathVariable UUID parameterUuid) {
return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(loadFlowService.getLoadFlowCommonParameters(parameterUuid));
}

@PutMapping(value = "/parameters/{parameterUuid}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.gridsuite.study.server.StudyApi;
import org.gridsuite.study.server.dto.LoadFlowParametersInfos;
import org.gridsuite.study.server.nodeactivity.NodeActivityRunnerService;
import org.gridsuite.study.server.service.loadflow.LoadFlowService;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

Expand Down Expand Up @@ -57,8 +57,10 @@ public ResponseEntity<Void> setLoadflowParameters(
@GetMapping(value = "/parameters")
@Operation(summary = "Get loadflow parameters on study")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The loadflow parameters")})
public ResponseEntity<LoadFlowParametersInfos> getLoadflowParameters(@PathVariable("studyUuid") UUID studyUuid) {
return ResponseEntity.ok().body(loadFlowService.getLoadFlowParametersInfos(studyUuid));
public ResponseEntity<String> getLoadFlowParameters(@PathVariable("studyUuid") UUID studyUuid) {
return ResponseEntity.ok()
.contentType(MediaType.APPLICATION_JSON)
.body(loadFlowService.getLoadFlowParametersValues(studyUuid));
}

@GetMapping(value = "/parameters/id")
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -830,7 +830,7 @@ public String getNetworkElementsInfos(UUID studyUuid,
List<Double> nominalVoltages) {
UUID nodeUuidToSearchIn = getNodeUuidToSearchIn(nodeUuid, rootNetworkUuid, inUpstreamBuiltParentNode);
StudyEntity studyEntity = getStudy(studyUuid);
LoadFlowParameters loadFlowParameters = loadFlowService.getLoadFlowParameters(studyEntity);
LoadFlowParameters loadFlowParameters = loadFlowService.getLoadFlowCommonParameters(studyEntity);
return networkMapService.getElementsInfos(
rootNetworkService.getNetworkUuid(rootNetworkUuid),
networkModificationTreeService.getVariantId(nodeUuidToSearchIn, rootNetworkUuid),
Expand All @@ -851,7 +851,7 @@ public String getNetworkElementInfos(UUID studyUuid,
boolean inUpstreamBuiltParentNode) {
UUID nodeUuidToSearchIn = getNodeUuidToSearchIn(nodeUuid, rootNetworkUuid, inUpstreamBuiltParentNode);
StudyEntity studyEntity = getStudy(studyUuid);
LoadFlowParameters loadFlowParameters = loadFlowService.getLoadFlowParameters(studyEntity);
LoadFlowParameters loadFlowParameters = loadFlowService.getLoadFlowCommonParameters(studyEntity);
return networkMapService.getElementInfos(
rootNetworkService.getNetworkUuid(rootNetworkUuid),
networkModificationTreeService.getVariantId(nodeUuidToSearchIn, rootNetworkUuid),
Expand Down Expand Up @@ -939,7 +939,7 @@ public String getBranchOr3WTVoltageLevelId(UUID nodeUuid, UUID rootNetworkUuid,
@Transactional
public String getAllMapData(UUID studyUuid, UUID nodeUuid, UUID rootNetworkUuid, List<String> substationsIds) {
StudyEntity studyEntity = getStudy(studyUuid);
LoadFlowParameters loadFlowParameters = loadFlowService.getLoadFlowParameters(studyEntity);
LoadFlowParameters loadFlowParameters = loadFlowService.getLoadFlowCommonParameters(studyEntity);
Map<String, Map<String, String>> optionalParameters = new HashMap<>();
Stream.of(
String.valueOf(ElementType.BRANCH),
Expand Down Expand Up @@ -2561,7 +2561,7 @@ public String getNetworkElementsInfosByGlobalFilter(UUID studyUuid, UUID nodeUui
// Get the requested info for the filtered equipment ids
UUID nodeUuidToSearchIn = getNodeUuidToSearchIn(nodeUuid, rootNetworkUuid, true);
StudyEntity studyEntity = getStudy(studyUuid);
LoadFlowParameters loadFlowParameters = loadFlowService.getLoadFlowParameters(studyEntity);
LoadFlowParameters loadFlowParameters = loadFlowService.getLoadFlowCommonParameters(studyEntity);

return networkMapService.getElementsInfosByIds(
rootNetworkService.getNetworkUuid(rootNetworkUuid),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
package org.gridsuite.study.server.service.loadflow;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.powsybl.loadflow.LoadFlowParameters;
import org.apache.commons.lang3.StringUtils;
import org.gridsuite.study.server.RemoteServicesProperties;
import org.gridsuite.study.server.dto.*;
Expand Down Expand Up @@ -214,11 +216,16 @@ public List<LimitViolationInfos> getCurrentLimitViolations(UUID resultUuid) {
}).getBody();
}

public LoadFlowParametersInfos getLoadFlowParameters(UUID parametersUuid) {

public LoadFlowParameters getCommonParameters(UUID parametersUuid) {
String path = UriComponentsBuilder.fromPath(DELIMITER + LOADFLOW_API_VERSION + PARAMETERS_URI)
.buildAndExpand(parametersUuid).toUriString();
return restTemplate.getForObject(baseUri + path, LoadFlowParametersInfos.class);
String parameters = restTemplate.getForObject(baseUri + path, String.class);
try {
JsonNode commonParametersNode = objectMapper.readTree(parameters).get("commonParameters");
return objectMapper.treeToValue(commonParametersNode, LoadFlowParameters.class);
} catch (JsonProcessingException e) {
throw new UncheckedIOException(e);
}
}

public UUID createLoadFlowParameters(String parameters) {
Expand Down Expand Up @@ -316,9 +323,9 @@ public String getDefaultLimitReductions() {
return restTemplate.getForObject(getBaseUri() + DELIMITER + LOADFLOW_API_VERSION + "/parameters/default-limit-reductions", String.class);
}

public LoadFlowParametersInfos getParameters(UUID parameterUuid) {
public String getParameters(UUID parameterUuid) {
String path = UriComponentsBuilder.fromPath(DELIMITER + LOADFLOW_API_VERSION + "/parameters/{parameterUuid}").buildAndExpand(parameterUuid).toUriString();
return restTemplate.getForObject(getBaseUri() + path, LoadFlowParametersInfos.class);
return restTemplate.getForObject(getBaseUri() + path, String.class);
}

public void updateParameters(UUID parameterUuid, @Nullable String parameters) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,20 +105,16 @@ public String getLoadFlowProvider(UUID studyUuid) {
}

@Transactional
public LoadFlowParametersInfos getLoadFlowParametersInfos(UUID studyUuid) {
public String getLoadFlowParametersValues(UUID studyUuid) {
StudyEntity studyEntity = getStudy(studyUuid);
return getLoadFlowParametersInfos(studyEntity);
}

private LoadFlowParametersInfos getLoadFlowParametersInfos(StudyEntity studyEntity) {
UUID loadFlowParamsUuid = loadflowRestService.getLoadFlowParametersOrDefaultsUuid(studyEntity);
return loadflowRestService.getLoadFlowParameters(loadFlowParamsUuid);
return loadflowRestService.getParameters(loadFlowParamsUuid);
}

@Transactional
public LoadFlowParameters getLoadFlowParameters(StudyEntity studyEntity) {
LoadFlowParametersInfos lfParameters = getLoadFlowParametersInfos(studyEntity);
return lfParameters.getCommonParameters();
public LoadFlowParameters getLoadFlowCommonParameters(StudyEntity studyEntity) {

@basseche basseche Sep 10, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not getCommonParameters ? We know it is loadFlow parameters since we are in loadFlow service

UUID loadFlowParamsUuid = loadflowRestService.getLoadFlowParametersOrDefaultsUuid(studyEntity);
return loadflowRestService.getCommonParameters(loadFlowParamsUuid);
}

@Transactional
Expand Down Expand Up @@ -149,7 +145,7 @@ public String getDefaultLimitReductions() {
return loadflowRestService.getDefaultLimitReductions();
}

public LoadFlowParametersInfos getLoadFlowParameters(UUID parameterUuid) {
public String getLoadFlowCommonParameters(UUID parameterUuid) {
return loadflowRestService.getParameters(parameterUuid);
}

Expand Down
8 changes: 3 additions & 5 deletions src/test/java/org/gridsuite/study/server/NetworkMapTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import org.gridsuite.filter.utils.EquipmentType;
import org.gridsuite.study.server.dto.ComputationType;
import org.gridsuite.study.server.dto.IdentifiableInfos;
import org.gridsuite.study.server.dto.LoadFlowParametersInfos;
import org.gridsuite.study.server.networkmodificationtree.dto.AbstractNode;
import org.gridsuite.study.server.networkmodificationtree.dto.RootNode;
import org.gridsuite.study.server.repository.StudyEntity;
Expand Down Expand Up @@ -182,10 +181,9 @@ void setup(final MockWebServer server) throws Exception {
IdentifiableInfos.builder().id("BUSBAR_SECTION_1").name("BUSBAR_SECTION_1").build(),
IdentifiableInfos.builder().id("BUSBAR_SECTION_2").name("BUSBAR_SECTION_2").build()));

LoadFlowParametersInfos loadFlowParametersInfos = LoadFlowParametersInfos.builder()
.commonParameters(LoadFlowParameters.load())
.specificParametersPerProvider(Map.of())
.build();
Map<String, Object> loadFlowParametersInfos = Map.of(
"commonParameters", LoadFlowParameters.load(),
"specificParametersPerProvider", Map.of());
String loadFlowParameters = objectMapper.writeValueAsString(loadFlowParametersInfos);

final Dispatcher dispatcher = new Dispatcher() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import mockwebserver3.junit5.internal.MockWebServerExtension;
import okhttp3.Headers;
import okhttp3.HttpUrl;
import org.gridsuite.study.server.dto.LoadFlowParametersInfos;
import org.gridsuite.study.server.dto.RootNetworkNodeInfo;
import org.gridsuite.study.server.dto.VoltageLevelInfos;
import org.gridsuite.study.server.networkmodificationtree.dto.*;
Expand Down Expand Up @@ -162,11 +161,8 @@ void setup(final MockWebServer server) {
when(networkStoreService.getVariantsInfos(UUID.fromString(NETWORK_UUID_VARIANT_ERROR_STRING)))
.thenReturn(List.of(new VariantInfos(VariantManagerConstants.INITIAL_VARIANT_ID, 0)));

when(loadFlowRestService.getLoadFlowParameters(LOADFLOW_PARAMETERS_UUID))
.thenReturn(LoadFlowParametersInfos.builder()
.commonParameters(LoadFlowParameters.load())
.specificParametersPerProvider(Map.of())
.build());
when(loadFlowRestService.getCommonParameters(LOADFLOW_PARAMETERS_UUID))
.thenReturn(LoadFlowParameters.load());

when(loadFlowRestService.getLoadFlowParametersOrDefaultsUuid(any()))
.thenReturn(LOADFLOW_PARAMETERS_UUID);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
*/
package org.gridsuite.study.server.controller.loadflow;

import org.gridsuite.study.server.dto.LoadFlowParametersInfos;
import org.gridsuite.study.server.service.loadflow.LoadFlowService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
Expand All @@ -24,7 +23,6 @@
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@ExtendWith(MockitoExtension.class)
Expand Down Expand Up @@ -84,14 +82,14 @@ void testGetDefaultLimitReductions() throws Exception {
@Test
void testGetLoadFlowParameters() throws Exception {
UUID parameterUuid = UUID.randomUUID();
when(loadFlowService.getLoadFlowParameters(parameterUuid)).thenReturn(LoadFlowParametersInfos.builder().provider("OpenLoadFlow").build());
when(loadFlowService.getLoadFlowCommonParameters(parameterUuid)).thenReturn(PARAMETERS);

mockMvc.perform(get(BASE_URL + "/parameters/{parameterUuid}", parameterUuid))
.andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_JSON))
.andExpect(jsonPath("$.provider").value("OpenLoadFlow"));
.andExpect(content().json(PARAMETERS));

verify(loadFlowService).getLoadFlowParameters(parameterUuid);
verify(loadFlowService).getLoadFlowCommonParameters(parameterUuid);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
*/
package org.gridsuite.study.server.controller.loadflow;

import org.gridsuite.study.server.dto.LoadFlowParametersInfos;
import org.gridsuite.study.server.nodeactivity.NodeActivityRunnerService;
import org.gridsuite.study.server.service.StudyService;
import org.gridsuite.study.server.service.loadflow.LoadFlowService;
Expand Down Expand Up @@ -110,13 +109,13 @@ void testSetLoadflowParametersReturnsNoContent() throws Exception {
@Test
void testGetLoadflowParameters() throws Exception {
UUID studyUuid = UUID.randomUUID();
when(loadFlowService.getLoadFlowParametersInfos(studyUuid)).thenReturn(LoadFlowParametersInfos.builder().provider("OpenLoadFlow").build());
when(loadFlowService.getLoadFlowParametersValues(studyUuid)).thenReturn(PARAMETERS);

mockMvc.perform(get(BASE_URL + "/parameters", studyUuid))
.andExpect(status().isOk())
.andExpect(jsonPath("$.provider").value("OpenLoadFlow"));
.andExpect(content().json(PARAMETERS));

verify(loadFlowService).getLoadFlowParametersInfos(studyUuid);
verify(loadFlowService).getLoadFlowParametersValues(studyUuid);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,11 +254,10 @@ void setup() throws Exception {
LIMIT_VIOLATIONS_JSON = objectMapper.writeValueAsString(limitViolations);
COMPUTING_STATUS_JSON = objectMapper.writeValueAsString(List.of("CONVERGED", "FAILED"));

LoadFlowParametersInfos loadFlowParametersInfos = LoadFlowParametersInfos.builder()
.provider(PROVIDER)
.commonParameters(LoadFlowParameters.load())
.specificParametersPerProvider(Map.of())
.build();
Map<String, Object> loadFlowParametersInfos = Map.of(
"provider", PROVIDER,
"commonParameters", LoadFlowParameters.load(),
"specificParametersPerProvider", Map.of());
LOADFLOW_DEFAULT_PARAMETERS_JSON = objectMapper.writeValueAsString(loadFlowParametersInfos);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
package org.gridsuite.study.server.service.loadflow;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.powsybl.loadflow.LoadFlowParameters;
import com.powsybl.loadflow.json.LoadFlowParametersJsonModule;
import org.gridsuite.study.server.RemoteServicesProperties;
import org.gridsuite.study.server.dto.LoadFlowParametersInfos;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
Expand All @@ -19,6 +20,7 @@
import org.springframework.http.MediaType;
import org.springframework.web.client.RestTemplate;

import java.util.Map;
import java.util.UUID;

import static org.assertj.core.api.Assertions.assertThat;
Expand All @@ -36,12 +38,14 @@ class LoadFlowRestServiceTest {
@Mock
private RestTemplate restTemplate;

private final ObjectMapper objectMapper = new ObjectMapper().registerModule(new LoadFlowParametersJsonModule());

private LoadFlowRestService loadFlowRestService;

@BeforeEach
void setUp() {
when(remoteServicesProperties.getServiceUri("loadflow-server")).thenReturn(BASE_URI);
loadFlowRestService = new LoadFlowRestService(remoteServicesProperties, new ObjectMapper(), restTemplate);
loadFlowRestService = new LoadFlowRestService(remoteServicesProperties, objectMapper, restTemplate);
}

@Test
Expand Down Expand Up @@ -71,12 +75,25 @@ void testGetDefaultLimitReductions() {
@Test
void testGetParameters() {
UUID parameterUuid = UUID.randomUUID();
LoadFlowParametersInfos parameters = new LoadFlowParametersInfos();
when(restTemplate.getForObject(BASE_URI + "/" + LOADFLOW_API_VERSION + "/parameters/" + parameterUuid, LoadFlowParametersInfos.class)).thenReturn(parameters);
String parameters = "{\"provider\":\"OpenLoadFlow\"}";
when(restTemplate.getForObject(BASE_URI + "/" + LOADFLOW_API_VERSION + "/parameters/" + parameterUuid, String.class)).thenReturn(parameters);

assertThat(loadFlowRestService.getParameters(parameterUuid)).isEqualTo(parameters);
}

@Test
void testGetCommonParameters() throws Exception {
UUID parameterUuid = UUID.randomUUID();
LoadFlowParameters commonParameters = LoadFlowParameters.load();
String parameters = objectMapper.writeValueAsString(Map.of(
"provider", "OpenLoadFlow",
"commonParameters", commonParameters));
when(restTemplate.getForObject(BASE_URI + "/" + LOADFLOW_API_VERSION + "/parameters/" + parameterUuid, String.class)).thenReturn(parameters);

assertThat(objectMapper.writeValueAsString(loadFlowRestService.getCommonParameters(parameterUuid)))
.isEqualTo(objectMapper.writeValueAsString(commonParameters));
}

@Test
void testUpdateParameters() {
UUID parameterUuid = UUID.randomUUID();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
*/
package org.gridsuite.study.server.service.loadflow;

import org.gridsuite.study.server.dto.LoadFlowParametersInfos;
import org.gridsuite.study.server.notification.NotificationService;
import org.gridsuite.study.server.repository.StudyRepository;
import org.gridsuite.study.server.service.NetworkModificationTreeService;
Expand Down Expand Up @@ -79,10 +78,9 @@ void testGetDefaultLimitReductions() {

@Test
void testGetLoadFlowParameters() {
LoadFlowParametersInfos parameters = new LoadFlowParametersInfos();
when(loadFlowRestService.getParameters(PARAMETERS_UUID)).thenReturn(parameters);
when(loadFlowRestService.getParameters(PARAMETERS_UUID)).thenReturn(PARAMETERS);

assertThat(loadFlowService.getLoadFlowParameters(PARAMETERS_UUID)).isEqualTo(parameters);
assertThat(loadFlowService.getLoadFlowCommonParameters(PARAMETERS_UUID)).isEqualTo(PARAMETERS);
}

@Test
Expand Down
Loading