Skip to content

Commit f84ea7c

Browse files
Merge branch 'main' into handle_errors_when_getting_modifications
2 parents e7feedd + 4416841 commit f84ea7c

4 files changed

Lines changed: 31 additions & 53 deletions

File tree

monitor-server/src/main/java/org/gridsuite/monitor/server/mapper/SecurityAnalysisConfigMapper.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
*/
77
package org.gridsuite.monitor.server.mapper;
88

9-
import org.gridsuite.monitor.commons.PersistedProcessConfig;
109
import org.gridsuite.monitor.commons.SecurityAnalysisConfig;
1110
import org.gridsuite.monitor.server.entities.SecurityAnalysisConfigEntity;
1211
import org.mapstruct.Mapper;
@@ -23,8 +22,5 @@ public interface SecurityAnalysisConfigMapper {
2322

2423
SecurityAnalysisConfig toDto(SecurityAnalysisConfigEntity dto);
2524

26-
@Mapping(target = "processConfig", source = ".")
27-
PersistedProcessConfig toPersistedProcessConfigDto(SecurityAnalysisConfigEntity entity);
28-
2925
void updateEntityFromDto(SecurityAnalysisConfig dto, @MappingTarget SecurityAnalysisConfigEntity entity);
3026
}

monitor-server/src/main/java/org/gridsuite/monitor/server/services/MonitorService.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
import com.powsybl.commons.PowsyblException;
1010
import org.gridsuite.monitor.commons.PersistedProcessConfig;
11+
import org.slf4j.Logger;
12+
import org.slf4j.LoggerFactory;
1113
import org.gridsuite.monitor.commons.ProcessExecutionStep;
1214
import org.gridsuite.monitor.commons.ProcessStatus;
1315
import org.gridsuite.monitor.commons.ProcessType;
@@ -33,6 +35,8 @@
3335
@Service
3436
public class MonitorService {
3537

38+
private static final Logger LOGGER = LoggerFactory.getLogger(MonitorService.class);
39+
3640
private final ProcessExecutionRepository executionRepository;
3741
private final NotificationService notificationService;
3842
private final ProcessConfigService processConfigService;
@@ -93,7 +97,7 @@ public Optional<UUID> executeProcess(UUID caseUuid, String userId, UUID processC
9397

9498
@Transactional
9599
public void updateExecutionStatus(UUID executionId, ProcessStatus status, String executionEnvName, Instant startedAt, Instant completedAt) {
96-
executionRepository.findById(executionId).ifPresent(execution -> {
100+
executionRepository.findById(executionId).ifPresentOrElse(execution -> {
97101
execution.setStatus(status);
98102
if (executionEnvName != null) {
99103
execution.setExecutionEnvName(executionEnvName);
@@ -105,7 +109,7 @@ public void updateExecutionStatus(UUID executionId, ProcessStatus status, String
105109
execution.setCompletedAt(completedAt);
106110
}
107111
executionRepository.save(execution);
108-
});
112+
}, () -> LOGGER.warn("Execution {} not found in DB, ignoring status update", executionId));
109113
}
110114

111115
private void updateStep(ProcessExecutionEntity execution, ProcessExecutionStepEntity stepEntity) {
@@ -124,22 +128,22 @@ private void updateStep(ProcessExecutionEntity execution, ProcessExecutionStepEn
124128

125129
@Transactional
126130
public void updateStepStatus(UUID executionId, ProcessExecutionStep processExecutionStep) {
127-
executionRepository.findById(executionId).ifPresent(execution -> {
131+
executionRepository.findById(executionId).ifPresentOrElse(execution -> {
128132
ProcessExecutionStepEntity stepEntity = processExecutionStepMapper.toEntity(processExecutionStep);
129133
updateStep(execution, stepEntity);
130134
executionRepository.save(execution);
131-
});
135+
}, () -> LOGGER.warn("Execution {} not found in DB, ignoring step update", executionId));
132136
}
133137

134138
@Transactional
135139
public void updateStepsStatuses(UUID executionId, List<ProcessExecutionStep> processExecutionSteps) {
136-
executionRepository.findById(executionId).ifPresent(execution -> {
140+
executionRepository.findById(executionId).ifPresentOrElse(execution -> {
137141
processExecutionSteps.forEach(processExecutionStep -> {
138142
ProcessExecutionStepEntity stepEntity = processExecutionStepMapper.toEntity(processExecutionStep);
139143
updateStep(execution, stepEntity);
140144
});
141145
executionRepository.save(execution);
142-
});
146+
}, () -> LOGGER.warn("Execution {} not found in DB, ignoring steps update", executionId));
143147
}
144148

145149
@Transactional(readOnly = true)

monitor-server/src/main/java/org/gridsuite/monitor/server/services/ProcessConfigService.java

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,16 @@
1010
import org.gridsuite.monitor.commons.ProcessConfig;
1111
import org.gridsuite.monitor.commons.ProcessType;
1212
import org.gridsuite.monitor.commons.SecurityAnalysisConfig;
13-
import org.gridsuite.monitor.server.entities.ProcessConfigEntity;
1413
import org.gridsuite.monitor.server.dto.ProcessConfigComparison;
1514
import org.gridsuite.monitor.server.dto.ProcessConfigFieldComparison;
15+
import org.gridsuite.monitor.server.entities.ProcessConfigEntity;
1616
import org.gridsuite.monitor.server.entities.SecurityAnalysisConfigEntity;
1717
import org.gridsuite.monitor.server.mapper.SecurityAnalysisConfigMapper;
1818
import org.gridsuite.monitor.server.repositories.ProcessConfigRepository;
1919
import org.springframework.stereotype.Service;
2020
import org.springframework.transaction.annotation.Transactional;
2121

22-
import java.util.ArrayList;
23-
import java.util.List;
24-
import java.util.Objects;
25-
import java.util.Optional;
26-
import java.util.UUID;
22+
import java.util.*;
2723

2824
/**
2925
* @author Franck Lecuyer <franck.lecuyer at rte-france.com>
@@ -50,10 +46,7 @@ public UUID createProcessConfig(ProcessConfig processConfig) {
5046

5147
@Transactional(readOnly = true)
5248
public Optional<PersistedProcessConfig> getProcessConfig(UUID processConfigUuid) {
53-
return processConfigRepository.findById(processConfigUuid).flatMap(entity -> switch (entity) {
54-
case SecurityAnalysisConfigEntity sae -> Optional.of(securityAnalysisConfigMapper.toPersistedProcessConfigDto(sae));
55-
default -> throw new IllegalArgumentException("Unsupported entity type: " + entity.getProcessType());
56-
});
49+
return processConfigRepository.findById(processConfigUuid).map(this::toPersistedProcessConfig);
5750
}
5851

5952
@Transactional
@@ -84,24 +77,33 @@ public boolean deleteProcessConfig(UUID processConfigUuid) {
8477

8578
@Transactional(readOnly = true)
8679
public List<PersistedProcessConfig> getProcessConfigs(ProcessType processType) {
87-
List<ProcessConfigEntity> processConfigs = processConfigRepository.findAllByProcessType(processType);
88-
return processConfigs.stream().map(entity -> switch (entity) {
89-
case SecurityAnalysisConfigEntity sae -> securityAnalysisConfigMapper.toPersistedProcessConfigDto(sae);
80+
return processConfigRepository.findAllByProcessType(processType).stream()
81+
.map(this::toPersistedProcessConfig)
82+
.toList();
83+
}
84+
85+
private ProcessConfig toProcessConfig(ProcessConfigEntity entity) {
86+
return switch (entity) {
87+
case SecurityAnalysisConfigEntity sae -> securityAnalysisConfigMapper.toDto(sae);
9088
default -> throw new IllegalArgumentException("Unsupported entity type: " + entity.getProcessType());
91-
}).toList();
89+
};
90+
}
91+
92+
private PersistedProcessConfig toPersistedProcessConfig(ProcessConfigEntity entity) {
93+
return new PersistedProcessConfig(entity.getId(), toProcessConfig(entity));
9294
}
9395

9496
@Transactional(readOnly = true)
9597
public Optional<ProcessConfigComparison> compareProcessConfigs(UUID uuid1, UUID uuid2) {
96-
Optional<PersistedProcessConfig> config1 = getProcessConfig(uuid1);
97-
Optional<PersistedProcessConfig> config2 = getProcessConfig(uuid2);
98+
Optional<ProcessConfigEntity> processConfigEntity1 = processConfigRepository.findById(uuid1);
99+
Optional<ProcessConfigEntity> processConfigEntity2 = processConfigRepository.findById(uuid2);
98100

99-
if (config1.isEmpty() || config2.isEmpty()) {
101+
if (processConfigEntity1.isEmpty() || processConfigEntity2.isEmpty()) {
100102
return Optional.empty();
101103
}
102104

103-
ProcessConfig processConfig1 = config1.get().processConfig();
104-
ProcessConfig processConfig2 = config2.get().processConfig();
105+
ProcessConfig processConfig1 = toProcessConfig(processConfigEntity1.get());
106+
ProcessConfig processConfig2 = toProcessConfig(processConfigEntity2.get());
105107

106108
if (processConfig1.processType() != processConfig2.processType()) {
107109
throw new IllegalArgumentException("Cannot compare different process config types: " + processConfig1.processType() + " vs " + processConfig2.processType());

monitor-server/src/test/java/org/gridsuite/monitor/server/mapper/SecurityAnalysisConfigMapperTest.java

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
*/
77
package org.gridsuite.monitor.server.mapper;
88

9-
import org.gridsuite.monitor.commons.PersistedProcessConfig;
109
import org.gridsuite.monitor.commons.SecurityAnalysisConfig;
1110
import org.gridsuite.monitor.server.entities.SecurityAnalysisConfigEntity;
1211
import org.junit.jupiter.api.Test;
@@ -40,27 +39,4 @@ void toEntity() {
4039
assertThat(entity.getModificationUuids()).isEqualTo(dto.modificationUuids());
4140
assertThat(entity.getProcessType()).isEqualTo(dto.processType());
4241
}
43-
44-
@Test
45-
void entityToPersistedConfig() {
46-
SecurityAnalysisConfigEntity entity = new SecurityAnalysisConfigEntity(
47-
UUID.randomUUID(),
48-
UUID.randomUUID()
49-
);
50-
entity.setId(UUID.randomUUID());
51-
entity.setModificationUuids(
52-
List.of(UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID())
53-
);
54-
55-
PersistedProcessConfig persistedProcessConfig = mapper.toPersistedProcessConfigDto(entity);
56-
57-
assertThat(persistedProcessConfig).isNotNull();
58-
assertThat(persistedProcessConfig.id()).isEqualTo(entity.getId());
59-
60-
SecurityAnalysisConfig sac = (SecurityAnalysisConfig) persistedProcessConfig.processConfig();
61-
62-
assertThat(sac.securityAnalysisParametersUuid()).isEqualTo(entity.getSecurityAnalysisParametersUuid());
63-
assertThat(sac.loadflowParametersUuid()).isEqualTo(entity.getLoadflowParametersUuid());
64-
assertThat(sac.modificationUuids()).isEqualTo(entity.getModificationUuids());
65-
}
6642
}

0 commit comments

Comments
 (0)