diff --git a/src/main/java/org/gridsuite/study/server/dto/DeleteNodeInfos.java b/src/main/java/org/gridsuite/study/server/dto/DeleteNodeInfos.java index d9a46ca7f..5d047db9a 100644 --- a/src/main/java/org/gridsuite/study/server/dto/DeleteNodeInfos.java +++ b/src/main/java/org/gridsuite/study/server/dto/DeleteNodeInfos.java @@ -19,37 +19,13 @@ @NoArgsConstructor @Getter @Setter -public class DeleteNodeInfos { +public class DeleteNodeInfos extends NodeInfos { + private List removedNodeUuids = new ArrayList<>(); private List modificationGroupUuids = new ArrayList<>(); - - private List reportUuids = new ArrayList<>(); - private Map> variantIds = new HashMap<>(); - private List loadFlowResultUuids = new ArrayList<>(); - - private List securityAnalysisResultUuids = new ArrayList<>(); - - private List sensitivityAnalysisResultUuids = new ArrayList<>(); - - private List shortCircuitAnalysisResultUuids = new ArrayList<>(); - - private List oneBusShortCircuitAnalysisResultUuids = new ArrayList<>(); - - private List voltageInitResultUuids = new ArrayList<>(); - - private List dynamicSimulationResultUuids = new ArrayList<>(); - - private List dynamicSecurityAnalysisResultUuids = new ArrayList<>(); - - private List dynamicMarginCalculationResultUuids = new ArrayList<>(); - - private List stateEstimationResultUuids = new ArrayList<>(); - - private List pccMinResultUuids = new ArrayList<>(); - public void addRemovedNodeUuid(UUID removedNodeUuid) { removedNodeUuids.add(removedNodeUuid); } @@ -58,56 +34,7 @@ public void addModificationGroupUuid(UUID modificationGroupUuid) { modificationGroupUuids.add(modificationGroupUuid); } - public void addReportUuid(UUID reportUuid) { - reportUuids.add(reportUuid); - } - public void addVariantId(UUID networkUuid, String variantId) { variantIds.getOrDefault(networkUuid, new ArrayList<>()).add(variantId); } - - public void addLoadFlowResultUuid(UUID loadFlowResultUuid) { - loadFlowResultUuids.add(loadFlowResultUuid); - } - - public void addSecurityAnalysisResultUuid(UUID securityAnalysisResultUuid) { - securityAnalysisResultUuids.add(securityAnalysisResultUuid); - } - - public void addDynamicSimulationResultUuid(UUID dynamicSimulationResultUuid) { - dynamicSimulationResultUuids.add(dynamicSimulationResultUuid); - } - - public void addDynamicSecurityAnalysisResultUuid(UUID dynamicSecurityAnalysisResultUuid) { - dynamicSecurityAnalysisResultUuids.add(dynamicSecurityAnalysisResultUuid); - } - - public void addDynamicMarginCalculationResultUuid(UUID dynamicMarginCalculationResultUuid) { - dynamicMarginCalculationResultUuids.add(dynamicMarginCalculationResultUuid); - } - - public void addSensitivityAnalysisResultUuid(UUID sensitivityAnalysisResultUuid) { - sensitivityAnalysisResultUuids.add(sensitivityAnalysisResultUuid); - } - - public void addShortCircuitAnalysisResultUuid(UUID shortCircuitAnalysisResultUuid) { - shortCircuitAnalysisResultUuids.add(shortCircuitAnalysisResultUuid); - } - - public void addOneBusShortCircuitAnalysisResultUuid(UUID oneBusShortCircuitAnalysisResultUuid) { - oneBusShortCircuitAnalysisResultUuids.add(oneBusShortCircuitAnalysisResultUuid); - } - - public void addVoltageInitResultUuid(UUID voltageInitResultUuid) { - voltageInitResultUuids.add(voltageInitResultUuid); - } - - public void addStateEstimationResultUuid(UUID stateEstimationResultUuid) { - stateEstimationResultUuids.add(stateEstimationResultUuid); - } - - public void addPccMinResultUuid(UUID pccMinResultUuid) { - pccMinResultUuids.add(pccMinResultUuid); - } - } diff --git a/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeInfos.java b/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeInfos.java index ae3c24f60..288912f85 100644 --- a/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeInfos.java +++ b/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeInfos.java @@ -19,29 +19,15 @@ * @author Nicolas Noir */ @NoArgsConstructor -public class InvalidateNodeInfos { +public class InvalidateNodeInfos extends NodeInfos { @Getter @Setter private UUID networkUuid; private Set nodeUuids = new HashSet<>(); private Set groupUuids = new HashSet<>(); - - private Set reportUuids = new HashSet<>(); private Set variantIds = new HashSet<>(); - private Set loadFlowResultUuids = new HashSet<>(); - private Set securityAnalysisResultUuids = new HashSet<>(); - private Set sensitivityAnalysisResultUuids = new HashSet<>(); - private Set shortCircuitAnalysisResultUuids = new HashSet<>(); - private Set oneBusShortCircuitAnalysisResultUuids = new HashSet<>(); - private Set voltageInitResultUuids = new HashSet<>(); - private Set stateEstimationResultUuids = new HashSet<>(); - private Set pccMinResultUuids = new HashSet<>(); - private Set dynamicSimulationResultUuids = new HashSet<>(); - private Set dynamicSecurityAnalysisResultUuids = new HashSet<>(); - private Set dynamicMarginCalculationResultUuids = new HashSet<>(); - public List getNodeUuids() { return nodeUuids.stream().toList(); } @@ -50,110 +36,14 @@ public List getGroupUuids() { return groupUuids.stream().toList(); } - public List getReportUuids() { - return reportUuids.stream().toList(); - } - public List getVariantIds() { return variantIds.stream().toList(); } - public List getLoadFlowResultUuids() { - return loadFlowResultUuids.stream().toList(); - } - - public List getSecurityAnalysisResultUuids() { - return securityAnalysisResultUuids.stream().toList(); - } - - public List getSensitivityAnalysisResultUuids() { - return sensitivityAnalysisResultUuids.stream().toList(); - } - - public List getShortCircuitAnalysisResultUuids() { - return shortCircuitAnalysisResultUuids.stream().toList(); - } - - public List getOneBusShortCircuitAnalysisResultUuids() { - return oneBusShortCircuitAnalysisResultUuids.stream().toList(); - } - - public List getVoltageInitResultUuids() { - return voltageInitResultUuids.stream().toList(); - } - - public List getStateEstimationResultUuids() { - return stateEstimationResultUuids.stream().toList(); - } - - public List getPccMinResultUuids() { - return pccMinResultUuids.stream().toList(); - } - - public List getDynamicSimulationResultUuids() { - return dynamicSimulationResultUuids.stream().toList(); - } - - public List getDynamicSecurityAnalysisResultUuids() { - return dynamicSecurityAnalysisResultUuids.stream().toList(); - } - - public List getDynamicMarginCalculationResultUuids() { - return dynamicMarginCalculationResultUuids.stream().toList(); - } - - public void addReportUuid(UUID reportUuid) { - reportUuids.add(reportUuid); - } - public void addVariantId(String variantId) { variantIds.add(variantId); } - public void addLoadFlowResultUuid(UUID loadFlowResultUuid) { - loadFlowResultUuids.add(loadFlowResultUuid); - } - - public void addSecurityAnalysisResultUuid(UUID securityAnalysisResultUuid) { - securityAnalysisResultUuids.add(securityAnalysisResultUuid); - } - - public void addSensitivityAnalysisResultUuid(UUID sensitivityAnalysisResultUuid) { - sensitivityAnalysisResultUuids.add(sensitivityAnalysisResultUuid); - } - - public void addShortCircuitAnalysisResultUuid(UUID shortCircuitAnalysisResultUuid) { - shortCircuitAnalysisResultUuids.add(shortCircuitAnalysisResultUuid); - } - - public void addOneBusShortCircuitAnalysisResultUuid(UUID oneBusShortCircuitAnalysisResultUuid) { - oneBusShortCircuitAnalysisResultUuids.add(oneBusShortCircuitAnalysisResultUuid); - } - - public void addVoltageInitResultUuid(UUID voltageInitResultUuid) { - voltageInitResultUuids.add(voltageInitResultUuid); - } - - public void addDynamicSimulationResultUuid(UUID dynamicSimulationResultUuid) { - dynamicSimulationResultUuids.add(dynamicSimulationResultUuid); - } - - public void addDynamicSecurityAnalysisResultUuid(UUID dynamicSecurityAnalysisResultUuid) { - dynamicSecurityAnalysisResultUuids.add(dynamicSecurityAnalysisResultUuid); - } - - public void addDynamicMarginCalculationResultUuid(UUID dynamicMarginCalculationResultUuid) { - dynamicMarginCalculationResultUuids.add(dynamicMarginCalculationResultUuid); - } - - public void addStateEstimationResultUuid(UUID stateEstimationResultUuid) { - stateEstimationResultUuids.add(stateEstimationResultUuid); - } - - public void addPccMinResultUuid(UUID pccMinResultUuid) { - pccMinResultUuids.add(pccMinResultUuid); - } - public void addGroupUuids(List groupUuids) { this.groupUuids.addAll(groupUuids); } diff --git a/src/main/java/org/gridsuite/study/server/dto/NodeInfos.java b/src/main/java/org/gridsuite/study/server/dto/NodeInfos.java new file mode 100644 index 000000000..058a1f319 --- /dev/null +++ b/src/main/java/org/gridsuite/study/server/dto/NodeInfos.java @@ -0,0 +1,132 @@ +/** + * Copyright (c) 2022 RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +package org.gridsuite.study.server.dto; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.*; + +/** + * @author Maissa Souissi + */ + +@NoArgsConstructor +@Getter +@Setter +public class NodeInfos { + protected Set reportUuids = new HashSet<>(); + protected Set loadFlowResultUuids = new HashSet<>(); + protected Set securityAnalysisResultUuids = new HashSet<>(); + protected Set sensitivityAnalysisResultUuids = new HashSet<>(); + protected Set shortCircuitAnalysisResultUuids = new HashSet<>(); + protected Set oneBusShortCircuitAnalysisResultUuids = new HashSet<>(); + protected Set voltageInitResultUuids = new HashSet<>(); + protected Set dynamicSimulationResultUuids = new HashSet<>(); + protected Set dynamicSecurityAnalysisResultUuids = new HashSet<>(); + protected Set dynamicMarginCalculationResultUuids = new HashSet<>(); + protected Set stateEstimationResultUuids = new HashSet<>(); + protected Set pccMinResultUuids = new HashSet<>(); + + public List getReportUuids() { + return reportUuids.stream().toList(); + } + + public List getLoadFlowResultUuids() { + return loadFlowResultUuids.stream().toList(); + } + + public List getSecurityAnalysisResultUuids() { + return securityAnalysisResultUuids.stream().toList(); + } + + public List getSensitivityAnalysisResultUuids() { + return sensitivityAnalysisResultUuids.stream().toList(); + } + + public List getShortCircuitAnalysisResultUuids() { + return shortCircuitAnalysisResultUuids.stream().toList(); + } + + public List getOneBusShortCircuitAnalysisResultUuids() { + return oneBusShortCircuitAnalysisResultUuids.stream().toList(); + } + + public List getVoltageInitResultUuids() { + return voltageInitResultUuids.stream().toList(); + } + + public List getStateEstimationResultUuids() { + return stateEstimationResultUuids.stream().toList(); + } + + public List getPccMinResultUuids() { + return pccMinResultUuids.stream().toList(); + } + + public List getDynamicSimulationResultUuids() { + return dynamicSimulationResultUuids.stream().toList(); + } + + public List getDynamicSecurityAnalysisResultUuids() { + return dynamicSecurityAnalysisResultUuids.stream().toList(); + } + + public List getDynamicMarginCalculationResultUuids() { + return dynamicMarginCalculationResultUuids.stream().toList(); + } + + public void addReportUuid(UUID reportUuid) { + reportUuids.add(reportUuid); + } + + public void addLoadFlowResultUuid(UUID loadFlowResultUuid) { + loadFlowResultUuids.add(loadFlowResultUuid); + } + + public void addSecurityAnalysisResultUuid(UUID securityAnalysisResultUuid) { + securityAnalysisResultUuids.add(securityAnalysisResultUuid); + } + + public void addDynamicSimulationResultUuid(UUID dynamicSimulationResultUuid) { + dynamicSimulationResultUuids.add(dynamicSimulationResultUuid); + } + + public void addDynamicSecurityAnalysisResultUuid(UUID dynamicSecurityAnalysisResultUuid) { + dynamicSecurityAnalysisResultUuids.add(dynamicSecurityAnalysisResultUuid); + } + + public void addDynamicMarginCalculationResultUuid(UUID dynamicMarginCalculationResultUuid) { + dynamicMarginCalculationResultUuids.add(dynamicMarginCalculationResultUuid); + } + + public void addSensitivityAnalysisResultUuid(UUID sensitivityAnalysisResultUuid) { + sensitivityAnalysisResultUuids.add(sensitivityAnalysisResultUuid); + } + + public void addShortCircuitAnalysisResultUuid(UUID shortCircuitAnalysisResultUuid) { + shortCircuitAnalysisResultUuids.add(shortCircuitAnalysisResultUuid); + } + + public void addOneBusShortCircuitAnalysisResultUuid(UUID oneBusShortCircuitAnalysisResultUuid) { + oneBusShortCircuitAnalysisResultUuids.add(oneBusShortCircuitAnalysisResultUuid); + } + + public void addVoltageInitResultUuid(UUID voltageInitResultUuid) { + voltageInitResultUuids.add(voltageInitResultUuid); + } + + public void addStateEstimationResultUuid(UUID stateEstimationResultUuid) { + stateEstimationResultUuids.add(stateEstimationResultUuid); + } + + public void addPccMinResultUuid(UUID pccMinResultUuid) { + pccMinResultUuids.add(pccMinResultUuid); + } + +} diff --git a/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java b/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java index 43d192701..ec8920ba0 100644 --- a/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java +++ b/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java @@ -58,8 +58,8 @@ public class RootNetworkNodeInfoService { private final RootNetworkNodeInfoRepository rootNetworkNodeInfoRepository; private final NetworkModificationNodeInfoRepository networkModificationNodeInfoRepository; - private final StudyServerExecutionService studyServerExecutionService; private final LoadFlowService loadFlowService; + private final ReportService reportService; private final SecurityAnalysisService securityAnalysisService; private final SensitivityAnalysisService sensitivityAnalysisService; private final ShortCircuitService shortCircuitService; @@ -69,11 +69,10 @@ public class RootNetworkNodeInfoService { private final DynamicMarginCalculationService dynamicMarginCalculationService; private final StateEstimationService stateEstimationService; private final PccMinService pccMinService; - private final ReportService reportService; + StudyServerExecutionService studyServerExecutionService; public RootNetworkNodeInfoService(RootNetworkNodeInfoRepository rootNetworkNodeInfoRepository, NetworkModificationNodeInfoRepository networkModificationNodeInfoRepository, - StudyServerExecutionService studyServerExecutionService, LoadFlowService loadFlowService, SecurityAnalysisService securityAnalysisService, SensitivityAnalysisService sensitivityAnalysisService, @@ -87,7 +86,6 @@ public RootNetworkNodeInfoService(RootNetworkNodeInfoRepository rootNetworkNodeI ReportService reportService) { this.rootNetworkNodeInfoRepository = rootNetworkNodeInfoRepository; this.networkModificationNodeInfoRepository = networkModificationNodeInfoRepository; - this.studyServerExecutionService = studyServerExecutionService; this.loadFlowService = loadFlowService; this.securityAnalysisService = securityAnalysisService; this.sensitivityAnalysisService = sensitivityAnalysisService; @@ -581,22 +579,26 @@ public void updateRootNetworkNode(UUID nodeUuid, UUID rootNetworkUuid, RootNetwo } } - public void deleteRootNetworkNodeRemoteInfos(List rootNetworkNodeInfo) { - CompletableFuture.allOf( - studyServerExecutionService.runAsync(() -> reportService.deleteReports(rootNetworkNodeInfo.stream().map(this::getReportUuids).flatMap(Collection::stream).toList())), - studyServerExecutionService.runAsync(() -> loadFlowService.deleteLoadFlowResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getLoadFlowResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> securityAnalysisService.deleteSecurityAnalysisResults(rootNetworkNodeInfo.stream() - .map(RootNetworkNodeInfo::getSecurityAnalysisResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> sensitivityAnalysisService.deleteSensitivityAnalysisResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getSensitivityAnalysisResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getShortCircuitAnalysisResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getOneBusShortCircuitAnalysisResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> voltageInitService.deleteVoltageInitResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getVoltageInitResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> dynamicSimulationService.deleteResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getDynamicSimulationResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> dynamicSecurityAnalysisService.deleteResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getDynamicSecurityAnalysisResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> dynamicMarginCalculationService.deleteResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getDynamicMarginCalculationResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> stateEstimationService.deleteStateEstimationResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getStateEstimationResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> pccMinService.deletePccMinResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getPccMinResultUuid).filter(Objects::nonNull).toList())) - ); + public void deleteRootNetworkNodeRemoteInfos(List entities) { + NodeInfos infos = new NodeInfos(); + + entities.forEach(e -> { + getReportUuids(e).forEach(infos::addReportUuid); + Optional.ofNullable(e.getLoadFlowResultUuid()).ifPresent(infos::addLoadFlowResultUuid); + Optional.ofNullable(e.getSecurityAnalysisResultUuid()).ifPresent(infos::addSecurityAnalysisResultUuid); + Optional.ofNullable(e.getSensitivityAnalysisResultUuid()).ifPresent(infos::addSensitivityAnalysisResultUuid); + Optional.ofNullable(e.getShortCircuitAnalysisResultUuid()).ifPresent(infos::addShortCircuitAnalysisResultUuid); + Optional.ofNullable(e.getOneBusShortCircuitAnalysisResultUuid()).ifPresent(infos::addOneBusShortCircuitAnalysisResultUuid); + Optional.ofNullable(e.getVoltageInitResultUuid()).ifPresent(infos::addVoltageInitResultUuid); + Optional.ofNullable(e.getDynamicSimulationResultUuid()).ifPresent(infos::addDynamicSimulationResultUuid); + Optional.ofNullable(e.getDynamicSecurityAnalysisResultUuid()).ifPresent(infos::addDynamicSecurityAnalysisResultUuid); + Optional.ofNullable(e.getDynamicMarginCalculationResultUuid()).ifPresent(infos::addDynamicMarginCalculationResultUuid); + Optional.ofNullable(e.getStateEstimationResultUuid()).ifPresent(infos::addStateEstimationResultUuid); + Optional.ofNullable(e.getPccMinResultUuid()).ifPresent(infos::addPccMinResultUuid); + + }); + + deleteRemoteNodeInfos(infos); } @Transactional @@ -628,6 +630,23 @@ public void assertComputationNotRunning(UUID nodeUuid, UUID rootNetworkUuid) { pccMinService.assertPccMinNotRunning(getComputationResultUuid(nodeUuid, rootNetworkUuid, PCC_MIN)); } + public CompletableFuture deleteRemoteNodeInfos(NodeInfos infos) { + return CompletableFuture.allOf( + studyServerExecutionService.runAsync(() -> reportService.deleteReports(infos.getReportUuids())), + studyServerExecutionService.runAsync(() -> loadFlowService.deleteLoadFlowResults(infos.getLoadFlowResultUuids())), + studyServerExecutionService.runAsync(() -> securityAnalysisService.deleteSecurityAnalysisResults(infos.getSecurityAnalysisResultUuids())), + studyServerExecutionService.runAsync(() -> sensitivityAnalysisService.deleteSensitivityAnalysisResults(infos.getSensitivityAnalysisResultUuids())), + studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(infos.getShortCircuitAnalysisResultUuids())), + studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(infos.getOneBusShortCircuitAnalysisResultUuids())), + studyServerExecutionService.runAsync(() -> voltageInitService.deleteVoltageInitResults(infos.getVoltageInitResultUuids())), + studyServerExecutionService.runAsync(() -> dynamicSimulationService.deleteResults(infos.getDynamicSimulationResultUuids())), + studyServerExecutionService.runAsync(() -> dynamicSecurityAnalysisService.deleteResults(infos.getDynamicSecurityAnalysisResultUuids())), + studyServerExecutionService.runAsync(() -> dynamicMarginCalculationService.deleteResults(infos.getDynamicMarginCalculationResultUuids())), + studyServerExecutionService.runAsync(() -> stateEstimationService.deleteStateEstimationResults(infos.getStateEstimationResultUuids())), + studyServerExecutionService.runAsync(() -> pccMinService.deletePccMinResults(infos.getPccMinResultUuids())) + ); + } + /*************************** * GET COMPUTATION RESULTS * ***************************/ diff --git a/src/main/java/org/gridsuite/study/server/service/StudyService.java b/src/main/java/org/gridsuite/study/server/service/StudyService.java index a31716c63..7e51e0211 100644 --- a/src/main/java/org/gridsuite/study/server/service/StudyService.java +++ b/src/main/java/org/gridsuite/study/server/service/StudyService.java @@ -168,43 +168,43 @@ public enum ReportType { @Autowired public StudyService( - @Value("${dynamic-simulation.default-provider}") String defaultDynamicSimulationProvider, - StudyRepository studyRepository, - StudyCreationRequestRepository studyCreationRequestRepository, - NetworkService networkStoreService, - NetworkModificationService networkModificationService, - ReportService reportService, - UserAdminService userAdminService, - StudyInfosService studyInfosService, - EquipmentInfosService equipmentInfosService, - NetworkModificationTreeService networkModificationTreeService, - ObjectMapper objectMapper, - StudyServerExecutionService studyServerExecutionService, - NotificationService notificationService, - LoadFlowService loadflowService, - ShortCircuitService shortCircuitService, - SingleLineDiagramService singleLineDiagramService, - NetworkConversionService networkConversionService, - GeoDataService geoDataService, - NetworkMapService networkMapService, - SecurityAnalysisService securityAnalysisService, - ActionsService actionsService, - CaseService caseService, - SensitivityAnalysisService sensitivityAnalysisService, - DynamicSimulationService dynamicSimulationService, - DynamicSecurityAnalysisService dynamicSecurityAnalysisService, - DynamicMarginCalculationService dynamicMarginCalculationService, - VoltageInitService voltageInitService, - DynamicSimulationEventService dynamicSimulationEventService, - StudyConfigService studyConfigService, - NadConfigService nadConfigService, - FilterService filterService, - StateEstimationService stateEstimationService, - PccMinService pccMinService, - @Lazy StudyService studyService, - RootNetworkService rootNetworkService, - RootNetworkNodeInfoService rootNetworkNodeInfoService, - DirectoryService directoryService) { + @Value("${dynamic-simulation.default-provider}") String defaultDynamicSimulationProvider, + StudyRepository studyRepository, + StudyCreationRequestRepository studyCreationRequestRepository, + NetworkService networkStoreService, + NetworkModificationService networkModificationService, + ReportService reportService, + UserAdminService userAdminService, + StudyInfosService studyInfosService, + EquipmentInfosService equipmentInfosService, + NetworkModificationTreeService networkModificationTreeService, + ObjectMapper objectMapper, + StudyServerExecutionService studyServerExecutionService, + NotificationService notificationService, + LoadFlowService loadflowService, + ShortCircuitService shortCircuitService, + SingleLineDiagramService singleLineDiagramService, + NetworkConversionService networkConversionService, + GeoDataService geoDataService, + NetworkMapService networkMapService, + SecurityAnalysisService securityAnalysisService, + ActionsService actionsService, + CaseService caseService, + SensitivityAnalysisService sensitivityAnalysisService, + DynamicSimulationService dynamicSimulationService, + DynamicSecurityAnalysisService dynamicSecurityAnalysisService, + DynamicMarginCalculationService dynamicMarginCalculationService, + VoltageInitService voltageInitService, + DynamicSimulationEventService dynamicSimulationEventService, + StudyConfigService studyConfigService, + NadConfigService nadConfigService, + FilterService filterService, + StateEstimationService stateEstimationService, + PccMinService pccMinService, + @Lazy StudyService studyService, + RootNetworkService rootNetworkService, + RootNetworkNodeInfoService rootNetworkNodeInfoService, + DirectoryService directoryService) { this.defaultDynamicSimulationProvider = defaultDynamicSimulationProvider; this.studyRepository = studyRepository; this.studyCreationRequestRepository = studyCreationRequestRepository; @@ -2350,18 +2350,7 @@ private CompletableFuture deleteInvalidationInfos(InvalidateNodeInfos inva return CompletableFuture.allOf( studyServerExecutionService.runAsync(() -> networkStoreService.deleteVariants(invalidateNodeInfos.getNetworkUuid(), invalidateNodeInfos.getVariantIds())), studyServerExecutionService.runAsync(() -> networkModificationService.deleteIndexedModifications(invalidateNodeInfos.getGroupUuids(), invalidateNodeInfos.getNetworkUuid())), - studyServerExecutionService.runAsync(() -> reportService.deleteReports(invalidateNodeInfos.getReportUuids())), - studyServerExecutionService.runAsync(() -> loadflowService.deleteLoadFlowResults(invalidateNodeInfos.getLoadFlowResultUuids())), - studyServerExecutionService.runAsync(() -> securityAnalysisService.deleteSecurityAnalysisResults(invalidateNodeInfos.getSecurityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> sensitivityAnalysisService.deleteSensitivityAnalysisResults(invalidateNodeInfos.getSensitivityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(invalidateNodeInfos.getShortCircuitAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(invalidateNodeInfos.getOneBusShortCircuitAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> voltageInitService.deleteVoltageInitResults(invalidateNodeInfos.getVoltageInitResultUuids())), - studyServerExecutionService.runAsync(() -> dynamicSimulationService.deleteResults(invalidateNodeInfos.getDynamicSimulationResultUuids())), - studyServerExecutionService.runAsync(() -> dynamicSecurityAnalysisService.deleteResults(invalidateNodeInfos.getDynamicSecurityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> dynamicMarginCalculationService.deleteResults(invalidateNodeInfos.getDynamicMarginCalculationResultUuids())), - studyServerExecutionService.runAsync(() -> stateEstimationService.deleteStateEstimationResults(invalidateNodeInfos.getStateEstimationResultUuids())), - studyServerExecutionService.runAsync(() -> pccMinService.deletePccMinResults(invalidateNodeInfos.getPccMinResultUuids())) + rootNetworkNodeInfoService.deleteRemoteNodeInfos(invalidateNodeInfos) ); } @@ -2371,18 +2360,8 @@ private void deleteNodesInfos(DeleteNodeInfos deleteNodeInfos) { studyServerExecutionService.runAsync(() -> deleteNodeInfos.getVariantIds().forEach(networkStoreService::deleteVariants)), studyServerExecutionService.runAsync(() -> deleteNodeInfos.getModificationGroupUuids().forEach(networkModificationService::deleteModifications)), studyServerExecutionService.runAsync(() -> deleteNodeInfos.getRemovedNodeUuids().forEach(dynamicSimulationEventService::deleteEventsByNodeId)), - studyServerExecutionService.runAsync(() -> reportService.deleteReports(deleteNodeInfos.getReportUuids())), - studyServerExecutionService.runAsync(() -> loadflowService.deleteLoadFlowResults(deleteNodeInfos.getLoadFlowResultUuids())), - studyServerExecutionService.runAsync(() -> securityAnalysisService.deleteSecurityAnalysisResults(deleteNodeInfos.getSecurityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> sensitivityAnalysisService.deleteSensitivityAnalysisResults(deleteNodeInfos.getSensitivityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(deleteNodeInfos.getShortCircuitAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(deleteNodeInfos.getOneBusShortCircuitAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> voltageInitService.deleteVoltageInitResults(deleteNodeInfos.getVoltageInitResultUuids())), - studyServerExecutionService.runAsync(() -> dynamicSimulationService.deleteResults(deleteNodeInfos.getDynamicSimulationResultUuids())), - studyServerExecutionService.runAsync(() -> dynamicSecurityAnalysisService.deleteResults(deleteNodeInfos.getDynamicSecurityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> dynamicMarginCalculationService.deleteResults(deleteNodeInfos.getDynamicMarginCalculationResultUuids())), - studyServerExecutionService.runAsync(() -> stateEstimationService.deleteStateEstimationResults(deleteNodeInfos.getStateEstimationResultUuids())), - studyServerExecutionService.runAsync(() -> pccMinService.deletePccMinResults(deleteNodeInfos.getPccMinResultUuids())) + rootNetworkNodeInfoService.deleteRemoteNodeInfos(deleteNodeInfos) + ); } diff --git a/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkTest.java b/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkTest.java index 243d9bb2e..430a54886 100644 --- a/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkTest.java +++ b/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkTest.java @@ -62,8 +62,7 @@ import static org.gridsuite.study.server.StudyConstants.*; import static org.gridsuite.study.server.utils.TestUtils.createModificationNodeInfo; import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.springframework.http.MediaType.APPLICATION_JSON; @@ -550,7 +549,11 @@ void testDeleteRootNetwork() throws Exception { verify(dynamicSecurityAnalysisService, times(1)).deleteResults(List.of(DYNAMIC_SECURITY_ANALYSIS_RESULT_UUID)); verify(dynamicMarginCalculationService, times(1)).deleteResults(List.of(DYNAMIC_MARGIN_CALCULATION_RESULT_UUID)); // check LOADFLOW_RESULT_UUID2 is also deleted - verify(loadFlowService, times(1)).deleteLoadFlowResults(List.of(LOADFLOW_RESULT_UUID, LOADFLOW_RESULT_UUID2)); + verify(loadFlowService).deleteLoadFlowResults( + argThat(list -> new HashSet<>(list).equals( + Set.of(LOADFLOW_RESULT_UUID, LOADFLOW_RESULT_UUID2) + )) + ); verify(securityAnalysisService, times(1)).deleteSecurityAnalysisResults(List.of(SECURITY_ANALYSIS_RESULT_UUID)); verify(shortCircuitService, times(1)).deleteShortCircuitAnalysisResults(List.of(SHORT_CIRCUIT_ANALYSIS_RESULT_UUID)); verify(shortCircuitService, times(1)).deleteShortCircuitAnalysisResults(List.of(ONE_BUS_SHORT_CIRCUIT_ANALYSIS_RESULT_UUID));