diff options
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaElementOperation.java')
-rw-r--r-- | catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaElementOperation.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaElementOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaElementOperation.java index d08d705a2b..bfb6cae3aa 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaElementOperation.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaElementOperation.java @@ -206,6 +206,9 @@ public abstract class ToscaElementOperation extends BaseOperation { } } if (result == null) { + result = createModelEdge(previousToscaElement, nextToscaElement, user, createdToscaElementVertex); + } + if (result == null) { status = janusGraphDao.createEdge(user.getVertex(), createdToscaElementVertex.getVertex(), EdgeLabelEnum.LAST_MODIFIER, new HashMap<>()); if (status != JanusGraphOperationStatus.OK) { CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, @@ -260,6 +263,33 @@ public abstract class ToscaElementOperation extends BaseOperation { return result; } + /** + * Creates the MODEL in case it exits on the previous version + * @param previousToscaElement previous element version + * @param nextToscaElement latest element version + * @param user user + * @param createdToscaElementVertex created tosca element + * @return + */ + private Either<GraphVertex, StorageOperationStatus> createModelEdge(final GraphVertex previousToscaElement, + final GraphVertex nextToscaElement, GraphVertex user, + final GraphVertex createdToscaElementVertex) { + Either<GraphVertex, StorageOperationStatus> result = null; + final Either<GraphVertex, JanusGraphOperationStatus> modelElementVertexResponse = janusGraphDao + .getParentVertex(previousToscaElement, EdgeLabelEnum.MODEL, JsonParseFlagEnum.NoParse); + if (modelElementVertexResponse.isLeft()) { + final JanusGraphOperationStatus status = janusGraphDao + .createEdge(nextToscaElement.getVertex(), createdToscaElementVertex.getVertex(), EdgeLabelEnum.MODEL, new HashMap<>()); + if (JanusGraphOperationStatus.OK != status) { + CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, + FAILED_TO_CREATE_EDGE_WITH_LABEL_FROM_USER_VERTEX_TO_TOSCA_ELEMENT_VERTEX_ON_GRAPH_STATUS_IS, EdgeLabelEnum.MODEL, + user.getUniqueId(), nextToscaElement.getMetadataProperty(GraphPropertyEnum.NORMALIZED_NAME), status); + result = Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(status)); + } + } + return result; + } + protected JanusGraphOperationStatus setLastModifierFromGraph(GraphVertex componentV, ToscaElement toscaElement) { Either<GraphVertex, JanusGraphOperationStatus> parentVertex = janusGraphDao .getParentVertex(componentV, EdgeLabelEnum.LAST_MODIFIER, JsonParseFlagEnum.NoParse); |