From 32159795628720b76a8ed789f632f9fa68b41603 Mon Sep 17 00:00:00 2001 From: MichaelMorris Date: Fri, 3 Jun 2022 16:09:46 +0100 Subject: Retry fetch assettoscatemplate in csar generation Change-Id: I328e174d34b1c8fb688510b498d50130827b9608 Issue-ID: SDC-4032 Signed-off-by: MichaelMorris --- .../src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java | 9 +++++---- .../java/org/openecomp/sdc/be/dao/cassandra/CassandraClient.java | 9 ++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java index 9b0b25b250..81d9e5d077 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java @@ -432,6 +432,7 @@ public class CsarUtils { boolean isInCertificationRequest) throws IOException { ArtifactDefinition artifactDef = component.getToscaArtifacts().get(ToscaExportHandler.ASSET_TOSCA_TEMPLATE); Either toscaRepresentation = fetchToscaRepresentation(component, getFromCS, artifactDef); + // This should not be done but in order to keep the refactoring small enough we stop here. // TODO: Refactor the rest of this function @@ -879,10 +880,10 @@ public class CsarUtils { return Either.right(componentsUtils.getResponseFormat(ActionStatus.TOSCA_SCHEMA_FILES_NOT_FOUND, firstThreeOctets, CONFORMANCE_LEVEL)); } - private Either getFromCassandra(String cassandraId) { - return artifactCassandraDao.getArtifact(cassandraId).right().map(cos -> { - log.debug("Failed to fetch artifact from Cassandra by id {} error {} ", cassandraId, cos); - StorageOperationStatus storageStatus = DaoStatusConverter.convertCassandraStatusToStorageStatus(cos); + private Either getFromCassandra(String cassandraId) { + return artifactCassandraDao.getArtifact(cassandraId).right().map(operationstatus -> { + log.info("Failed to fetch artifact from Cassandra by id {} error {}.", cassandraId, operationstatus); + StorageOperationStatus storageStatus = DaoStatusConverter.convertCassandraStatusToStorageStatus(operationstatus); return componentsUtils.convertFromStorageResponse(storageStatus); }).left().map(DAOArtifactData::getDataAsArray); } diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/CassandraClient.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/CassandraClient.java index 3bd318c7b8..998c8eacd1 100644 --- a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/CassandraClient.java +++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/CassandraClient.java @@ -20,6 +20,7 @@ package org.openecomp.sdc.be.dao.cassandra; import com.datastax.driver.core.Cluster; +import com.datastax.driver.core.ConsistencyLevel; import com.datastax.driver.core.Session; import com.datastax.driver.core.SocketOptions; import com.datastax.driver.core.policies.ConstantReconnectionPolicy; @@ -28,6 +29,7 @@ import com.datastax.driver.core.policies.DefaultRetryPolicy; import com.datastax.driver.core.policies.LoadBalancingPolicy; import com.datastax.driver.core.policies.TokenAwarePolicy; import com.datastax.driver.mapping.Mapper; +import com.datastax.driver.mapping.Mapper.Option; import com.datastax.driver.mapping.MappingManager; import fj.data.Either; import java.util.List; @@ -167,9 +169,14 @@ public class CassandraClient { return Either.right(CassandraOperationStatus.CLUSTER_NOT_CONNECTED); } try { - Mapper mapper = manager.mapper(clazz); + Mapper mapper = manager.mapper(clazz); T result = mapper.get(id); if (result == null) { + logger.info("Failed to get by Id [{}], trying again with consistency level ALL", id); + result = mapper.get(id, Option.consistencyLevel(ConsistencyLevel.ALL)); + } + if (result == null) { + logger.info("Failed to get by Id [{}] with consistency level ALL", id); return Either.right(CassandraOperationStatus.NOT_FOUND); } return Either.left(result); -- cgit 1.2.3-korg