[SDC-29] rebase continue work to align source
[sdc.git] / asdctool / src / main / java / org / openecomp / sdc / asdctool / impl / migration / v1707 / ToscaTemplateRegeneration.java
index 824bb83..09e5261 100644 (file)
@@ -1,14 +1,11 @@
 package org.openecomp.sdc.asdctool.impl.migration.v1707;
 
 import java.util.EnumMap;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
-import java.util.stream.Collectors;
 
-import org.apache.commons.collections.MapUtils;
-import org.openecomp.sdc.asdctool.impl.migration.Migration;
+import org.apache.commons.collections.CollectionUtils;
+import org.openecomp.sdc.asdctool.impl.migration.Migration1707Task;
 import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao;
 import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus;
 import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
@@ -34,7 +31,7 @@ import org.springframework.stereotype.Component;
 import fj.data.Either;
 
 @Component("toscaTemplateRegeneration")
-public class ToscaTemplateRegeneration implements Migration {
+public class ToscaTemplateRegeneration implements Migration1707Task {
 
        private static Logger LOGGER = LoggerFactory.getLogger(ToscaTemplateRegeneration.class);
        
@@ -50,13 +47,13 @@ public class ToscaTemplateRegeneration implements Migration {
        @Override
        public boolean migrate() {
                boolean result = true;
-               Either<Map<GraphVertex, org.openecomp.sdc.be.model.Component>, StorageOperationStatus> getAllCertifiedComponentsRes;
+               Either<List<GraphVertex>, StorageOperationStatus> getAllCertifiedComponentsRes;
                try{
                        getAllCertifiedComponentsRes = getAllCertifiedComponents();
                        if(getAllCertifiedComponentsRes.isRight()){
                                result = false;
                        }
-                       if(result && MapUtils.isNotEmpty(getAllCertifiedComponentsRes.left().value())){
+                       if(result && CollectionUtils.isNotEmpty(getAllCertifiedComponentsRes.left().value())){
                                result = regenerateToscaTemplateArtifacts(getAllCertifiedComponentsRes.left().value());
                        }
                } catch(Exception e){
@@ -72,17 +69,21 @@ public class ToscaTemplateRegeneration implements Migration {
                return result;
        }
 
-       private boolean regenerateToscaTemplateArtifacts(Map<GraphVertex, org.openecomp.sdc.be.model.Component> components) {
+       private boolean regenerateToscaTemplateArtifacts(List<GraphVertex> components) {
                boolean result = true;
-               
-               Map<GraphVertex, org.openecomp.sdc.be.model.Component> filteredComponents = components.entrySet()
-                               .stream()
-                               .filter(e -> e.getValue().getToscaArtifacts()!=null && e.getValue().getToscaArtifacts().containsKey(ToscaExportHandler.ASSET_TOSCA_TEMPLATE))
-                               .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue()));
-               
-               for(Entry<GraphVertex, org.openecomp.sdc.be.model.Component> currComponent : filteredComponents.entrySet()){
-                       result = regenerateToscaTemplateArtifact(currComponent);
-                       if(!result){
+               for(GraphVertex componentV : components){
+                       Either<org.openecomp.sdc.be.model.Component, StorageOperationStatus> getComponentsRes = toscaOperationFacade.getToscaElement(componentV);
+                       if (getComponentsRes.isRight()) {
+                               result = false;
+                               break;
+                       }
+                       if(getComponentsRes.left().value().getToscaArtifacts()!=null && getComponentsRes.left().value().getToscaArtifacts().containsKey(ToscaExportHandler.ASSET_TOSCA_TEMPLATE)){
+                               result = regenerateToscaTemplateArtifact(getComponentsRes.left().value(), componentV);
+                       }
+                       if(result){
+                               toscaOperationFacade.commit();
+                       } else {
+                               toscaOperationFacade.rollback();
                                break;
                        }
                }
@@ -90,26 +91,26 @@ public class ToscaTemplateRegeneration implements Migration {
        }
        
        @SuppressWarnings("unchecked")
-       private boolean regenerateToscaTemplateArtifact(Map.Entry<GraphVertex, org.openecomp.sdc.be.model.Component> parent) {
+       private boolean regenerateToscaTemplateArtifact(org.openecomp.sdc.be.model.Component parent, GraphVertex parentV) {
                boolean result = true;
                Either<GraphVertex, TitanOperationStatus> toscaDataVertexRes = null;
                ArtifactDataDefinition data = null;
                LOGGER.debug("tosca artifact generation");
-               Either<ToscaRepresentation, ToscaError> exportComponent = toscaExportUtils.exportComponent(parent.getValue());
+               Either<ToscaRepresentation, ToscaError> exportComponent = toscaExportUtils.exportComponent(parent);
                if (exportComponent.isRight()) {
-                       LOGGER.debug("Failed export tosca yaml for component {} error {}", parent.getValue().getUniqueId(), exportComponent.right().value());
+                       LOGGER.debug("Failed export tosca yaml for component {} error {}", parent.getUniqueId(), exportComponent.right().value());
                        result = false;
                }
                if(result){
-                       LOGGER.debug("Tosca yaml exported for component {} ", parent.getValue().getUniqueId());
-                       toscaDataVertexRes = toscaOperationFacade.getTitanDao().getChildVertex(parent.getKey(), EdgeLabelEnum.TOSCA_ARTIFACTS, JsonParseFlagEnum.ParseJson);
+                       LOGGER.debug("Tosca yaml exported for component {} ", parent.getUniqueId());
+                       toscaDataVertexRes = toscaOperationFacade.getTitanDao().getChildVertex(parentV, EdgeLabelEnum.TOSCA_ARTIFACTS, JsonParseFlagEnum.ParseJson);
                        if(toscaDataVertexRes.isRight()){
-                               LOGGER.debug("Failed to fetch tosca data vertex {} for component {}. Status is {}", EdgeLabelEnum.TOSCA_ARTIFACTS, parent.getValue().getUniqueId(), exportComponent.right().value());
+                               LOGGER.debug("Failed to fetch tosca data vertex {} for component {}. Status is {}", EdgeLabelEnum.TOSCA_ARTIFACTS, parent.getUniqueId(), exportComponent.right().value());
                                result = false;
                        }
                }
                if(result){
-                       data = parent.getValue().getToscaArtifacts().get(ToscaExportHandler.ASSET_TOSCA_TEMPLATE);
+                       data = parent.getToscaArtifacts().get(ToscaExportHandler.ASSET_TOSCA_TEMPLATE);
                        data.setArtifactChecksum(GeneralUtility.calculateMD5ByByteArray(exportComponent.left().value().getMainYaml().getBytes()));
                        
                        ((Map<String, ArtifactDataDefinition>) toscaDataVertexRes.left().value().getJson()).put(ToscaExportHandler.ASSET_TOSCA_TEMPLATE, data);
@@ -129,26 +130,19 @@ public class ToscaTemplateRegeneration implements Migration {
                return result;
        }
 
-       public Either<Map<GraphVertex, org.openecomp.sdc.be.model.Component>, StorageOperationStatus> getAllCertifiedComponents() {
+       public Either<List<GraphVertex>, StorageOperationStatus> getAllCertifiedComponents() {
 
-               Map<GraphVertex, org.openecomp.sdc.be.model.Component> components = new HashMap<>();
                Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
                propertiesToMatch.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
-               Either<List<GraphVertex>, TitanOperationStatus> getVerticiesRes = toscaOperationFacade.getTitanDao().getByCriteria(null, propertiesToMatch,JsonParseFlagEnum.ParseAll);
+               List<GraphVertex> components = null;
+               Either<List<GraphVertex>, TitanOperationStatus> getVerticiesRes = toscaOperationFacade.getTitanDao().getByCriteria(null, propertiesToMatch,JsonParseFlagEnum.ParseMetadata);
 
                if (getVerticiesRes.isRight() && getVerticiesRes.right().value() != TitanOperationStatus.NOT_FOUND) {
                        LOGGER.debug("Failed to fetch all certified components. Status is {}", getVerticiesRes.right().value());
                        return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVerticiesRes.right().value()));
                }
                if(getVerticiesRes.isLeft()){
-                       List<GraphVertex> componentVerticies = getVerticiesRes.left().value();
-                       for (GraphVertex componentV : componentVerticies) {
-                               Either<org.openecomp.sdc.be.model.Component, StorageOperationStatus> getComponentsRes = toscaOperationFacade.getToscaElement(componentV);
-                               if (getComponentsRes.isRight()) {
-                                       return Either.right(getComponentsRes.right().value());
-                               }
-                               components.put(componentV, getComponentsRes.left().value());
-                       }
+                       components = getVerticiesRes.left().value();
                }
                return Either.left(components);
        }