Pull request #349: RED-3818: Added more logging for false_positve migration, disabled scheduling during migration
Merge in RED/persistence-service from RED-3818-8 to master * commit '79a7bfbdd09fef5a670abb46fefe00c6f8a9f607': RED-3818: Added more logging for false_positve migration, disabled scheduling during migration
This commit is contained in:
commit
57ded0829a
@ -2,24 +2,17 @@ package com.iqser.red.service.peristence.v1.server.migration.migrations;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import com.iqser.red.service.peristence.v1.server.controller.DictionaryController;
|
import com.iqser.red.service.peristence.v1.server.controller.DictionaryController;
|
||||||
import com.iqser.red.service.peristence.v1.server.controller.DossierTemplateController;
|
|
||||||
import com.iqser.red.service.peristence.v1.server.migration.Migration;
|
import com.iqser.red.service.peristence.v1.server.migration.Migration;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.BaseDictionaryEntry;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.EntryPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.EntryPersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType;
|
||||||
@ -64,6 +57,7 @@ public class TypeToEntityMigration5 extends Migration {
|
|||||||
var dossierTemplates = dossierTemplateRepository.findAllWhereDeletedIsFalse();
|
var dossierTemplates = dossierTemplateRepository.findAllWhereDeletedIsFalse();
|
||||||
|
|
||||||
dossierTemplates.forEach(dossierTemplate -> {
|
dossierTemplates.forEach(dossierTemplate -> {
|
||||||
|
log.info("Starting false positive migration of dossierTemplate {}", dossierTemplate.getId());
|
||||||
var typeIdsToDelete = new HashSet<String>();
|
var typeIdsToDelete = new HashSet<String>();
|
||||||
var typesOfDossierTemplate = dictionaryPersistenceService.getAllTypes();
|
var typesOfDossierTemplate = dictionaryPersistenceService.getAllTypes();
|
||||||
var falsePositive = typesOfDossierTemplate.stream()
|
var falsePositive = typesOfDossierTemplate.stream()
|
||||||
@ -78,11 +72,14 @@ public class TypeToEntityMigration5 extends Migration {
|
|||||||
.stream()
|
.stream()
|
||||||
.map(f -> f.getValue())
|
.map(f -> f.getValue())
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
|
log.info("False positive migration of dossierTemplate {} has {} false positive entries", dossierTemplate.getId(), falsePositiveEntries.size());
|
||||||
|
|
||||||
typesOfDossierTemplate.stream().filter(t -> !t.getType().equals("false_positive")).forEach(typeEntity -> {
|
typesOfDossierTemplate.stream().filter(t -> !t.getType().equals("false_positive")).forEach(typeEntity -> {
|
||||||
|
log.info("Start processing type {}", typeEntity.getType());
|
||||||
|
|
||||||
if (typeEntity.getType().startsWith("recommendation_")) {
|
if (typeEntity.getType().startsWith("recommendation_")) {
|
||||||
typeIdsToDelete.add(typeEntity.getId());
|
typeIdsToDelete.add(typeEntity.getId());
|
||||||
|
log.info("Finished processing type {}", typeEntity.getType());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,6 +87,7 @@ public class TypeToEntityMigration5 extends Migration {
|
|||||||
.stream()
|
.stream()
|
||||||
.map(f -> f.getValue())
|
.map(f -> f.getValue())
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
|
log.info("type {} has {} entries", typeEntity.getType(), entries);
|
||||||
|
|
||||||
var typeFalsePositives = new HashSet<String>();
|
var typeFalsePositives = new HashSet<String>();
|
||||||
falsePositiveEntries.forEach(falsePositiveValue -> {
|
falsePositiveEntries.forEach(falsePositiveValue -> {
|
||||||
@ -100,14 +98,15 @@ public class TypeToEntityMigration5 extends Migration {
|
|||||||
|
|
||||||
if (!typeFalsePositives.isEmpty()) {
|
if (!typeFalsePositives.isEmpty()) {
|
||||||
dictionaryController.addEntries(typeEntity.getId(), new ArrayList<>(typeFalsePositives), false, true, DictionaryEntryType.FALSE_POSITIVE);
|
dictionaryController.addEntries(typeEntity.getId(), new ArrayList<>(typeFalsePositives), false, true, DictionaryEntryType.FALSE_POSITIVE);
|
||||||
|
log.info("Added {} for type {}", typeFalsePositives.size(), typeEntity.getType());
|
||||||
}
|
}
|
||||||
|
log.info("Finished processing type {}", typeEntity.getType());
|
||||||
});
|
});
|
||||||
|
|
||||||
typeIdsToDelete.forEach(typeIdToDelete -> {
|
typeIdsToDelete.forEach(typeIdToDelete -> {
|
||||||
dictionaryController.deleteType(typeIdToDelete);
|
dictionaryController.deleteType(typeIdToDelete);
|
||||||
});
|
});
|
||||||
|
log.info("Finished false positive migration of dossierTemplate {}", dossierTemplate.getId());
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.iqser.red.service.peristence.v1.server.service.scheduler;
|
|||||||
import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration;
|
import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration;
|
||||||
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
|
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
|
||||||
import com.iqser.red.service.peristence.v1.server.service.ReanalysisRequiredStatusService;
|
import com.iqser.red.service.peristence.v1.server.service.ReanalysisRequiredStatusService;
|
||||||
|
import com.iqser.red.service.peristence.v1.server.settings.FileManagementServiceSettings;
|
||||||
import com.iqser.red.service.peristence.v1.server.utils.FileModelMapper;
|
import com.iqser.red.service.peristence.v1.server.utils.FileModelMapper;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -29,6 +30,7 @@ public class AutomaticAnalysisScheduler {
|
|||||||
private int pageFactor;
|
private int pageFactor;
|
||||||
private final FileStatusService fileStatusService;
|
private final FileStatusService fileStatusService;
|
||||||
private final AmqpAdmin amqpAdmin;
|
private final AmqpAdmin amqpAdmin;
|
||||||
|
private final FileManagementServiceSettings fileManagementServiceSettings;
|
||||||
|
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
@ -42,6 +44,11 @@ public class AutomaticAnalysisScheduler {
|
|||||||
@Scheduled(fixedDelay = 10000, initialDelay = 10000)
|
@Scheduled(fixedDelay = 10000, initialDelay = 10000)
|
||||||
public void checkFilesThatRequireReanalysisAndQueueIfPossible() {
|
public void checkFilesThatRequireReanalysisAndQueueIfPossible() {
|
||||||
|
|
||||||
|
if(fileManagementServiceSettings.isMigrateOnly()){
|
||||||
|
log.info("Skipping scheduling during migration");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var redactionQueueInfo = amqpAdmin.getQueueInfo(MessagingConfiguration.REDACTION_QUEUE);
|
var redactionQueueInfo = amqpAdmin.getQueueInfo(MessagingConfiguration.REDACTION_QUEUE);
|
||||||
if (redactionQueueInfo != null) {
|
if (redactionQueueInfo != null) {
|
||||||
log.info("Checking queue status to see if background analysis can happen. Currently {} holds {} elements and has {} consumers", MessagingConfiguration.REDACTION_QUEUE, redactionQueueInfo
|
log.info("Checking queue status to see if background analysis can happen. Currently {} holds {} elements and has {} consumers", MessagingConfiguration.REDACTION_QUEUE, redactionQueueInfo
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user