Skip to content

Commit 5ee7206

Browse files
authored
[Dynamic Security Analysis] Expose dynamic security analysis server (#129)
Signed-off-by: Thang PHAM <[email protected]>
1 parent fb250a1 commit 5ee7206

File tree

6 files changed

+49
-1
lines changed

6 files changed

+49
-1
lines changed

src/main/java/org/gridsuite/gateway/GatewayConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public RouteLocator myRoutes(RouteLocatorBuilder builder, ApplicationContext con
5050
.route(p -> context.getBean(LoadFlowServer.class).getRoute(p))
5151
.route(p -> context.getBean(SecurityAnalysisServer.class).getRoute(p))
5252
.route(p -> context.getBean(DynamicSimulationServer.class).getRoute(p))
53+
.route(p -> context.getBean(DynamicSecurityAnalysisServer.class).getRoute(p))
5354
.route(p -> context.getBean(VoltageInitServer.class).getRoute(p))
5455
.route(p -> context.getBean(ShortCircuitServer.class).getRoute(p))
5556
.route(p -> context.getBean(StateEstimationOrchestratorServer.class).getRoute(p))

src/main/java/org/gridsuite/gateway/ServiceURIsConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ public class ServiceURIsConfig {
9696
@Value("${gridsuite.services.dynamic-simulation-server.base-uri:http://dynamic-simulation-server/}")
9797
String dynamicSimulationServerBaseUri;
9898

99+
@Value("${gridsuite.services.dynamic-security-analysis-server.base-uri:http://dynamic-security-analysis-server/}")
100+
String dynamicSecurityAnalysisServerBaseUri;
101+
99102
@Value("${gridsuite.services.case-import-server.base-uri:http://case-import-server/}")
100103
String caseImportServerBaseUri;
101104

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Copyright (c) 2025, RTE (http://www.rte-france.com)
3+
* This Source Code Form is subject to the terms of the Mozilla Public
4+
* License, v. 2.0. If a copy of the MPL was not distributed with this
5+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
6+
*/
7+
8+
package org.gridsuite.gateway.endpoints;
9+
10+
import org.gridsuite.gateway.ServiceURIsConfig;
11+
import org.springframework.stereotype.Component;
12+
13+
/**
14+
* @author Thang PHAM <quyet-thang.pham at rte-france.com>
15+
*/
16+
@Component(value = DynamicSecurityAnalysisServer.ENDPOINT_NAME)
17+
public class DynamicSecurityAnalysisServer implements EndPointServer {
18+
19+
public static final String ENDPOINT_NAME = "dynamic-security-analysis";
20+
21+
private final ServiceURIsConfig servicesURIsConfig;
22+
23+
public DynamicSecurityAnalysisServer(ServiceURIsConfig servicesURIsConfig) {
24+
this.servicesURIsConfig = servicesURIsConfig;
25+
}
26+
27+
@Override
28+
public String getEndpointBaseUri() {
29+
return servicesURIsConfig.getDynamicSecurityAnalysisServerBaseUri();
30+
}
31+
32+
@Override
33+
public String getEndpointName() {
34+
return ENDPOINT_NAME;
35+
}
36+
}

src/main/java/org/gridsuite/gateway/endpoints/StudyServer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,6 @@ public String getEndpointName() {
3939
public Set<String> getUncontrolledRootPaths() {
4040
return Set.of("search", "svg-component-libraries", "export-network-formats", "loadflow-default-provider",
4141
"security-analysis-default-provider", "sensitivity-analysis-default-provider", "non-evacuated-energy-default-provider",
42-
"dynamic-simulation-default-provider", "optional-services", "servers");
42+
"dynamic-simulation-default-provider", "dynamic-security-analysis-default-provider", "optional-services", "servers");
4343
}
4444
}

src/main/resources/application-local.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ gridsuite:
5656
base-uri: http://localhost:5023
5757
dynamic-simulation-server:
5858
base-uri: http://localhost:5032
59+
dynamic-security-analysis-server:
60+
base-uri: http://localhost:5040
5961
case-import-server:
6062
base-uri: http://localhost:5039
6163
voltage-init-server:

src/test/java/org/gridsuite/gateway/ElementAccessControlTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ void testWithNoControl() {
130130
stubFor(get(urlEqualTo("/v1/sensitivity-analysis-default-provider")).withHeader("userId", equalTo("user1")).willReturn(aResponse()));
131131
stubFor(get(urlEqualTo("/v1/non-evacuated-energy-default-provider")).withHeader("userId", equalTo("user1")).willReturn(aResponse()));
132132
stubFor(get(urlEqualTo("/v1/dynamic-simulation-default-provider")).withHeader("userId", equalTo("user1")).willReturn(aResponse()));
133+
stubFor(get(urlEqualTo("/v1/dynamic-security-analysis-default-provider")).withHeader("userId", equalTo("user1")).willReturn(aResponse()));
133134
webClient
134135
.get().uri("study/v1/search")
135136
.header(HttpHeaders.AUTHORIZATION, "Bearer " + tokenUser1)
@@ -170,6 +171,11 @@ void testWithNoControl() {
170171
.header(HttpHeaders.AUTHORIZATION, "Bearer " + tokenUser1)
171172
.exchange()
172173
.expectStatus().isOk();
174+
webClient
175+
.get().uri("study/v1/dynamic-security-analysis-default-provider")
176+
.header(HttpHeaders.AUTHORIZATION, "Bearer " + tokenUser1)
177+
.exchange()
178+
.expectStatus().isOk();
173179
}
174180

175181
@Test

0 commit comments

Comments
 (0)