aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/UpgradeOperation.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/UpgradeOperation.java')
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/UpgradeOperation.java124
1 files changed, 58 insertions, 66 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/UpgradeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/UpgradeOperation.java
index b97afb64f0..a8b793db66 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/UpgradeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/UpgradeOperation.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,13 +17,19 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
package org.openecomp.sdc.be.model.jsonjanusgraph.operations;
-import org.janusgraph.core.JanusGraphVertex;
import fj.data.Either;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
+import org.janusgraph.core.JanusGraphVertex;
import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum;
@@ -40,12 +46,9 @@ import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter;
import org.openecomp.sdc.common.log.wrappers.Logger;
import org.springframework.stereotype.Component;
-import java.util.*;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
@Component
public class UpgradeOperation extends BaseOperation {
+
private static final Logger log = Logger.getLogger(UpgradeOperation.class.getName());
public Either<List<ComponentDependency>, StorageOperationStatus> getComponentDependencies(String componentId) {
@@ -55,14 +58,11 @@ public class UpgradeOperation extends BaseOperation {
return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(vertexById.right().value()));
}
List<ComponentDependency> dependencies = new ArrayList<>();
-
GraphVertex vertex = vertexById.left().value();
-
StorageOperationStatus status = fillDependenciesByVertex(componentId, dependencies, vertex);
if (status != StorageOperationStatus.OK) {
return Either.right(status);
}
-
GraphVertex vertexToStart = vertex;
Function<GraphVertex, Either<GraphVertex, JanusGraphOperationStatus>> getNextElement = vertexP -> janusGraphDao
.getParentVertex(vertexP, EdgeLabelEnum.VERSION, JsonParseFlagEnum.ParseAll);
@@ -71,15 +71,13 @@ public class UpgradeOperation extends BaseOperation {
return Either.right(status);
}
vertex = vertexToStart;
- getNextElement = vertexP -> janusGraphDao
- .getChildVertex(vertexP, EdgeLabelEnum.VERSION, JsonParseFlagEnum.ParseAll);
+ getNextElement = vertexP -> janusGraphDao.getChildVertex(vertexP, EdgeLabelEnum.VERSION, JsonParseFlagEnum.ParseAll);
status = handleVersionChain(componentId, dependencies, vertex, getNextElement);
-
return status == StorageOperationStatus.OK ? Either.left(dependencies) : Either.right(status);
}
- private StorageOperationStatus handleVersionChain(String componentId, List<ComponentDependency> dependencies, GraphVertex vertexToStart, Function<GraphVertex, Either<GraphVertex, JanusGraphOperationStatus>> getNextElement) {
-
+ private StorageOperationStatus handleVersionChain(String componentId, List<ComponentDependency> dependencies, GraphVertex vertexToStart,
+ Function<GraphVertex, Either<GraphVertex, JanusGraphOperationStatus>> getNextElement) {
StorageOperationStatus status;
boolean nextInChain = true;
GraphVertex vertex = vertexToStart;
@@ -101,9 +99,8 @@ public class UpgradeOperation extends BaseOperation {
private StorageOperationStatus fillDependenciesByVertex(String componentId, List<ComponentDependency> dependencies, GraphVertex vertex) {
StorageOperationStatus status = StorageOperationStatus.OK;
- if ( needToAddToDependency(vertex) ) {
+ if (needToAddToDependency(vertex)) {
ComponentDependency dependency = fillDataFromVertex(vertex, null, null);
-
List<EdgeLabelEnum> dependList = Arrays.asList(EdgeLabelEnum.INSTANCE_OF, EdgeLabelEnum.PROXY_OF, EdgeLabelEnum.ALLOTTED_OF);
for (EdgeLabelEnum label : dependList) {
status = fillDependenciesByLabel(componentId, vertex, dependency, label);
@@ -119,21 +116,24 @@ public class UpgradeOperation extends BaseOperation {
return status;
}
- private boolean needToAddToDependency(GraphVertex vertex){
- Boolean isDeleted = (Boolean) vertex.getMetadataProperty(GraphPropertyEnum.IS_DELETED);
+ private boolean needToAddToDependency(GraphVertex vertex) {
+ Boolean isDeleted = (Boolean) vertex.getMetadataProperty(GraphPropertyEnum.IS_DELETED);
Boolean isArchived = (Boolean) vertex.getMetadataProperty(GraphPropertyEnum.IS_ARCHIVED);
return !Boolean.TRUE.equals(isDeleted) && !Boolean.TRUE.equals(isArchived);
}
- private StorageOperationStatus fillDependenciesByLabel(String componentId, GraphVertex vertex, ComponentDependency dependency, EdgeLabelEnum label) {
- Either<List<GraphVertex>, JanusGraphOperationStatus> parentVertices = janusGraphDao.getParentVertices(vertex, label, JsonParseFlagEnum.ParseAll);
+ private StorageOperationStatus fillDependenciesByLabel(String componentId, GraphVertex vertex, ComponentDependency dependency,
+ EdgeLabelEnum label) {
+ Either<List<GraphVertex>, JanusGraphOperationStatus> parentVertices = janusGraphDao
+ .getParentVertices(vertex, label, JsonParseFlagEnum.ParseAll);
if (parentVertices.isRight() && parentVertices.right().value() != JanusGraphOperationStatus.NOT_FOUND) {
- log.debug("Failed to fetch parent verticies by label INSTANCE_OF for vertex with id {} error {}", componentId, parentVertices.right().value());
+ log.debug("Failed to fetch parent verticies by label INSTANCE_OF for vertex with id {} error {}", componentId,
+ parentVertices.right().value());
return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(parentVertices.right().value());
}
if (parentVertices.isLeft()) {
- List<ComponentDependency> existIn = new ArrayList<>( );
- parentVertices.left().value().forEach(v -> handleHighestVersion(vertex, label, existIn, v) );
+ List<ComponentDependency> existIn = new ArrayList<>();
+ parentVertices.left().value().forEach(v -> handleHighestVersion(vertex, label, existIn, v));
dependency.addDependencies(existIn);
}
return StorageOperationStatus.OK;
@@ -141,41 +141,42 @@ public class UpgradeOperation extends BaseOperation {
private void handleHighestVersion(GraphVertex vertexOrigin, EdgeLabelEnum label, List<ComponentDependency> exisIn, GraphVertex containerVertex) {
Boolean isHighest = (Boolean) containerVertex.getMetadataProperty(GraphPropertyEnum.IS_HIGHEST_VERSION);
- if ( isHighest && needToAddToDependency(containerVertex) ) {
+ if (isHighest && needToAddToDependency(containerVertex)) {
JanusGraphVertex janusGraphVertex = containerVertex.getVertex();
Iterator<Edge> edges = janusGraphVertex.edges(Direction.OUT, EdgeLabelEnum.VERSION.name());
//verify that it is a last version - highest by version number
- if ( edges == null || !edges.hasNext() ){
+ if (edges == null || !edges.hasNext()) {
ComponentDependency container = fillDataFromVertex(containerVertex, vertexOrigin.getUniqueId(), label);
boolean addToDependency = true;
if (label == EdgeLabelEnum.ALLOTTED_OF) {
//in case of not full allotted chain not add to dependency list
addToDependency = findAllottedChain(containerVertex, container);
}
- if ( addToDependency ){
+ if (addToDependency) {
exisIn.add(container);
- }
+ }
}
}
}
private boolean findAllottedChain(GraphVertex vertex, ComponentDependency container) {
- Either<List<GraphVertex>, JanusGraphOperationStatus> parentVertecies = janusGraphDao.getParentVertices(vertex, EdgeLabelEnum.INSTANCE_OF, JsonParseFlagEnum.ParseAll);
+ Either<List<GraphVertex>, JanusGraphOperationStatus> parentVertecies = janusGraphDao
+ .getParentVertices(vertex, EdgeLabelEnum.INSTANCE_OF, JsonParseFlagEnum.ParseAll);
if (parentVertecies.isLeft()) {
List<ComponentDependency> existIn = new ArrayList<>();
parentVertecies.left().value().forEach(v -> {
Boolean isHighest = (Boolean) v.getMetadataProperty(GraphPropertyEnum.IS_HIGHEST_VERSION);
- if ( isHighest && needToAddToDependency(v) ) {
- JanusGraphVertex janusGraphVertex = v.getVertex();
- Iterator<Edge> edges = janusGraphVertex.edges(Direction.OUT, EdgeLabelEnum.VERSION.name());
- //verify that it is a last version - highest by version number
- if ( edges == null || !edges.hasNext() ){
- ComponentDependency parentContainer = fillDataFromVertex(v, vertex.getUniqueId(), EdgeLabelEnum.INSTANCE_OF);
- existIn.add(parentContainer);
- }
+ if (isHighest && needToAddToDependency(v)) {
+ JanusGraphVertex janusGraphVertex = v.getVertex();
+ Iterator<Edge> edges = janusGraphVertex.edges(Direction.OUT, EdgeLabelEnum.VERSION.name());
+ //verify that it is a last version - highest by version number
+ if (edges == null || !edges.hasNext()) {
+ ComponentDependency parentContainer = fillDataFromVertex(v, vertex.getUniqueId(), EdgeLabelEnum.INSTANCE_OF);
+ existIn.add(parentContainer);
+ }
}
});
- if ( !existIn.isEmpty() ){
+ if (!existIn.isEmpty()) {
container.setDependencies(existIn);
return true;
}
@@ -191,7 +192,6 @@ public class UpgradeOperation extends BaseOperation {
container.setType((String) v.getMetadataProperty(GraphPropertyEnum.COMPONENT_TYPE));
container.setIcon((String) v.getJsonMetadataField(JsonPresentationFields.ICON));
container.setState((String) v.getMetadataProperty(GraphPropertyEnum.STATE));
-
if (edgeLabel == EdgeLabelEnum.PROXY_OF || edgeLabel == EdgeLabelEnum.ALLOTTED_OF) {
findInstanceNames(v, originId, edgeLabel, container);
}
@@ -208,17 +208,11 @@ public class UpgradeOperation extends BaseOperation {
JanusGraphVertex inVertex = (JanusGraphVertex) edge.inVertex();
String id = (String) janusGraphDao.getProperty(inVertex, GraphPropertyEnum.UNIQUE_ID.getProperty());
if (id.equals(originId)) {
- List<String> instanceOnEdge = (List<String>) janusGraphDao
- .getProperty(edge, EdgePropertyEnum.INSTANCES);
+ List<String> instanceOnEdge = (List<String>) janusGraphDao.getProperty(edge, EdgePropertyEnum.INSTANCES);
Map<String, ComponentInstanceDataDefinition> componentInstances = compositionDataDefinition.getComponentInstances();
-
if (componentInstances != null) {
- List<String> ciNames = componentInstances
- .values()
- .stream()
- .filter(ci -> instanceOnEdge.contains(ci.getUniqueId()))
- .map(ComponentInstanceDataDefinition::getName)
- .collect(Collectors.toList());
+ List<String> ciNames = componentInstances.values().stream().filter(ci -> instanceOnEdge.contains(ci.getUniqueId()))
+ .map(ComponentInstanceDataDefinition::getName).collect(Collectors.toList());
if (ciNames != null && !ciNames.isEmpty()) {
container.setInstanceNames(ciNames);
break;
@@ -229,22 +223,20 @@ public class UpgradeOperation extends BaseOperation {
}
public List<String> getInstanceIdFromAllottedEdge(String resourceId, String serviceInvariantUUID) {
- Either<GraphVertex, JanusGraphOperationStatus> vertexById = janusGraphDao.getVertexById(resourceId);
- if ( vertexById.isLeft() ){
- GraphVertex vertexG = vertexById.left().value();
- JanusGraphVertex vertex = vertexG.getVertex();
- Iterator<Edge> edges = vertex.edges(Direction.OUT, EdgeLabelEnum.ALLOTTED_OF.name());
- while ( edges != null && edges.hasNext() ){
- Edge edge = edges.next();
- JanusGraphVertex inVertex = (JanusGraphVertex)edge.inVertex();
- String vertexInInvUUID = (String) janusGraphDao
- .getProperty(inVertex, GraphPropertyEnum.INVARIANT_UUID.getProperty());
- if ( vertexInInvUUID.equals(serviceInvariantUUID) ){
- return (List<String>) janusGraphDao.getProperty(edge, EdgePropertyEnum.INSTANCES) ;
- }
- }
- }
- return new ArrayList<>();
+ Either<GraphVertex, JanusGraphOperationStatus> vertexById = janusGraphDao.getVertexById(resourceId);
+ if (vertexById.isLeft()) {
+ GraphVertex vertexG = vertexById.left().value();
+ JanusGraphVertex vertex = vertexG.getVertex();
+ Iterator<Edge> edges = vertex.edges(Direction.OUT, EdgeLabelEnum.ALLOTTED_OF.name());
+ while (edges != null && edges.hasNext()) {
+ Edge edge = edges.next();
+ JanusGraphVertex inVertex = (JanusGraphVertex) edge.inVertex();
+ String vertexInInvUUID = (String) janusGraphDao.getProperty(inVertex, GraphPropertyEnum.INVARIANT_UUID.getProperty());
+ if (vertexInInvUUID.equals(serviceInvariantUUID)) {
+ return (List<String>) janusGraphDao.getProperty(edge, EdgePropertyEnum.INSTANCES);
+ }
+ }
+ }
+ return new ArrayList<>();
}
-
}