diff options
Diffstat (limited to 'asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandler.java')
-rw-r--r-- | asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandler.java | 83 |
1 files changed, 43 insertions, 40 deletions
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandler.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandler.java index e7f42c9614..76fcec8186 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandler.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/internal/tool/DeleteComponentHandler.java @@ -29,21 +29,21 @@ */ package org.openecomp.sdc.asdctool.impl.internal.tool; -import com.thinkaurelius.titan.core.TitanVertex; +import org.janusgraph.core.JanusGraphVertex; import fj.data.Either; import org.apache.tinkerpop.gremlin.structure.Direction; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.openecomp.sdc.asdctool.utils.ConsoleWriter; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; -import org.openecomp.sdc.be.model.jsontitan.operations.NodeTypeOperation; -import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaElementOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTypeOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaElementOperation; import org.openecomp.sdc.common.log.wrappers.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -56,7 +56,7 @@ import java.util.Scanner; @Component("deleteComponentHandler") public class DeleteComponentHandler extends CommonInternalTool{ @Autowired - private TitanDao titanDao; + private JanusGraphDao janusGraphDao; @Autowired private NodeTypeOperation nodeTypeOperation; @Autowired @@ -70,23 +70,23 @@ public class DeleteComponentHandler extends CommonInternalTool{ super("delete"); } public void deleteComponent(String id, Scanner scanner) { - TitanOperationStatus status = TitanOperationStatus.OK; - GraphVertex metadataVertex = titanDao.getVertexById(id).either(l -> l, r -> null); + JanusGraphOperationStatus status = JanusGraphOperationStatus.OK; + GraphVertex metadataVertex = janusGraphDao.getVertexById(id).either(l -> l, r -> null); if (metadataVertex != null) { status = handleComponent(scanner, metadataVertex); } else { ConsoleWriter.dataLine("No vertex for id", id); } - if (status == TitanOperationStatus.OK) { - titanDao.commit(); + if (status == JanusGraphOperationStatus.OK) { + janusGraphDao.commit(); } else { - titanDao.rollback(); + janusGraphDao.rollback(); } } - private TitanOperationStatus handleComponent(Scanner scanner, GraphVertex metadataVertex) { + private JanusGraphOperationStatus handleComponent(Scanner scanner, GraphVertex metadataVertex) { Map<GraphPropertyEnum, Object> metadataProperties = metadataVertex.getMetadataProperties(); - TitanOperationStatus status = TitanOperationStatus.OK; + JanusGraphOperationStatus status = JanusGraphOperationStatus.OK; printComponentInfo(metadataProperties); Iterator<Edge> edges = metadataVertex.getVertex().edges(Direction.OUT, EdgeLabelEnum.VERSION.name()); @@ -107,12 +107,12 @@ public class DeleteComponentHandler extends CommonInternalTool{ return status; } - private TitanOperationStatus handleComponent(GraphVertex metadataVertex) { + private JanusGraphOperationStatus handleComponent(GraphVertex metadataVertex) { ToscaElementOperation toscaElementOperation = getOperationByLabel(metadataVertex); Iterator<Edge> edges = metadataVertex.getVertex().edges(Direction.IN, EdgeLabelEnum.VERSION.name()); if (edges != null && edges.hasNext()) { - TitanOperationStatus status = updatePreviousVersion(metadataVertex, edges); - if ( status != TitanOperationStatus.OK ){ + JanusGraphOperationStatus status = updatePreviousVersion(metadataVertex, edges); + if ( status != JanusGraphOperationStatus.OK ){ return status; } } @@ -121,28 +121,28 @@ public class DeleteComponentHandler extends CommonInternalTool{ .map(l -> { ConsoleWriter.dataLine("\nDeleted"); report(metadataVertex); - return TitanOperationStatus.OK; + return JanusGraphOperationStatus.OK; }) .right() .map(r-> { ConsoleWriter.dataLine("\nFailed to delete. see log file"); return r; }); - return TitanOperationStatus.OK; + return JanusGraphOperationStatus.OK; } - private TitanOperationStatus updatePreviousVersion(GraphVertex metadataVertex, Iterator<Edge> edges) { + private JanusGraphOperationStatus updatePreviousVersion(GraphVertex metadataVertex, Iterator<Edge> edges) { Edge edge = edges.next(); - TitanVertex prevVersionVertex = (TitanVertex) edge.outVertex(); + JanusGraphVertex prevVersionVertex = (JanusGraphVertex) edge.outVertex(); // check if previous version is deleted - Boolean isDeleted = (Boolean) titanDao.getProperty(prevVersionVertex, GraphPropertyEnum.IS_DELETED.getProperty()); + Boolean isDeleted = (Boolean) janusGraphDao.getProperty(prevVersionVertex, GraphPropertyEnum.IS_DELETED.getProperty()); if (isDeleted != null && isDeleted) { ConsoleWriter.dataLine("\nPrevoius version is marked as deleted. Component cannot be deleted"); - return TitanOperationStatus.GENERAL_ERROR; + return JanusGraphOperationStatus.GENERAL_ERROR; } // update highest property for previous version - TitanOperationStatus status = updateStateOfPreviuosVersion(prevVersionVertex); - if ( TitanOperationStatus.OK != status ){ + JanusGraphOperationStatus status = updateStateOfPreviuosVersion(prevVersionVertex); + if ( JanusGraphOperationStatus.OK != status ){ return status; } @@ -150,51 +150,54 @@ public class DeleteComponentHandler extends CommonInternalTool{ return connectToCatalogAndArchive(metadataVertex, prevVersionVertex); } - private TitanOperationStatus updateStateOfPreviuosVersion(TitanVertex prevVersionVertex) { - String prevId = (String) titanDao.getProperty(prevVersionVertex, GraphPropertyEnum.UNIQUE_ID.getProperty()); - Either<GraphVertex, TitanOperationStatus> prevGraphVertex = titanDao.getVertexById(prevId); + private JanusGraphOperationStatus updateStateOfPreviuosVersion(JanusGraphVertex prevVersionVertex) { + String prevId = (String) janusGraphDao.getProperty(prevVersionVertex, GraphPropertyEnum.UNIQUE_ID.getProperty()); + Either<GraphVertex, JanusGraphOperationStatus> prevGraphVertex = janusGraphDao.getVertexById(prevId); GraphVertex prevVertex = prevGraphVertex.left().value(); prevVertex.addMetadataProperty(GraphPropertyEnum.IS_HIGHEST_VERSION, true); - titanDao.updateVertex(prevVertex); + janusGraphDao.updateVertex(prevVertex); Iterator<Edge> edgesIter = prevVersionVertex.edges(Direction.IN, EdgeLabelEnum.LAST_STATE.name()); if ( edgesIter.hasNext() ) { Edge lastStateEdge = edgesIter.next(); Vertex lastModifier = lastStateEdge.outVertex(); - TitanOperationStatus replaceRes = titanDao.replaceEdgeLabel(lastModifier, prevVersionVertex, lastStateEdge, EdgeLabelEnum.LAST_STATE, EdgeLabelEnum.STATE); - if (replaceRes != TitanOperationStatus.OK) { + JanusGraphOperationStatus + replaceRes = janusGraphDao + .replaceEdgeLabel(lastModifier, prevVersionVertex, lastStateEdge, EdgeLabelEnum.LAST_STATE, EdgeLabelEnum.STATE); + if (replaceRes != JanusGraphOperationStatus.OK) { log.info("Failed to replace label from {} to {}. status = {}", EdgeLabelEnum.LAST_STATE, EdgeLabelEnum.STATE, replaceRes); ConsoleWriter.dataLine("\nFailed to replace LAST_STATE edge . Failed to delete"); - return TitanOperationStatus.GENERAL_ERROR; + return JanusGraphOperationStatus.GENERAL_ERROR; } } - return TitanOperationStatus.OK; + return JanusGraphOperationStatus.OK; } - private TitanOperationStatus connectToCatalogAndArchive(GraphVertex metadataVertex, TitanVertex prevVersionVertex) { + private JanusGraphOperationStatus connectToCatalogAndArchive(GraphVertex metadataVertex, JanusGraphVertex prevVersionVertex) { - TitanOperationStatus status = connectByLabel(metadataVertex, prevVersionVertex, EdgeLabelEnum.CATALOG_ELEMENT, VertexTypeEnum.CATALOG_ROOT); - if ( status == TitanOperationStatus.OK ){ + JanusGraphOperationStatus + status = connectByLabel(metadataVertex, prevVersionVertex, EdgeLabelEnum.CATALOG_ELEMENT, VertexTypeEnum.CATALOG_ROOT); + if ( status == JanusGraphOperationStatus.OK ){ status = connectByLabel(metadataVertex, prevVersionVertex, EdgeLabelEnum.ARCHIVE_ELEMENT, VertexTypeEnum.ARCHIVE_ROOT); } return status; } - private TitanOperationStatus connectByLabel(GraphVertex metadataVertex, TitanVertex prevVersionVertex, EdgeLabelEnum edgeLabel, VertexTypeEnum vertexlabel) { + private JanusGraphOperationStatus connectByLabel(GraphVertex metadataVertex, JanusGraphVertex prevVersionVertex, EdgeLabelEnum edgeLabel, VertexTypeEnum vertexlabel) { Iterator<Edge> edgesToCatalog = metadataVertex.getVertex().edges(Direction.IN, edgeLabel.name()); if ( edgesToCatalog != null && edgesToCatalog.hasNext() ){ //exist edge move to prev version - Either<GraphVertex, TitanOperationStatus> catalog = titanDao.getVertexByLabel(vertexlabel); + Either<GraphVertex, JanusGraphOperationStatus> catalog = janusGraphDao.getVertexByLabel(vertexlabel); if (catalog.isRight()) { log.debug("Failed to fetch {} vertex, error {}", vertexlabel, catalog.right().value()); return catalog.right().value(); } GraphVertex catalogV = catalog.left().value(); Edge edge = edgesToCatalog.next(); - return titanDao.createEdge(catalogV.getVertex(), prevVersionVertex, edgeLabel, edge ); + return janusGraphDao.createEdge(catalogV.getVertex(), prevVersionVertex, edgeLabel, edge ); } - return TitanOperationStatus.OK; + return JanusGraphOperationStatus.OK; } private boolean isReferenceExist(GraphVertex metadataVertex) { |