Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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 @@ -104,10 +104,10 @@ public NetworkModificationResult applyModifications(ModificationApplicationGroup
ApplicationStatus groupApplicationStatus;
if (preloadingStrategy == PreloadingStrategy.ALL_COLLECTIONS_NEEDED_FOR_BUS_VIEW) {
groupApplicationStatus = largeNetworkModificationExecutionService
.supplyAsync(() -> apply(modificationInfosGroup, listener))
.supplyAsync(() -> apply(modificationInfosGroup, listener, false))
.join();
} else {
groupApplicationStatus = apply(modificationInfosGroup, listener);
groupApplicationStatus = apply(modificationInfosGroup, listener, false);
}

return flushModificationApplications(groupApplicationStatus, listener);
Expand Down Expand Up @@ -157,7 +157,7 @@ public NetworkModificationResult applyModifications(List<ModificationApplication
// This method is used when building a variant
private List<ApplicationStatus> apply(List<ModificationApplicationGroup> modificationInfosGroups, NetworkStoreListener listener) {
return modificationInfosGroups.stream()
.map(g -> apply(g, listener))
.map(g -> apply(g, listener, true))
.toList();
}

Expand All @@ -171,7 +171,7 @@ private NetworkModificationResult flushModificationApplications(List<Application
.build();
}

private ApplicationStatus apply(ModificationApplicationGroup modificationGroupInfos, NetworkStoreListener listener) {
private ApplicationStatus apply(ModificationApplicationGroup modificationGroupInfos, NetworkStoreListener listener, boolean isVariantBuild) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe isIncremental ? I don't know I feel like I don't understand easily this isVariantBuild boolean

ReportNode reportNode;
if (modificationGroupInfos.reportInfos().getNodeUuid() != null) {
UUID reporterId = modificationGroupInfos.reportInfos().getNodeUuid();
Expand All @@ -192,7 +192,7 @@ private ApplicationStatus apply(ModificationApplicationGroup modificationGroupIn
.reduce(ApplicationStatus::max)
.orElse(ApplicationStatus.ALL_OK);
if (modificationGroupInfos.reportInfos().getReportUuid() != null) {
reportService.sendReport(modificationGroupInfos.reportInfos().getReportUuid(), reportNode);
reportService.sendReport(modificationGroupInfos.reportInfos().getReportUuid(), reportNode, isVariantBuild);
}
return groupApplicationStatus;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,9 @@ public void setReportServerRest(RestTemplate reportServerRest) {
this.reportServerRest = Objects.requireNonNull(reportServerRest, "reportServerRest can't be null");
}

public void sendReport(UUID reportUuid, ReportNode reportNode) {
public void sendReport(UUID reportUuid, ReportNode reportNode, boolean isVariantBuild) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe one method sendReport and another one sendAndReplaceReport ?

var path = UriComponentsBuilder.fromPath("{reportUuid}")
.queryParam("replace", isVariantBuild)
.buildAndExpand(reportUuid)
.toUriString();
var headers = new HttpHeaders();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
import java.util.UUID;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.anyBoolean;

@Slf4j
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
Expand Down Expand Up @@ -94,7 +95,7 @@ void testVoltageInitDuplicationLogs(final ApplicationStatus resultStatus, final
.extracting(NetworkModificationResult::getApplicationStatus)
.isEqualTo(resultStatus);

Mockito.verify(reportService, Mockito.times(1)).sendReport(Mockito.eq(reportUuid), reporterCaptor.capture());
Mockito.verify(reportService, Mockito.times(1)).sendReport(Mockito.eq(reportUuid), reporterCaptor.capture(), anyBoolean());
final ReportNode result = reporterCaptor.getValue();
log.info("Result = {}", objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(result));
JSONAssert.assertEquals("voltage-init plan logs aggregated",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -985,15 +985,15 @@ void testApplyModificationWithErrors(final MockWebServer server) {
new NetworkInfos(network, TEST_NETWORK_ID, true));
assertNotNull(networkModificationResult);
testEmptyImpactsWithErrors(networkModificationResult);
assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches(String.format("/v1/reports/%s", reportUuid))));
assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches(String.format("/v1/reports/%s\\?replace=false", reportUuid))));

// Incremental mode : No error send with exception
ModificationApplicationContext applicationContext = new ModificationApplicationContext(TEST_NETWORK_ID, variantId, reportUuid, reporterId);
NetworkModificationsResult networkModificationsResult = networkModificationService.createNetworkModification(groupUuid, loadCreationInfos, List.of(applicationContext));
assertEquals(1, networkModificationsResult.modificationResults().size());
assertTrue(networkModificationsResult.modificationResults().get(0).isPresent());
testEmptyImpactsWithErrors(networkModificationResult);
assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches(String.format("/v1/reports/%s", reportUuid))));
assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches(String.format("/v1/reports/%s\\?replace=false", reportUuid))));
testNetworkModificationsCount(groupUuid, 2);

// Save mode only (variant does not exist) : No log and no error send with exception
Expand Down Expand Up @@ -1024,7 +1024,7 @@ void testLastGroupModificationStatus(final MockWebServer server) {
NetworkModificationResult networkModificationResult = networkModificationApplicator.applyModifications(modificationInfosGroups, new NetworkInfos(network, TEST_NETWORK_ID, true));
assertNotNull(networkModificationResult);
testEmptyImpactsWithErrorsLastOK(networkModificationResult);
assertTrue(TestUtils.getRequestsDone(2, server).stream().anyMatch(r -> r.matches(String.format("/v1/reports/%s", reportUuid))));
assertTrue(TestUtils.getRequestsDone(2, server).stream().anyMatch(r -> r.matches(String.format("/v1/reports/%s\\?replace=true", reportUuid))));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ public static String resourceToString(String resource) throws IOException {

public static void assertLogNthMessage(String expectedMessage, String reportKey, ReportService reportService, int rank) {
ArgumentCaptor<ReportNode> reporterCaptor = ArgumentCaptor.forClass(ReportNode.class);
verify(reportService, atLeast(1)).sendReport(any(UUID.class), reporterCaptor.capture());
verify(reportService, atLeast(1)).sendReport(any(UUID.class), reporterCaptor.capture(), anyBoolean());
assertNotNull(reporterCaptor.getValue());
Optional<String> message = getMessageFromReporter(reportKey, reporterCaptor.getValue(), rank);
assertTrue(message.isPresent());
Expand All @@ -143,7 +143,7 @@ public static void assertLogMessage(String expectedMessage, String reportKey, Re

public static void assertLogMessageWithoutRank(String expectedMessage, String reportKey, ReportService reportService) {
ArgumentCaptor<ReportNode> reporterCaptor = ArgumentCaptor.forClass(ReportNode.class);
verify(reportService, atLeast(1)).sendReport(any(UUID.class), reporterCaptor.capture());
verify(reportService, atLeast(1)).sendReport(any(UUID.class), reporterCaptor.capture(), anyBoolean());
assertNotNull(reporterCaptor.getValue());
assertTrue(assertMessageFoundFromReporter(expectedMessage, reportKey, reporterCaptor.getValue()));
}
Expand Down