diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/common/transaction/impl/ESRollbackHandler.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/common/transaction/impl/ESRollbackHandler.java | 120 |
1 files changed, 63 insertions, 57 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/common/transaction/impl/ESRollbackHandler.java b/catalog-be/src/main/java/org/openecomp/sdc/common/transaction/impl/ESRollbackHandler.java index b9fb0d31b7..e17819fcb0 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/common/transaction/impl/ESRollbackHandler.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/common/transaction/impl/ESRollbackHandler.java @@ -20,73 +20,79 @@ package org.openecomp.sdc.common.transaction.impl; +import fj.data.Either; import org.openecomp.sdc.be.dao.api.ResourceUploadStatus; import org.openecomp.sdc.be.dao.impl.ESCatalogDAO; import org.openecomp.sdc.be.resources.data.ESArtifactData; +import org.openecomp.sdc.be.resources.exception.ResourceDAOException; +import org.openecomp.sdc.be.tosca.CsarUtils; import org.openecomp.sdc.common.transaction.api.RollbackHandler; import org.openecomp.sdc.common.transaction.api.TransactionUtils.DBActionCodeEnum; import org.openecomp.sdc.common.transaction.api.TransactionUtils.DBTypeEnum; import org.openecomp.sdc.common.transaction.api.TransactionUtils.ESActionTypeEnum; import org.openecomp.sdc.common.util.MethodActivationStatusEnum; - -import fj.data.Either; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class ESRollbackHandler extends RollbackHandler { - public ESRollbackHandler(Integer transactionId, String userId, String actionType) { - super(transactionId, userId, actionType); - } - - public DBTypeEnum getDBType() { - return DBTypeEnum.ELASTIC_SEARCH; - } - - protected boolean isRollbackForPersistenceData() { - return true; - } - - public boolean isRollbackResultValid(DBActionCodeEnum rollbackResult) { - return rollbackResult == DBActionCodeEnum.SUCCESS; - } - - public Either<ESAction, MethodActivationStatusEnum> buildEsRollbackAction(ESCatalogDAO esCatalogDao, ESArtifactData artifactData, ESActionTypeEnum esActiontype) { - Either<ESAction, MethodActivationStatusEnum> result; - - try { - ESAction esRollbackAction = null; - Either<ESArtifactData, ResourceUploadStatus> either = esCatalogDao.getArtifact(artifactData.getId()); - - switch (esActiontype) { - case ADD_ARTIFACT: - - if (either.isRight() && either.right().value() == ResourceUploadStatus.NOT_EXIST) { - esRollbackAction = new ESAction(esCatalogDao, artifactData, ESActionTypeEnum.REMOVE_ARTIFACT); - } - break; - case REMOVE_ARTIFACT: - if (either.isLeft()) { - esRollbackAction = new ESAction(esCatalogDao, artifactData, ESActionTypeEnum.ADD_ARTIFACT); - } - break; - case UPDATE_ARTIFACT: - - if (either.isLeft()) { - ESArtifactData originalArtifactData = either.left().value(); - esRollbackAction = new ESAction(esCatalogDao, originalArtifactData, ESActionTypeEnum.UPDATE_ARTIFACT); - } - break; - - } - if (esRollbackAction != null) { - result = Either.left(esRollbackAction); - } else { - result = Either.right(MethodActivationStatusEnum.FAILED); - } - } catch (Exception e) { - result = Either.right(MethodActivationStatusEnum.FAILED); - } - - return result; - } + private static final Logger log = LoggerFactory.getLogger(CsarUtils.class); + + public ESRollbackHandler(Integer transactionId, String userId, String actionType) { + super(transactionId, userId, actionType); + } + + public DBTypeEnum getDBType() { + return DBTypeEnum.ELASTIC_SEARCH; + } + + protected boolean isRollbackForPersistenceData() { + return true; + } + + public boolean isRollbackResultValid(DBActionCodeEnum rollbackResult) { + return rollbackResult == DBActionCodeEnum.SUCCESS; + } + + public Either<ESAction, MethodActivationStatusEnum> buildEsRollbackAction(ESCatalogDAO esCatalogDao, ESArtifactData artifactData, ESActionTypeEnum esActiontype) { + Either<ESAction, MethodActivationStatusEnum> result; + + try { + ESAction esRollbackAction = null; + Either<ESArtifactData, ResourceUploadStatus> either = esCatalogDao.getArtifact(artifactData.getId()); + + switch (esActiontype) { + case ADD_ARTIFACT: + + if (either.isRight() && either.right().value() == ResourceUploadStatus.NOT_EXIST) { + esRollbackAction = new ESAction(esCatalogDao, artifactData, ESActionTypeEnum.REMOVE_ARTIFACT); + } + break; + case REMOVE_ARTIFACT: + if (either.isLeft()) { + esRollbackAction = new ESAction(esCatalogDao, artifactData, ESActionTypeEnum.ADD_ARTIFACT); + } + break; + case UPDATE_ARTIFACT: + + if (either.isLeft()) { + ESArtifactData originalArtifactData = either.left().value(); + esRollbackAction = new ESAction(esCatalogDao, originalArtifactData, ESActionTypeEnum.UPDATE_ARTIFACT); + } + break; + + } + if (esRollbackAction != null) { + result = Either.left(esRollbackAction); + } else { + result = Either.right(MethodActivationStatusEnum.FAILED); + } + } catch (Exception e) { + result = Either.right(MethodActivationStatusEnum.FAILED); + log.error("#buildEsRollbackAction - {}, es rollback failed with error: ", result, e); + } + + return result; + } } |