From f4f388266e5d66c16ad944dd86027a16fbb25501 Mon Sep 17 00:00:00 2001 From: deiflaender Date: Mon, 10 Jan 2022 12:33:22 +0100 Subject: [PATCH] RED-2440: Fixed image-service-v2 integration problems --- .../service/FileManagementStorageService.java | 4 ++++ .../v1/server/service/FileStatusService.java | 14 ++++++++------ .../v1/server/service/ImageMessageReceiver.java | 2 +- .../server/integration/tests/DossierStatsTest.java | 2 +- .../utils/FileSystemBackedStorageService.java | 5 +++++ .../src/test/resources/application.yml | 3 +++ persistence-service-v1/pom.xml | 2 +- 7 files changed, 23 insertions(+), 9 deletions(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileManagementStorageService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileManagementStorageService.java index 503ad9569..23ab1da3d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileManagementStorageService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileManagementStorageService.java @@ -81,6 +81,10 @@ public class FileManagementStorageService { } } + public boolean imageInfoExists(String dossierId, String fileId){ + return storageService.objectExists(StorageIdUtils.getStorageId(dossierId, fileId, FileType.IMAGE_INFO)); + } + public void deleteObject(String dossierId, String fileId, FileType fileType) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java index 58f21d0c8..fc7bd5e39 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java @@ -92,6 +92,7 @@ public class FileStatusService { fileStatusPersistenceService.updateProcessingStatus(fileId, ProcessingStatus.PROCESSING); } + public void setStatusImageAnalyzing(String fileId) { fileStatusPersistenceService.updateProcessingStatus(fileId, ProcessingStatus.IMAGE_ANALYZING); @@ -120,12 +121,7 @@ public class FileStatusService { public void createStatus(String dossierId, String fileId, String uploader, String filename) { fileStatusPersistenceService.createStatus(dossierId, fileId, filename, uploader); - - if(settings.isImageServiceEnabled()) { - addToImageQueue(dossierId, fileId); - } else { - addToAnalysisQueue(dossierId, fileId, 1, Set.of()); - } + addToAnalysisQueue(dossierId, fileId, 1, Set.of()); } @@ -263,6 +259,11 @@ public class FileStatusService { .equals(ProcessingStatus.FULLREPROCESS) && fileStatus.getRulesVersion() == rulesController.getVersion(dossier.getDossierTemplateId()) && (fileStatus.getLastFileAttributeChange() == null || fileStatus.getLastProcessed() .isAfter(fileStatus.getLastFileAttributeChange())); + if (!reanalyse && settings.isImageServiceEnabled() && !fileManagementStorageService.imageInfoExists(dossierId, fileId)) { + addToImageQueue(dossierId, fileId); + return; + } + var analyseRequest = AnalyzeRequest.builder() .messageType(reanalyse ? MessageType.REANALYSE : MessageType.FULL_ANALYSE) .dossierId(dossierId) @@ -342,6 +343,7 @@ public class FileStatusService { // remove everything related to redaction fileManagementStorageService.deleteObject(dossierId, fileId, FileType.REDACTION_LOG); fileManagementStorageService.deleteObject(dossierId, fileId, FileType.SECTION_GRID); + fileManagementStorageService.deleteObject(dossierId, fileId, FileType.IMAGE_INFO); // wipe comments var comments = commentPersistenceService.findCommentsByFileID(fileId, false); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ImageMessageReceiver.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ImageMessageReceiver.java index ea6063ba3..3476eb16b 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ImageMessageReceiver.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ImageMessageReceiver.java @@ -39,7 +39,7 @@ public class ImageMessageReceiver { String fileId = (String) imageResponse.get("fileId"); fileManagementStorageService.storeObject(dossierId, fileId, FileType.IMAGE_INFO, in); - fileStatusService.addToAnalysisQueue(dossierId, fileId, 1, Set.of()); + fileStatusService.setStatusFullReprocess(dossierId, fileId, 1); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java index 8e0cf3278..9ddcb8fd1 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java @@ -94,7 +94,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest { assertThat(dossierStats.isHasSuggestionsFilePresent()).isTrue(); assertThat(dossierStats.isHasUpdatesFilePresent()).isTrue(); assertThat(dossierStats.isHasNoFlagsFilePresent()).isFalse(); - assertThat(dossierStats.getFileCountPerProcessingStatus().get(ProcessingStatus.IMAGE_ANALYZING)).isEqualTo(2); + assertThat(dossierStats.getFileCountPerProcessingStatus().get(ProcessingStatus.PROCESSING)).isEqualTo(2); } @Test diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java index 0f6e9a125..85702d08e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java @@ -65,6 +65,11 @@ public class FileSystemBackedStorageService extends S3StorageService { } } + @Override + public boolean objectExists(String objectId) { + return dataMap.containsKey(objectId); + } + public void clearStorage() { this.dataMap.forEach((k, v) -> { v.delete(); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/resources/application.yml b/persistence-service-v1/persistence-service-server-v1/src/test/resources/application.yml index 1cc050cb8..9354fa06a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/resources/application.yml +++ b/persistence-service-v1/persistence-service-server-v1/src/test/resources/application.yml @@ -50,3 +50,6 @@ storage: server: port: 28080 + +persistence-service: + imageServiceEnabled: false diff --git a/persistence-service-v1/pom.xml b/persistence-service-v1/pom.xml index 1b28b5f71..cfabcc5de 100755 --- a/persistence-service-v1/pom.xml +++ b/persistence-service-v1/pom.xml @@ -36,7 +36,7 @@ com.iqser.red platform-commons-dependency - 1.7.0 + 1.8.0 import pom