Sync Integ to Master
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / common / transaction / impl / ESRollbackHandler.java
index b9fb0d3..e17819f 100644 (file)
 
 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;
+    }
 
 }