From c72c881e6e5406841d2643a123530d44409f3a91 Mon Sep 17 00:00:00 2001 From: devplant Date: Thu, 25 May 2023 11:13:35 +0300 Subject: [PATCH 1/3] RED-6072 - As Operation I want to see why files are in an ERROR state - update from iqser to knecon --- bamboo-specs/src/main/java/buildjob/PlanSpec.java | 6 ++++-- bamboo-specs/src/main/resources/scripts/build-java.sh | 2 +- bamboo-specs/src/main/resources/scripts/sonar-java.sh | 2 +- search-service-image-v1/pom.xml | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/bamboo-specs/src/main/java/buildjob/PlanSpec.java b/bamboo-specs/src/main/java/buildjob/PlanSpec.java index e24d36a..baa12be 100644 --- a/bamboo-specs/src/main/java/buildjob/PlanSpec.java +++ b/bamboo-specs/src/main/java/buildjob/PlanSpec.java @@ -97,7 +97,7 @@ public class PlanSpec { .enabled(true), new InjectVariablesTask().description("Inject git Tag").path("git.tag").namespace("g").scope(InjectVariablesScope.LOCAL), new VcsTagTask().description("${bamboo.g.gitTag}").tagName("${bamboo.g.gitTag}").defaultRepository()) - .dockerConfiguration(new DockerConfiguration().image("nexus.iqser.com:5001/infra/maven:3.8.4-openjdk-17-slim") + .dockerConfiguration(new DockerConfiguration().image("nexus.knecon.com:5001/infra/maven:3.8.4-openjdk-17-slim") .dockerRunArguments("--net=host") .volume("/etc/maven/settings.xml", "/usr/share/maven/conf/settings.xml") .volume("/var/run/docker.sock", "/var/run/docker.sock")))) @@ -117,7 +117,9 @@ public class PlanSpec { .inlineBody("#!/bin/bash\n" + "set -e\n" + "rm -rf ./*"), new VcsCheckoutTask().description("Checkout Default Repository").cleanCheckout(true).checkoutItems(new CheckoutItem().defaultRepository()), new ScriptTask().description("Sonar").location(Location.FILE).fileFromPath("bamboo-specs/src/main/resources/scripts/sonar-java.sh").argument(SERVICE_NAME)) - .dockerConfiguration(new DockerConfiguration().image("nexus.iqser.com:5001/infra/maven:3.8.4-openjdk-17-slim") + .dockerConfiguration(new DockerConfiguration().image("nexus.knecon" + + "" + + ".com:5001/infra/maven:3.8.4-openjdk-17-slim") .dockerRunArguments("--net=host") .volume("/etc/maven/settings.xml", "/usr/share/maven/conf/settings.xml") .volume("/var/run/docker.sock", "/var/run/docker.sock")))) diff --git a/bamboo-specs/src/main/resources/scripts/build-java.sh b/bamboo-specs/src/main/resources/scripts/build-java.sh index 1eda5f1..d480acb 100755 --- a/bamboo-specs/src/main/resources/scripts/build-java.sh +++ b/bamboo-specs/src/main/resources/scripts/build-java.sh @@ -49,7 +49,7 @@ mvn -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ -Dmaven.wagon.http.ssl.insecure=true \ -Dmaven.wagon.http.ssl.allowall=true \ -Dmaven.wagon.http.ssl.ignore.validity.dates=true \ - -DaltDeploymentRepository=iqser_release::default::https://nexus.iqser.com/repository/red-platform-releases + -DaltDeploymentRepository=iqser_release::default::https://nexus.knecon.com/repository/red-platform-releases mvn --no-transfer-progress \ -f ${bamboo_build_working_directory}/$SERVICE_NAME-image-v1/pom.xml \ diff --git a/bamboo-specs/src/main/resources/scripts/sonar-java.sh b/bamboo-specs/src/main/resources/scripts/sonar-java.sh index b7ade4d..6d31230 100755 --- a/bamboo-specs/src/main/resources/scripts/sonar-java.sh +++ b/bamboo-specs/src/main/resources/scripts/sonar-java.sh @@ -21,7 +21,7 @@ then -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ sonar:sonar \ -Dsonar.projectKey=RED_$SERVICE_NAME \ - -Dsonar.host.url=https://sonarqube.iqser.com \ + -Dsonar.host.url=https://sonarqube.knecon.com \ -Dsonar.login=${bamboo_sonarqube_api_token_secret} \ -Dsonar.branch.name=${bamboo_planRepository_1_branch} \ -Dsonar.dependencyCheck.jsonReportPath=target/dependency-check-report.json \ diff --git a/search-service-image-v1/pom.xml b/search-service-image-v1/pom.xml index c043916..a94c137 100644 --- a/search-service-image-v1/pom.xml +++ b/search-service-image-v1/pom.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - com.iqser.red + com.knecon.fforesight platform-docker-dependency - 1.2.0 + 0.1.0 4.0.0 From 6b58e8b8946da9f25540f904f45841a1bf0d08bb Mon Sep 17 00:00:00 2001 From: devplant Date: Thu, 25 May 2023 11:29:04 +0300 Subject: [PATCH 2/3] RED-6072 - As Operation I want to see why files are in an ERROR state - update the indexing failed with error information - in case of exception the reason is caught and added tot the message received from the queue --- .../search-service-server-v1/pom.xml | 2 +- .../server/queue/IndexingMessageReceiver.java | 54 ++++++++++++------- .../server/queue/MessagingConfiguration.java | 2 + 3 files changed, 39 insertions(+), 19 deletions(-) diff --git a/search-service-v1/search-service-server-v1/pom.xml b/search-service-v1/search-service-server-v1/pom.xml index 849eec0..0894b1e 100644 --- a/search-service-v1/search-service-server-v1/pom.xml +++ b/search-service-v1/search-service-server-v1/pom.xml @@ -12,7 +12,7 @@ search-service-server-v1 - 2.0.12 + 2.59.0 diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java index ca40d81..6256678 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java @@ -4,7 +4,9 @@ import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguratio import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.DELETE_FROM_INDEX_QUEUE; import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.INDEXING_DQL; import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.INDEXING_QUEUE; +import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.X_ERROR_INFO_HEADER; +import java.nio.charset.StandardCharsets; import java.util.List; import org.springframework.amqp.AmqpRejectAndDontRequeueException; @@ -17,6 +19,7 @@ import org.springframework.stereotype.Service; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileErrorInfo; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel; import com.iqser.red.service.search.v1.model.IndexMessage; import com.iqser.red.service.search.v1.model.IndexMessageType; @@ -70,7 +73,13 @@ public class IndexingMessageReceiver { indexRequest.getFileId())); } - receiveIndexingRequest(indexRequest); + try { + receiveIndexingRequest(indexRequest); + } catch (Exception e) { + log.warn("An exception occurred in processing the indexing request stage: ", e); + message.getMessageProperties().getHeaders().put(X_ERROR_INFO_HEADER, e.getMessage()); + throw e; + } } @@ -102,11 +111,7 @@ public class IndexingMessageReceiver { case DROP: indexDeleteService.recreateIndex(); addAllDocumentsToIndexQueue(); - try { - indexInformationService.updateIndexInformation(); - } catch (Exception e) { - log.error("Could not update index information", e); - } + indexInformationService.updateIndexInformation(); break; default: @@ -118,33 +123,46 @@ public class IndexingMessageReceiver { @RabbitHandler @RabbitListener(queues = INDEXING_DQL) - public void receiveIndexingRequestDQL(String in) throws JsonProcessingException { + public void receiveIndexingRequestDQL(Message in) throws JsonProcessingException { + + var indexRequest = objectMapper.readValue(new String(in.getBody(), StandardCharsets.UTF_8), IndexMessage.class); + String errorLog = "Failed to process indexing request:"; + log.info(errorLog + ": {}", indexRequest); + String errorMessage = errorLog + in.getMessageProperties().getHeader(X_ERROR_INFO_HEADER); + fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), indexRequest.getFileId(), new FileErrorInfo(errorMessage, INDEXING_DQL, "search-service")); - var indexRequest = objectMapper.readValue(in, IndexMessage.class); - fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), indexRequest.getFileId()); - log.info("Failed to process indexing request: {}", indexRequest); } @RabbitHandler @RabbitListener(queues = DELETE_FROM_INDEX_QUEUE) - public void receiveDeleteDocumentRequest(String in) throws JsonProcessingException { + public void receiveDeleteDocumentRequest(Message in) throws JsonProcessingException { - var indexRequest = objectMapper.readValue(in, IndexMessage.class); + var indexRequest = objectMapper.readValue(new String(in.getBody(), StandardCharsets.UTF_8), IndexMessage.class); log.info("Processing delete document request: {}", indexRequest); - documentDeleteService.deleteDocument(indexRequest.getFileId()); - log.info("Successfully deleted document with dossierId {} and fileId {}", indexRequest.getDossierId(), indexRequest.getFileId()); + try { + documentDeleteService.deleteDocument(indexRequest.getFileId()); + log.info("Successfully deleted document with dossierId {} and fileId {}", indexRequest.getDossierId(), indexRequest.getFileId()); + } catch (Exception e) { + log.warn("An exception occurred in processing delete document stage: ", e.getMessage()); + in.getMessageProperties().getHeaders().put(X_ERROR_INFO_HEADER, e.getMessage()); + throw e; + } } @RabbitHandler @RabbitListener(queues = DELETE_FROM_INDEX_DLQ) - public void receiveDeleteDocumentRequestDLQ(String in) throws JsonProcessingException { + public void receiveDeleteDocumentRequestDLQ(Message in) throws JsonProcessingException { + + var indexRequest = objectMapper.readValue(new String(in.getBody(), StandardCharsets.UTF_8), IndexMessage.class); + String errorLog = "Failed to process delete from index request "; + log.info(errorLog + ": {}", indexRequest); + String errorMessage = errorLog + in.getMessageProperties().getHeader(X_ERROR_INFO_HEADER); + + fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), indexRequest.getFileId(), new FileErrorInfo(errorMessage, INDEXING_DQL, "search-service")); - var indexRequest = objectMapper.readValue(in, IndexMessage.class); - fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), indexRequest.getFileId()); - log.info("Failed to process delete from index request: {}", indexRequest); } diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/MessagingConfiguration.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/MessagingConfiguration.java index 201571a..0d9d8d7 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/MessagingConfiguration.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/MessagingConfiguration.java @@ -17,6 +17,8 @@ public class MessagingConfiguration { public static final String DELETE_FROM_INDEX_QUEUE = "deleteFromIndexQueue"; public static final String DELETE_FROM_INDEX_DLQ = "deleteFromIndexDLQ"; + public static final String X_ERROR_INFO_HEADER = "x-error-message"; + @Bean public Queue indexingQueue() { From eba029928e38ccd1d9dbd6eed4879ed39b7ab999 Mon Sep 17 00:00:00 2001 From: devplant Date: Thu, 25 May 2023 15:19:59 +0300 Subject: [PATCH 3/3] RED-6072 - As Operation I want to see why files are in an ERROR state - reformat in one line --- bamboo-specs/src/main/java/buildjob/PlanSpec.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/bamboo-specs/src/main/java/buildjob/PlanSpec.java b/bamboo-specs/src/main/java/buildjob/PlanSpec.java index baa12be..a36c7ba 100644 --- a/bamboo-specs/src/main/java/buildjob/PlanSpec.java +++ b/bamboo-specs/src/main/java/buildjob/PlanSpec.java @@ -117,9 +117,7 @@ public class PlanSpec { .inlineBody("#!/bin/bash\n" + "set -e\n" + "rm -rf ./*"), new VcsCheckoutTask().description("Checkout Default Repository").cleanCheckout(true).checkoutItems(new CheckoutItem().defaultRepository()), new ScriptTask().description("Sonar").location(Location.FILE).fileFromPath("bamboo-specs/src/main/resources/scripts/sonar-java.sh").argument(SERVICE_NAME)) - .dockerConfiguration(new DockerConfiguration().image("nexus.knecon" + - "" + - ".com:5001/infra/maven:3.8.4-openjdk-17-slim") + .dockerConfiguration(new DockerConfiguration().image("nexus.knecon.com:5001/infra/maven:3.8.4-openjdk-17-slim") .dockerRunArguments("--net=host") .volume("/etc/maven/settings.xml", "/usr/share/maven/conf/settings.xml") .volume("/var/run/docker.sock", "/var/run/docker.sock"))))