summaryrefslogtreecommitdiffstats
path: root/asdctool/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'asdctool/src/main/java/org')
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/InstanceMigrationBase.java16
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigration.java168
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigration.java256
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigration.java159
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigration.java236
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigration.java96
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/InterfaceOperationMigration.java172
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/SdcConsumerMigration.java108
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1911/SdcDeploymentArtTimeOutMigration.java152
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesCERTIFIEDstateMigration.java154
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesCIPstateMigration.java153
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesRFCstateMigration.java147
12 files changed, 0 insertions, 1817 deletions
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/InstanceMigrationBase.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/InstanceMigrationBase.java
index b0a1d502aa..5876898d7e 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/InstanceMigrationBase.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/InstanceMigrationBase.java
@@ -24,7 +24,6 @@ import fj.data.Either;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.janusgraph.core.JanusGraphVertex;
-import org.openecomp.sdc.asdctool.migration.tasks.mig2002.SdcCollapsingRolesRFCstateMigration;
import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
@@ -152,21 +151,6 @@ public abstract class InstanceMigrationBase {
return false;
}
- protected List<JanusGraphVertex> getVertexByEdgeSide(Iterator<Edge> edges, SdcCollapsingRolesRFCstateMigration.EdgeSide side) {
- List<JanusGraphVertex> vertexList = new ArrayList();
- while (edges.hasNext()) {
- Edge edge = edges.next();
-
- if (side == SdcCollapsingRolesRFCstateMigration.EdgeSide.OUT) {
- vertexList.add((JanusGraphVertex) edge.outVertex());
- } else {
- vertexList.add((JanusGraphVertex) edge.inVertex());
- }
- }
-
- return vertexList;
- }
-
protected Iterator<Edge> getVertexEdge(GraphVertex containerV, Direction direction, EdgeLabelEnum edgeLabel) {
return containerV.getVertex().edges(direction, edgeLabel.name());
}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigration.java
deleted file mode 100644
index 43399b616d..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1802/SdcCatalogMigration.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.asdctool.migration.tasks.mig1802;
-
-import fj.data.Either;
-import org.apache.commons.collections.ListUtils;
-import org.apache.tinkerpop.gremlin.structure.Direction;
-import org.openecomp.sdc.asdctool.migration.core.DBVersion;
-import org.openecomp.sdc.asdctool.migration.core.task.Migration;
-import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
-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.JsonParseFlagEnum;
-import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
-import org.openecomp.sdc.be.dao.jsongraph.utils.IdBuilderUtils;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
-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.stereotype.Component;
-
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-@Component
-public class SdcCatalogMigration implements Migration {
- private static final Logger LOGGER = Logger.getLogger(SdcCatalogMigration.class);
- private static final List<ResourceTypeEnum> EXCLUDE_TYPES = Arrays.asList(ResourceTypeEnum.VFCMT, ResourceTypeEnum.Configuration);
-
- private ToscaElementOperation toscaElementOperation;
- private JanusGraphDao janusGraphDao;
-
- public SdcCatalogMigration(TopologyTemplateOperation toscaElementOperation, JanusGraphDao janusGraphDao) {
- this.toscaElementOperation = toscaElementOperation;
- this.janusGraphDao = janusGraphDao;
- }
-
- @Override
- public String description() {
- return "optimize sdc catalog vertices";
- }
-
- @Override
- public DBVersion getVersion() {
- return DBVersion.from(BigInteger.valueOf(1802), BigInteger.valueOf(0));
- }
-
- @Override
- public MigrationResult migrate() {
- JanusGraphOperationStatus status = null;
- try {
- status = getOrCreateCatalogRoot()
- .either(this::associateCatalogRootToCatalogElements,
- err -> {LOGGER.error("failed to create catalog root. err: {}", err); return err;});
- return status == JanusGraphOperationStatus.OK ? MigrationResult.success() : MigrationResult.error("failed to create and associate catalog root. error: " + status);
- } finally {
- commitOrRollBack(status);
- }
- }
-
- private void commitOrRollBack(JanusGraphOperationStatus status) {
- if (status == JanusGraphOperationStatus.OK) {
- janusGraphDao.commit();
- } else {
- janusGraphDao.rollback();
- }
- }
-
- private Either<GraphVertex, JanusGraphOperationStatus> getOrCreateCatalogRoot() {
- LOGGER.info("creating or getting catalog root vertex");
- return janusGraphDao.getVertexByLabel(VertexTypeEnum.CATALOG_ROOT)
- .right()
- .bind(this::createRootCatalogVertexOrError);
- }
-
-
- private Either<GraphVertex, JanusGraphOperationStatus> createRootCatalogVertexOrError(JanusGraphOperationStatus janusGraphOperationStatus) {
- return janusGraphOperationStatus == JanusGraphOperationStatus.NOT_FOUND ? createRootCatalogVertex() : Either.right(
- janusGraphOperationStatus);
- }
-
- private Either<GraphVertex, JanusGraphOperationStatus> createRootCatalogVertex() {
- LOGGER.info("Creating root catalog vertex");
- GraphVertex catalogRootVertex = new GraphVertex(VertexTypeEnum.CATALOG_ROOT);
- catalogRootVertex.setUniqueId(IdBuilderUtils.generateUniqueId());
- return janusGraphDao.createVertex(catalogRootVertex);
- }
-
- private Either<List<GraphVertex>, JanusGraphOperationStatus> getAllCatalogVertices() {
- LOGGER.info("fetching all catalog resources");
- return toscaElementOperation.getListOfHighestComponents(ComponentTypeEnum.RESOURCE, EXCLUDE_TYPES, JsonParseFlagEnum.ParseMetadata)
- .right()
- .bind(this::errOrEmptyListIfNotFound)
- .left()
- .bind(this::getAllCatalogVertices);
- }
-
- private Either<List<GraphVertex>, JanusGraphOperationStatus> errOrEmptyListIfNotFound(JanusGraphOperationStatus err) {
- return JanusGraphOperationStatus.NOT_FOUND.equals(err) ? Either.left(new ArrayList<>()) : Either.right(err);
- }
-
- @SuppressWarnings("unchecked")
- private Either<List<GraphVertex>, JanusGraphOperationStatus> getAllCatalogVertices(List<GraphVertex> allResourceCatalogVertices) {
- LOGGER.info("number of resources: {}", allResourceCatalogVertices.size());
- LOGGER.info("fetching all catalog services");
- return toscaElementOperation.getListOfHighestComponents(ComponentTypeEnum.SERVICE, EXCLUDE_TYPES, JsonParseFlagEnum.ParseMetadata)
- .right()
- .bind(this::errOrEmptyListIfNotFound)
- .left()
- .map(allServiceVertices -> ListUtils.union(allServiceVertices, allResourceCatalogVertices));
- }
-
- private JanusGraphOperationStatus associateCatalogRootToCatalogElements(GraphVertex root) {
- return getAllCatalogVertices()
- .either(catalogVertices -> associateCatalogRootToCatalogElements(root, catalogVertices),
- err -> err);
- }
-
- private JanusGraphOperationStatus associateCatalogRootToCatalogElements(GraphVertex root, List<GraphVertex> catalogElements) {
- LOGGER.info("number of catalog elements: {}", catalogElements.size());
- LOGGER.info("connect all catalog elements to root edge");
- List<GraphVertex> nonConnectedElements = catalogElements.stream().filter(this::edgeNotAlreadyExists).collect(Collectors.toList());
- int numOfCreatedEdges = 0;
- for (GraphVertex catalogElement : nonConnectedElements) {
- JanusGraphOperationStatus
- edgeCreationStatus = janusGraphDao
- .createEdge(root, catalogElement, EdgeLabelEnum.CATALOG_ELEMENT, null);
- if (edgeCreationStatus != JanusGraphOperationStatus.OK) {
- LOGGER.error("failed to create edge from catalog element to vertex {}", catalogElement.getUniqueId());
- return edgeCreationStatus;
- }
- LOGGER.debug("created edge from catalog root to element {}", catalogElement.getUniqueId());
- numOfCreatedEdges++;
- }
- LOGGER.info("number edges created: {}", numOfCreatedEdges);
- return JanusGraphOperationStatus.OK;
- }
-
- private boolean edgeNotAlreadyExists(GraphVertex catalogElement) {
- return !catalogElement.getVertex().edges(Direction.IN, EdgeLabelEnum.CATALOG_ELEMENT.name()).hasNext();
- }
-
-
-}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigration.java
deleted file mode 100644
index 8796517c6e..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ForwardPathMigration.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.openecomp.sdc.asdctool.migration.tasks.mig1806;
-
-import com.google.common.collect.ImmutableSet;
-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.janusgraph.core.JanusGraphVertex;
-import org.openecomp.sdc.asdctool.migration.core.DBVersion;
-import org.openecomp.sdc.asdctool.migration.core.task.Migration;
-import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
-import org.openecomp.sdc.be.config.ConfigurationManager;
-import org.openecomp.sdc.be.dao.api.ActionStatus;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
-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.JsonParseFlagEnum;
-import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
-import org.openecomp.sdc.be.dao.jsongraph.utils.IdBuilderUtils;
-import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentParametersView;
-import org.openecomp.sdc.be.model.Service;
-import org.openecomp.sdc.be.model.User;
-import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
-import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
-import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter;
-import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation;
-
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.EnumMap;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-//@org.springframework.stereotype.Component
-public class ForwardPathMigration implements Migration {
-
- private JanusGraphDao janusGraphDao;
- private UserAdminOperation userAdminOperation;
- private ToscaOperationFacade toscaOperationFacade;
- private User user = null;
-
- public ForwardPathMigration(JanusGraphDao janusGraphDao,
- UserAdminOperation userAdminOperation, ToscaOperationFacade toscaOperationFacade) {
- this.janusGraphDao = janusGraphDao;
- this.userAdminOperation = userAdminOperation;
- this.toscaOperationFacade = toscaOperationFacade;
- }
-
- @Override
- public String description() {
- return "remove corrupted forwarding paths ";
- }
-
- @Override
- public DBVersion getVersion() {
- return DBVersion.from(BigInteger.valueOf(1806), BigInteger.valueOf(0));
- }
-
- @Override
- public MigrationResult migrate() {
- final String userId = ConfigurationManager.getConfigurationManager().getConfiguration().getAutoHealingOwner();
-
- Either<User, ActionStatus> userData = (Either<User, ActionStatus>) userAdminOperation
- .getUserData(userId, false);
- if (userData.isRight()) {
- return MigrationResult.error(
- "failed to delete unused forwarding paths. Failed to resolve user : " + userId + " error " + userData
- .right().value());
- } else {
- user = userData.left().value();
- }
- StorageOperationStatus status = cleanAllServices();
-
- return status == StorageOperationStatus.OK ? MigrationResult.success()
- : MigrationResult.error("failed to remove corrupted forwarding paths . Error : " + status);
-
- }
-
- private StorageOperationStatus cleanAllServices() {
- StorageOperationStatus status;
-
- Map<GraphPropertyEnum, Object> hasProps = new EnumMap<>(GraphPropertyEnum.class);
- hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
- Map<GraphPropertyEnum, Object> hasNotProps = new HashMap<>();
- hasNotProps.put(GraphPropertyEnum.IS_DELETED, true);
- status = janusGraphDao
- .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll)
- .either(this::cleanServices, this::handleError);
- return status;
- }
-
- private StorageOperationStatus cleanServices(List<GraphVertex> containersV) {
- StorageOperationStatus status = StorageOperationStatus.OK;
- for (GraphVertex container : containersV) {
- ComponentParametersView componentParametersView = new ComponentParametersView();
- componentParametersView.setIgnoreComponentInstances(false);
- componentParametersView.setIgnoreCapabilities(false);
- componentParametersView.setIgnoreRequirements(false);
- componentParametersView.setIgnoreServicePath(false);
- Either<Component, StorageOperationStatus> toscaElement = toscaOperationFacade
- .getToscaElement(container.getUniqueId(), componentParametersView);
- if (toscaElement.isRight()) {
- return toscaElement.right().value();
- }
- status = fixDataOnGraph(toscaElement.left().value());
- if (status != StorageOperationStatus.OK) {
- break;
- }
- }
- return status;
- }
-
-
- private StorageOperationStatus handleError(JanusGraphOperationStatus err) {
- janusGraphDao.rollback();
- return DaoStatusConverter
- .convertJanusGraphStatusToStorageStatus(
- JanusGraphOperationStatus.NOT_FOUND == err ? JanusGraphOperationStatus.OK : err);
- }
-
- private StorageOperationStatus fixDataOnGraph(Component component) {
- if (!(component instanceof Service)){
- return StorageOperationStatus.OK;
- }
- Service service = (Service) component;
- Either<GraphVertex, JanusGraphOperationStatus> getResponse = janusGraphDao.getVertexById(service.getUniqueId(),
- JsonParseFlagEnum.NoParse);
- if (getResponse.isRight()) {
- return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getResponse.right().value());
-
- }
- Set<String> ciNames = new HashSet<>();
- if (service.getComponentInstances() != null && !service.getComponentInstances().isEmpty()) {
- ciNames = service.getComponentInstances().stream().map(ci -> ci.getName())
- .collect(Collectors.toSet());
- }
- GraphVertex componentVertex = getResponse.left().value();
-
- GraphVertex toscaDataVertex;
- Either<GraphVertex, JanusGraphOperationStatus> groupVertexEither = janusGraphDao.getChildVertex(componentVertex,
- EdgeLabelEnum.FORWARDING_PATH, JsonParseFlagEnum.ParseJson);
- if (groupVertexEither.isRight() && groupVertexEither.right().value() == JanusGraphOperationStatus.NOT_FOUND) {
- return StorageOperationStatus.OK;
- }
- if (groupVertexEither.isRight()) {
- return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(groupVertexEither.right().value());
- }
- toscaDataVertex = groupVertexEither.left().value();
- Map<String, ForwardingPathDataDefinition> forwardingPaths = new HashMap<>(
- (Map<String, ForwardingPathDataDefinition>) toscaDataVertex.getJson());
- List<String> toBeDeletedFP = new ArrayList<>();
- for (Map.Entry<String, ForwardingPathDataDefinition> forwardingPathDataDefinition : forwardingPaths
- .entrySet()) {
- Set<String> nodeNames = forwardingPathDataDefinition.getValue().getPathElements()
- .getListToscaDataDefinition()
- .stream().map(element -> ImmutableSet.of(element.getFromNode(), element.getToNode()))
- .flatMap(set -> set.stream()).collect(Collectors.toSet());
- if (!ciNames.containsAll(nodeNames)) {
- toBeDeletedFP.add(forwardingPathDataDefinition.getKey());
- }
- }
- if (toBeDeletedFP.isEmpty()) {
- janusGraphDao.rollback();
- return StorageOperationStatus.OK;
- }
- toBeDeletedFP.stream().forEach(fpKey -> forwardingPaths.remove(fpKey));
- toscaDataVertex.setJson(forwardingPaths);
- Either<GraphVertex, JanusGraphOperationStatus> updatevertexEither = updateOrCopyOnUpdate(
- toscaDataVertex, componentVertex);
- if (updatevertexEither.isRight()) {
- janusGraphDao.rollback();
- return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(updatevertexEither.right().value());
- }
- janusGraphDao.commit();
- return StorageOperationStatus.OK;
- }
-
- private Either<GraphVertex, JanusGraphOperationStatus> cloneDataVertex(GraphVertex dataVertex, GraphVertex toscaElementVertex, Edge edgeToRemove) {
- EdgeLabelEnum label = EdgeLabelEnum.FORWARDING_PATH;
- GraphVertex newDataVertex = new GraphVertex(dataVertex.getLabel());
- String id = IdBuilderUtils.generateChildId(toscaElementVertex.getUniqueId(), dataVertex.getLabel());
- newDataVertex.cloneData(dataVertex);
- newDataVertex.setUniqueId(id);
-
- Either<GraphVertex, JanusGraphOperationStatus> createVertex = janusGraphDao.createVertex(newDataVertex);
- if (createVertex.isRight()) {
- return createVertex;
- }
- newDataVertex = createVertex.left().value();
- JanusGraphOperationStatus
- createEdge = janusGraphDao
- .createEdge(toscaElementVertex, newDataVertex, label, janusGraphDao.getEdgeProperties(edgeToRemove));
- if (createEdge != JanusGraphOperationStatus.OK) {
- return Either.right(createEdge);
- }
- edgeToRemove.remove();
- return Either.left(newDataVertex);
- }
-
- private Either<GraphVertex, JanusGraphOperationStatus> updateOrCopyOnUpdate(GraphVertex dataVertex, GraphVertex toscaElementVertex ) {
- EdgeLabelEnum label = EdgeLabelEnum.FORWARDING_PATH;
- Iterator<Edge> edges = dataVertex.getVertex().edges(Direction.IN, label.name());
- int edgeCount = 0;
- Edge edgeToRemove = null;
- while (edges.hasNext()) {
- Edge edge = edges.next();
- ++edgeCount;
- Vertex outVertex = edge.outVertex();
- String outId = (String) janusGraphDao
- .getProperty((JanusGraphVertex) outVertex, GraphPropertyEnum.UNIQUE_ID.getProperty());
- if (toscaElementVertex.getUniqueId().equals(outId)) {
- edgeToRemove = edge;
- }
- }
- if (edgeToRemove == null) {
- return Either.right(JanusGraphOperationStatus.GENERAL_ERROR);
- }
- switch (edgeCount) {
- case 0:
- // error
- return Either.right(JanusGraphOperationStatus.GENERAL_ERROR);
- case 1:
- // update
- return janusGraphDao.updateVertex(dataVertex);
- default:
- // copy on update
- return cloneDataVertex(dataVertex, toscaElementVertex, edgeToRemove);
- }
- }
-}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigration.java
deleted file mode 100644
index 8f7fc3eeb5..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/ResourceLifecycleMigration.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.asdctool.migration.tasks.mig1806;
-
-import fj.data.Either;
-import org.openecomp.sdc.asdctool.enums.LifecycleStateEnum;
-import org.openecomp.sdc.asdctool.migration.core.DBVersion;
-import org.openecomp.sdc.asdctool.migration.core.task.Migration;
-import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
-import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic;
-import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction;
-import org.openecomp.sdc.be.config.ConfigurationManager;
-import org.openecomp.sdc.be.dao.api.ActionStatus;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
-import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
-import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
-import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.be.model.LifeCycleTransitionEnum;
-import org.openecomp.sdc.be.model.User;
-import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
-import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter;
-import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation;
-import org.openecomp.sdc.common.log.wrappers.Logger;
-import org.openecomp.sdc.exception.ResponseFormat;
-import org.springframework.stereotype.Component;
-
-import java.math.BigInteger;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class ResourceLifecycleMigration implements Migration {
-
- private JanusGraphDao janusGraphDao;
- private LifecycleBusinessLogic lifecycleBusinessLogic;
- private UserAdminOperation userAdminOperation;
-
- private User user = null;
-
- private static final Logger log = Logger.getLogger(ResourceLifecycleMigration.class);
-
- public ResourceLifecycleMigration(JanusGraphDao janusGraphDao, LifecycleBusinessLogic lifecycleBusinessLogic, UserAdminOperation userAdminOperation) {
- this.janusGraphDao = janusGraphDao;
- this.lifecycleBusinessLogic = lifecycleBusinessLogic;
- this.userAdminOperation = userAdminOperation;
- }
-
- @Override
- public String description() {
- return "change resource lifecycle state from testing to certified";
- }
-
- @Override
- public DBVersion getVersion() {
- return DBVersion.from(BigInteger.valueOf(1806), BigInteger.valueOf(0));
- }
-
- @Override
- public MigrationResult migrate() {
- log.info("start change resource lifecycle states migration");
- final String userId = ConfigurationManager.getConfigurationManager().getConfiguration().getAutoHealingOwner();
-
- Either<User, ActionStatus> userReq = userAdminOperation.getUserData(userId, false);
- if (userReq.isRight()) {
- log.error("Upgrade migration failed. User {} resolve failed: {} ", userId, userReq.right().value());
- return MigrationResult.error("failed to change lifecycle state of resources. Failed to resolve user : " + userId + " error " + userReq.right().value());
- } else {
- user = userReq.left().value();
- log.info("User {} will perform upgrade operation with role {}", user.getUserId(), user.getRole());
- }
-
- StorageOperationStatus status = changeResourceLifecycleState();
-
- return status == StorageOperationStatus.OK ? MigrationResult.success() : MigrationResult.error("failed to change lifecycle state of resources. Error : " + status);
- }
-
- private StorageOperationStatus changeResourceLifecycleState() {
- StorageOperationStatus status;
- status = findResourcesAndChangeStatus(VertexTypeEnum.NODE_TYPE);
- if (StorageOperationStatus.OK == status) {
- status = findResourcesAndChangeStatus(VertexTypeEnum.TOPOLOGY_TEMPLATE);
- }
- janusGraphDao.commit();
- return status;
- }
-
- private StorageOperationStatus findResourcesAndChangeStatus(VertexTypeEnum type) {
- StorageOperationStatus status;
- Map<GraphPropertyEnum, Object> props = new EnumMap<>(GraphPropertyEnum.class);
- props.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
- props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.READY_FOR_CERTIFICATION.name());
- props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
-
- Map<GraphPropertyEnum, Object> hasNot = new EnumMap<>(GraphPropertyEnum.class);
- hasNot.put(GraphPropertyEnum.IS_DELETED, true);
-
- log.info("findResourcesAndChangeStatus for type {} and state {}", type ,LifecycleStateEnum.READY_FOR_CERTIFICATION);
- status = janusGraphDao.getByCriteria(type, props, hasNot, JsonParseFlagEnum.ParseAll).either(this::changeState, this::handleError);
- log.info("status {} for type {} and state {}", status, type ,LifecycleStateEnum.READY_FOR_CERTIFICATION);
-
- log.info("findResourcesAndChangeStatus for type {} and state {}", type ,LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
- props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS.name());
- status = janusGraphDao.getByCriteria(type, props, hasNot, JsonParseFlagEnum.ParseAll).either(this::changeState, this::handleError);
- log.info("status {} for type {} and state {}", status, type ,LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
-
-
- return status;
- }
-
- private StorageOperationStatus changeState(List<GraphVertex> resourcesV) {
- StorageOperationStatus status = StorageOperationStatus.OK;
-
- for (GraphVertex resourceV : resourcesV) {
- status = changeResourceState(resourceV);
- if (status != StorageOperationStatus.OK) {
- log.info("Failed to change state to certified of resource with id {} , continue to next, reset status", resourceV.getUniqueId() );
- status = StorageOperationStatus.OK;
- }
- }
- return status;
- }
-
- private StorageOperationStatus changeResourceState(GraphVertex resourceV) {
- log.debug("Change state to certified to resource with id {} ", resourceV.getUniqueId() );
-
- LifecycleChangeInfoWithAction changeInfo = new LifecycleChangeInfoWithAction("change resource state by migration");
- final Either<? extends org.openecomp.sdc.be.model.Component, ResponseFormat> changeComponentState = lifecycleBusinessLogic.changeComponentState(ComponentTypeEnum.RESOURCE, resourceV.getUniqueId(), user, LifeCycleTransitionEnum.CERTIFY, changeInfo, false, true);
- return changeComponentState.isLeft() ? StorageOperationStatus.OK : StorageOperationStatus.GENERAL_ERROR;
- }
-
- private StorageOperationStatus handleError(JanusGraphOperationStatus err) {
- log.debug("receive janusgraph error {}", err);
- return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(
- JanusGraphOperationStatus.NOT_FOUND == err ? JanusGraphOperationStatus.OK : err);
- }
-
-}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigration.java
deleted file mode 100644
index a28c27fe6c..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SDCInstancesMigration.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.asdctool.migration.tasks.mig1806;
-
-import fj.data.Either;
-import org.openecomp.sdc.asdctool.migration.core.DBVersion;
-import org.openecomp.sdc.asdctool.migration.core.task.Migration;
-import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
-import org.openecomp.sdc.asdctool.migration.tasks.InstanceMigrationBase;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
-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.JsonParseFlagEnum;
-import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.CompositionDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.MapPropertiesDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.be.model.jsonjanusgraph.enums.JsonConstantKeysEnum;
-import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTemplateOperation;
-import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
-import org.openecomp.sdc.common.log.wrappers.Logger;
-import org.springframework.stereotype.Component;
-
-import java.math.BigInteger;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Optional;
-
-@Component
-public class SDCInstancesMigration extends InstanceMigrationBase implements Migration {
-
- private NodeTemplateOperation nodeTemplateOperation;
-
- private static final Logger log = Logger.getLogger(SDCInstancesMigration.class);
-
- private static final String ALLOTTED_CATEGORY = "Allotted Resource";
-
- private static final List<String> UUID_PROPS_NAMES = Arrays.asList("providing_service_uuid", "providing_service_uuid");
-
-
- public SDCInstancesMigration(JanusGraphDao janusGraphDao, NodeTemplateOperation nodeTemplateOperation) {
- super(janusGraphDao);
- this.nodeTemplateOperation = nodeTemplateOperation;
- }
-
- @Override
- public String description() {
- return "connect instances in container to its origins";
- }
-
- @Override
- public DBVersion getVersion() {
- return DBVersion.from(BigInteger.valueOf(1806), BigInteger.valueOf(0));
- }
-
- @Override
- public MigrationResult migrate() {
- StorageOperationStatus status = upgradeTopologyTemplates();
- return status == StorageOperationStatus.OK ? MigrationResult.success() : MigrationResult.error("failed to create connection between instances and origins. Error : " + status);
- }
-
- protected StorageOperationStatus handleOneContainer(GraphVertex containerVorig) {
- StorageOperationStatus status = StorageOperationStatus.OK;
-
- GraphVertex containerV = getVertexById(containerVorig.getUniqueId());
-
- boolean needConnectAllotted = false;
- ComponentTypeEnum componentType = containerV.getType();
- Map<String, MapPropertiesDataDefinition> instanceProperties = null;
- if (componentType == ComponentTypeEnum.RESOURCE) {
- Either<GraphVertex, JanusGraphOperationStatus> subcategoryV = janusGraphDao
- .getChildVertex(containerV, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.NoParse);
- if (subcategoryV.isRight()) {
- log.debug("Failed to fetch category vertex for resource {} error {} ", containerV.getUniqueId(), subcategoryV.right().value());
- return StorageOperationStatus.GENERAL_ERROR;
- }
- GraphVertex catV = subcategoryV.left().value();
- Map<GraphPropertyEnum, Object> metadataProperties = catV.getMetadataProperties();
-
- String name = (String) metadataProperties.get(GraphPropertyEnum.NAME);
- if (name.equals(ALLOTTED_CATEGORY)) {
- log.debug("Find allotted resource {}.", containerV.getUniqueId());
- needConnectAllotted = true;
- Either<Map<String, MapPropertiesDataDefinition>, StorageOperationStatus> instProperties = getInstProperties(containerV);
- if ( instProperties.isRight() ){
- return instProperties.right().value();
- }
- instanceProperties = instProperties.left().value();
- }
- }
- Map<String, CompositionDataDefinition> jsonComposition = (Map<String, CompositionDataDefinition>) containerV.getJson();
- if (jsonComposition != null && !jsonComposition.isEmpty()) {
- try {
- status = connectInstances(containerV, needConnectAllotted, instanceProperties, jsonComposition);
-
- } finally {
- if (status == StorageOperationStatus.OK) {
- janusGraphDao.commit();
- } else {
- janusGraphDao.rollback();
- }
- }
- }
- return status;
- }
-
-
- private Either<Map<String, MapPropertiesDataDefinition>, StorageOperationStatus> getInstProperties(GraphVertex containerV) {
- Map<String, MapPropertiesDataDefinition> instanceProperties;
- Either<GraphVertex, JanusGraphOperationStatus> instProps = janusGraphDao
- .getChildVertex(containerV, EdgeLabelEnum.INST_PROPERTIES, JsonParseFlagEnum.ParseAll);
-
- if (instProps.isRight()) {
- if (instProps.right().value() == JanusGraphOperationStatus.NOT_FOUND) {
- instanceProperties = new HashMap<>();
- } else {
- log.debug("Failed to fetch instance properties vertex for resource {} error {} ", containerV.getUniqueId(), instProps.right().value());
- return Either.right(StorageOperationStatus.GENERAL_ERROR);
- }
- } else {
- instanceProperties = (Map<String, MapPropertiesDataDefinition>) instProps.left().value().getJson();
- }
- return Either.left(instanceProperties);
- }
-
- private StorageOperationStatus connectInstances(GraphVertex containerV, boolean needConnectAllotted, Map<String, MapPropertiesDataDefinition> instanceProperties,
- Map<String, CompositionDataDefinition> jsonComposition) {
- StorageOperationStatus status = StorageOperationStatus.OK;
- CompositionDataDefinition compositionDataDefinition = jsonComposition.get(JsonConstantKeysEnum.COMPOSITION.getValue());
- Map<String, ComponentInstanceDataDefinition> componentInstances = compositionDataDefinition.getComponentInstances();
- for (Map.Entry<String, ComponentInstanceDataDefinition> entry : componentInstances.entrySet()) {
- status = handleInstance(containerV, needConnectAllotted, instanceProperties, entry);
- if ( status != StorageOperationStatus.OK){
- if ( status == StorageOperationStatus.NOT_FOUND ){
- log.debug("reset status and continue");
- status = StorageOperationStatus.OK;
- }else{
- log.debug("Failed handle instance. exit");
- break;
- }
- }
- }
- return status;
- }
-
- private StorageOperationStatus handleInstance(GraphVertex containerV, boolean needConnectAllotted, Map<String, MapPropertiesDataDefinition> instanceProperties, Map.Entry<String, ComponentInstanceDataDefinition> entry) {
- ComponentInstanceDataDefinition instance = entry.getValue();
- StorageOperationStatus status = nodeTemplateOperation.createInstanceEdge(containerV, instance);
- if (status != StorageOperationStatus.OK) {
- if ( status == StorageOperationStatus.NOT_FOUND ){
- Boolean highest = (Boolean) containerV.getMetadataProperties().get(GraphPropertyEnum.IS_HIGHEST_VERSION);
- log.debug("No origin for instance {} with ID {}. The component is highest ={}, Reset status and continue.. ", instance.getUniqueId(), instance.getComponentUid(), highest);
- status = StorageOperationStatus.OK;
- }else{
- log.debug("Failed to connect in container {} instance {} to origin {} error {} ", containerV.getUniqueId(), instance.getUniqueId(), instance.getComponentUid(), status);
- return status;
- }
- }
- if (needConnectAllotted) {
- status = connectAllotedInstances(containerV, instanceProperties, instance);
- }
- return status;
- }
-
- private StorageOperationStatus connectAllotedInstances(GraphVertex containerV, Map<String, MapPropertiesDataDefinition> instanceProperties, ComponentInstanceDataDefinition instance) {
- StorageOperationStatus status = StorageOperationStatus.OK;
- if ( instanceProperties != null ){
- MapPropertiesDataDefinition mapPropertiesDataDefinition = instanceProperties.get(instance.getUniqueId());
- if ( mapPropertiesDataDefinition != null ){
- status = checkAllottedPropertyAndConnect(containerV, instance, mapPropertiesDataDefinition);
- }else{
- log.debug("No isntances properties for instance {}", instance.getUniqueId());
- }
- }
- return status;
- }
-
- private StorageOperationStatus checkAllottedPropertyAndConnect(GraphVertex containerV, ComponentInstanceDataDefinition instance, MapPropertiesDataDefinition mapPropertiesDataDefinition) {
- Map<String, PropertyDataDefinition> mapToscaDataDefinition = mapPropertiesDataDefinition.getMapToscaDataDefinition();
- StorageOperationStatus status = StorageOperationStatus.OK;
- Optional<Entry<String, PropertyDataDefinition>> findFirst = mapToscaDataDefinition
- .entrySet()
- .stream()
- .filter(e -> UUID_PROPS_NAMES.contains(e.getKey()))
- .findFirst();
-
- if ( findFirst.isPresent() ){
- PropertyDataDefinition property = findFirst.get().getValue();
- String serviceUUID = property.getValue();
- if ( serviceUUID != null ){
- log.debug("Defined reference service on property {} value {} on instance {}", property.getName(), property.getValue(), instance.getUniqueId() );
- status = nodeTemplateOperation.createAllottedOfEdge(containerV.getUniqueId(), instance.getUniqueId(), serviceUUID);
- if ( status != StorageOperationStatus.OK ){
- if ( status == StorageOperationStatus.NOT_FOUND ){
- Boolean highest = (Boolean) containerV.getMetadataProperties().get(GraphPropertyEnum.IS_HIGHEST_VERSION);
- log.debug("No origin for allotted reference {} with UUID {}. the component highest = {}, Reset status and continue.. ", instance.getUniqueId(), serviceUUID, highest);
- status = StorageOperationStatus.OK;
- }else{
- log.debug("Failed to connect in container {} instance {} to allotted service {} error {} ", containerV.getUniqueId(), instance.getUniqueId(), instance.getComponentUid(), status);
- return status;
- }
- }
- }else{
- log.debug("No value for property {} on instance {}", property.getName(),instance.getUniqueId() );
- }
- }else{
- log.debug("No sercific properties of dependencies for instance {}", instance.getUniqueId());
- }
- return status;
- }
-
-}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigration.java
deleted file mode 100644
index ea1541ef8d..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1806/SdcArchiveMigration.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.asdctool.migration.tasks.mig1806;
-
-import fj.data.Either;
-import org.openecomp.sdc.asdctool.migration.core.DBVersion;
-import org.openecomp.sdc.asdctool.migration.core.task.Migration;
-import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
-import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
-import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
-import org.openecomp.sdc.be.dao.jsongraph.utils.IdBuilderUtils;
-import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.common.log.wrappers.Logger;
-import org.springframework.stereotype.Component;
-
-import java.math.BigInteger;
-
-@Component
-public class SdcArchiveMigration implements Migration {
- private static final Logger logger = Logger.getLogger(SdcArchiveMigration.class);
-
- private JanusGraphDao janusGraphDao;
-
- public SdcArchiveMigration(JanusGraphDao janusGraphDao) {
- this.janusGraphDao = janusGraphDao;
- }
-
- @Override
- public String description() {
- return "add archive node for archiving/restoring components ";
- }
-
- @Override
- public DBVersion getVersion() {
- return DBVersion.from(BigInteger.valueOf(1806), BigInteger.valueOf(0));
- }
-
- @Override
- public MigrationResult migrate() {
- JanusGraphOperationStatus status = null;
- try {
- status = getOrCreateArchiveRoot();
- return status == JanusGraphOperationStatus.OK ? MigrationResult.success() : MigrationResult.error("failed to create archive root node. error: " + status);
- } finally {
- commitOrRollBack(status);
- }
- }
-
- private void commitOrRollBack(JanusGraphOperationStatus status) {
- if (status == JanusGraphOperationStatus.OK) {
- janusGraphDao.commit();
- } else {
- janusGraphDao.rollback();
- }
- }
-
- private JanusGraphOperationStatus getOrCreateArchiveRoot() {
- logger.info("creating or getting catalog archive vertex");
- return janusGraphDao.getVertexByLabel(VertexTypeEnum.ARCHIVE_ROOT)
- .either(v -> JanusGraphOperationStatus.OK, s -> this.createRootArchiveVertex());
- }
-
- private JanusGraphOperationStatus createRootArchiveVertex() {
- GraphVertex archiveRootVertex = new GraphVertex(VertexTypeEnum.ARCHIVE_ROOT);
- archiveRootVertex.setUniqueId(IdBuilderUtils.generateUniqueId());
- archiveRootVertex.addMetadataProperty(GraphPropertyEnum.LABEL, VertexTypeEnum.ARCHIVE_ROOT);
- archiveRootVertex.addMetadataProperty(GraphPropertyEnum.UNIQUE_ID, archiveRootVertex.getUniqueId());
-
- logger.info("Creating root archive vertex {}", archiveRootVertex.getUniqueId());
-
- final Either<GraphVertex, JanusGraphOperationStatus> vertexE = janusGraphDao.createVertex(archiveRootVertex);
-
- return vertexE.isLeft() ? JanusGraphOperationStatus.OK : vertexE.right().value();
- }
-
-}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/InterfaceOperationMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/InterfaceOperationMigration.java
deleted file mode 100644
index fd71336fd5..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/InterfaceOperationMigration.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright © 2016-2018 European Support Limited
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.openecomp.sdc.asdctool.migration.tasks.mig1902;
-
-import fj.data.Either;
-import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.openecomp.sdc.asdctool.migration.core.DBVersion;
-import org.openecomp.sdc.asdctool.migration.core.task.Migration;
-import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
-import org.openecomp.sdc.be.config.ConfigurationManager;
-import org.openecomp.sdc.be.dao.api.ActionStatus;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
-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.JsonParseFlagEnum;
-import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
-import org.openecomp.sdc.be.datatypes.elements.InterfaceDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.MapInterfaceDataDefinition;
-import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.be.model.User;
-import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation;
-import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
-import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter;
-import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation;
-import org.openecomp.sdc.common.log.wrappers.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import java.math.BigInteger;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
-
-@org.springframework.stereotype.Component
-public class InterfaceOperationMigration implements Migration {
-
- private static final Logger LOGGER = Logger.getLogger(InterfaceOperationMigration.class);
-
- @Autowired
- private JanusGraphDao janusGraphDao;
- @Autowired
- private UserAdminOperation userAdminOperation;
- @Autowired
- private InterfaceOperation interfaceOperation;
-
- @Override
- public String description() {
- return "Update interface operation data to latest data model";
- }
-
- @Override
- public DBVersion getVersion() {
- return DBVersion.from(BigInteger.valueOf(1902), BigInteger.valueOf(0));
- }
-
- @Override
- public MigrationResult migrate() {
- final String userId = ConfigurationManager.getConfigurationManager().getConfiguration().getAutoHealingOwner();
-
- Either<User, ActionStatus> userData = userAdminOperation.getUserData(userId, false);
- if (userData.isRight()) {
- return MigrationResult.error(
- "failed to update interface operation data. Failed to resolve user : "
- + userId + " error " + userData.right().value());
- }
-
- StorageOperationStatus status = getAndUpdateAllComponents();
- return status == StorageOperationStatus.OK ? MigrationResult.success()
- : MigrationResult.error("failed to update interface operation data . Error : " + status);
- }
-
- private StorageOperationStatus getAndUpdateAllComponents(){
- Map<GraphPropertyEnum, Object> hasNotProps = new EnumMap<>(GraphPropertyEnum.class);
- hasNotProps.put(GraphPropertyEnum.IS_DELETED, true);
- return janusGraphDao
- .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, null, hasNotProps, JsonParseFlagEnum.ParseAll)
- .either(this::updateComponentVertices, this::handleError);
- }
-
- private StorageOperationStatus updateComponentVertices(List<GraphVertex> containersV) {
- StorageOperationStatus status = StorageOperationStatus.OK;
- for (GraphVertex container : containersV) {
- status = updateDataOnGraph(container);
- if (status != StorageOperationStatus.OK) {
- break;
- }
- }
- return status;
- }
-
- private StorageOperationStatus handleError(JanusGraphOperationStatus err) {
- janusGraphDao.rollback();
- return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(
- JanusGraphOperationStatus.NOT_FOUND == err ? JanusGraphOperationStatus.OK : err);
- }
-
- private StorageOperationStatus updateDataOnGraph(GraphVertex componentVertex) {
- try {
- Either<GraphVertex, JanusGraphOperationStatus> interfaceVertexEither =
- janusGraphDao
- .getChildVertex(componentVertex, EdgeLabelEnum.INTERFACE, JsonParseFlagEnum.ParseJson);
- if (interfaceVertexEither.isLeft()) {
- GraphVertex interfaceVertex = interfaceVertexEither.left().value();
- Map<String, InterfaceDataDefinition> interfaceDefinitions = (Map<String, InterfaceDataDefinition>) interfaceVertex.getJson();
- if(MapUtils.isNotEmpty(interfaceDefinitions)){
- for (Map.Entry<String, InterfaceDataDefinition> interfaceDefinition : interfaceDefinitions.entrySet()) {
- if (StringUtils.isEmpty(interfaceDefinition.getValue().getType())) {
- interfaceDefinition.getValue().setType(interfaceDefinition.getValue().getToscaResourceName());
- }
- }
- interfaceVertex.setJson(interfaceDefinitions);
- Either<GraphVertex, JanusGraphOperationStatus> updateInterfaceVertexEither = janusGraphDao
- .updateVertex(interfaceVertex);
- if(updateInterfaceVertexEither.isRight()){
- return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(updateInterfaceVertexEither.right().value());
- }
- }
-
- StorageOperationStatus statusRes = interfaceOperation.removeToscaDataVertex(
- interfaceVertex, EdgeLabelEnum.INTERFACE_OPERATION, VertexTypeEnum.INTERFACE_OPERATION);
- if (statusRes != StorageOperationStatus.NOT_FOUND && statusRes != StorageOperationStatus.OK) {
- return statusRes;
- }
- }
-
- Either<GraphVertex, JanusGraphOperationStatus> instInterfaceVertexEither =
- janusGraphDao.getChildVertex(componentVertex, EdgeLabelEnum.INST_INTERFACES, JsonParseFlagEnum.ParseJson);
- if (instInterfaceVertexEither.isLeft()) {
- GraphVertex instInterfaceVertex = instInterfaceVertexEither.left().value();
- Map<String, MapInterfaceDataDefinition> instInterfaceDefinitions = (Map<String, MapInterfaceDataDefinition>) instInterfaceVertex.getJson();
- if(MapUtils.isNotEmpty(instInterfaceDefinitions)){
- for (Map.Entry<String, MapInterfaceDataDefinition> mapInstInterfaceDataDefinitions : instInterfaceDefinitions.entrySet()) {
- for (Map.Entry<String, InterfaceDataDefinition> instInterfaceDataDefinitions : mapInstInterfaceDataDefinitions.getValue().getMapToscaDataDefinition().entrySet()) {
- if (StringUtils.isEmpty(instInterfaceDataDefinitions.getValue().getType())) {
- instInterfaceDataDefinitions.getValue().setType(instInterfaceDataDefinitions.getValue().getToscaResourceName());
- }
- }
- }
- instInterfaceVertex.setJson(instInterfaceDefinitions);
- Either<GraphVertex, JanusGraphOperationStatus> updateInstInterfaceVertexEither = janusGraphDao
- .updateVertex(instInterfaceVertex);
- if(updateInstInterfaceVertexEither.isRight()){
- return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(updateInstInterfaceVertexEither.right().value());
- }
- }
- }
-
- janusGraphDao.commit();
- } catch (Exception e) {
- LOGGER.debug("Interface operation migration failed with error : ", e);
- janusGraphDao.rollback();
- return StorageOperationStatus.GENERAL_ERROR;
- }
-
- return StorageOperationStatus.OK;
- }
-} \ No newline at end of file
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/SdcConsumerMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/SdcConsumerMigration.java
deleted file mode 100644
index 16f0c485dc..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/SdcConsumerMigration.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.asdctool.migration.tasks.mig1902;
-
-import fj.data.Either;
-import org.openecomp.sdc.asdctool.migration.core.DBVersion;
-import org.openecomp.sdc.asdctool.migration.core.task.Migration;
-import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
-import org.openecomp.sdc.be.resources.data.ConsumerData;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-import java.math.BigInteger;
-import java.util.List;
-
-@Component
-public class SdcConsumerMigration implements Migration {
-
- private static final Logger logger = LoggerFactory.getLogger(SdcConsumerMigration.class);
-
- private JanusGraphGenericDao janusGraphGenericDao;
-
- public SdcConsumerMigration(JanusGraphGenericDao janusGraphGenericDao) {
- this.janusGraphGenericDao = janusGraphGenericDao;
- }
-
- @Override
- public String description() {
- return "remove all consumer nodes";
- }
-
- @Override
- public DBVersion getVersion() {
- return DBVersion.from(BigInteger.valueOf(1902), BigInteger.valueOf(0));
- }
-
- @Override
- public MigrationResult migrate() {
- JanusGraphOperationStatus status = null;
- try {
- status = handleConsumerNodes();
- if (status == JanusGraphOperationStatus.OK){
- logger.info("removed all consumer nodes.");
- return MigrationResult.success();
- } else {
- return MigrationResult.error("failed to remove consumer nodes. error: " + status);
- }
- } finally {
- commitOrRollBack(status);
- }
- }
-
- private void commitOrRollBack(JanusGraphOperationStatus status) {
- if (status == JanusGraphOperationStatus.OK) {
- janusGraphGenericDao.commit();
- } else {
- janusGraphGenericDao.rollback();
- }
- }
-
- private JanusGraphOperationStatus handleConsumerNodes() {
- logger.info("getting all consumer nodes.");
- return janusGraphGenericDao.getAll(NodeTypeEnum.ConsumerCredentials, ConsumerData.class)
- .either(this::removeConsumerNodes, this::handleError);
- }
-
- private JanusGraphOperationStatus removeConsumerNodes(List<ConsumerData> consumerNodes){
- logger.info("found {} consumer nodes.", consumerNodes.size());
- return consumerNodes.stream()
- .map(consumerNode -> janusGraphGenericDao.deleteNode(consumerNode, ConsumerData.class))
- .filter(Either::isRight)
- .map(either -> either.right().value())
- .findAny()
- .orElse(JanusGraphOperationStatus.OK);
- }
-
- private JanusGraphOperationStatus handleError(JanusGraphOperationStatus status){
- if (status == JanusGraphOperationStatus.NOT_FOUND) {
- logger.info("found 0 consumer nodes.");
- return JanusGraphOperationStatus.OK;
- } else{
- return status;
- }
- }
-
-}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1911/SdcDeploymentArtTimeOutMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1911/SdcDeploymentArtTimeOutMigration.java
deleted file mode 100644
index af067403e7..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1911/SdcDeploymentArtTimeOutMigration.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.asdctool.migration.tasks.mig1911;
-
-import fj.data.Either;
-import org.openecomp.sdc.asdctool.migration.core.DBVersion;
-import org.openecomp.sdc.asdctool.migration.core.task.Migration;
-import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
-import org.openecomp.sdc.asdctool.migration.tasks.InstanceMigrationBase;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
-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.JsonParseFlagEnum;
-import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
-import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.MapArtifactDataDefinition;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
-import org.openecomp.sdc.common.api.ArtifactTypeEnum;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-import java.math.BigInteger;
-import java.util.Collection;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Predicate;
-import java.util.stream.Collectors;
-
-@Component
-public class SdcDeploymentArtTimeOutMigration extends InstanceMigrationBase implements Migration {
-
- private static final Logger log = LoggerFactory.getLogger(SdcDeploymentArtTimeOutMigration.class);
- private static Integer defaultTimeOut = 120;
-
- public SdcDeploymentArtTimeOutMigration(JanusGraphDao janusGraphDao) {
- super(janusGraphDao);
- }
-
- @Override
- public String description() {
- return "update instance deployment artifact timeOut to default value 120 minutes";
- }
-
- @Override
- public DBVersion getVersion() {
- return DBVersion.from(BigInteger.valueOf(1911), BigInteger.valueOf(0));
- }
-
- @Override
- public MigrationResult migrate() {
- StorageOperationStatus status = updateDeploymentArtifactTimeOut();
- return status == StorageOperationStatus.OK ?
- MigrationResult.success()
- : MigrationResult.error("failed to update instance deployment artifact timeOut. Error : " + status);
- }
-
- protected StorageOperationStatus updateDeploymentArtifactTimeOut() {
- Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
- Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
- Either<List<GraphVertex>, JanusGraphOperationStatus> byCriteria = janusGraphDao
- .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch,
- JsonParseFlagEnum.ParseAll);
- return byCriteria.either(this::proceed, this::handleError);
- }
-
- @Override
- protected StorageOperationStatus handleOneContainer(GraphVertex containerVorig) {
- StorageOperationStatus status = StorageOperationStatus.NOT_FOUND;
- GraphVertex containerV = getVertexById(containerVorig.getUniqueId());
-
- if (containerV == null) {
- log.error("Unexpected null value for `containerV`");
- } else {
- try {
- Either<GraphVertex, JanusGraphOperationStatus> childVertex = janusGraphDao
- .getChildVertex(containerV, EdgeLabelEnum.INST_DEPLOYMENT_ARTIFACTS, JsonParseFlagEnum.ParseAll);
- GraphVertex instDeployArt = childVertex.left().value();
- Collection<MapArtifactDataDefinition> values = (Collection<MapArtifactDataDefinition>) instDeployArt
- .getJson().values();
- List<ArtifactDataDefinition> artifactDataDefinitionsList = values.stream()
- .map(f -> f.getMapToscaDataDefinition().values())
- .flatMap(f -> f.stream().filter(isRelevantArtifact()))
- .collect(Collectors.toList());
- artifactDataDefinitionsList.forEach(t -> t.setTimeout(defaultTimeOut));
- status = updateVertexAndCommit(instDeployArt);
-
- } catch (NullPointerException e) {
- log.error(
- "Null Pointer Exception occurred - this mean we have zombie vertex, migration task will continue anyway",
- e);
- status = StorageOperationStatus.OK;
- } catch (Exception e) {
- //it is happy flow as well
- log.error("Exception occurred:", e);
- log.error(
- "Migration task will continue anyway, please find below vertex details related to this exception",
- e);
- log.error("containerV.getUniqueId() {} ---> ", containerV.getUniqueId());
-
- status = StorageOperationStatus.OK;
- } finally {
- if (status != StorageOperationStatus.OK) {
- janusGraphDao.rollback();
- log.info("failed to update vertex ID {} ", containerV.getUniqueId());
- if (status == StorageOperationStatus.NOT_FOUND) {
- //it is happy flow as well
- status = StorageOperationStatus.OK;
- }
- } else {
- log.info("vertex ID {} successfully updated", containerV.getUniqueId());
- }
- }
- }
-
- return status;
- }
-
- private static Predicate<ArtifactDataDefinition> isRelevantArtifact() {
-
- return p -> ((p.getArtifactType().equals(ArtifactTypeEnum.HEAT.getType()) || p.getArtifactType()
- .equals(ArtifactTypeEnum.HEAT_VOL.getType()) || p.getArtifactType()
- .equals(ArtifactTypeEnum.HEAT_NET.getType()))
- && p.getTimeout() != defaultTimeOut);
-
- }
-
-}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesCERTIFIEDstateMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesCERTIFIEDstateMigration.java
deleted file mode 100644
index 9cf56cf325..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesCERTIFIEDstateMigration.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.asdctool.migration.tasks.mig2002;
-
-import fj.data.Either;
-import org.apache.tinkerpop.gremlin.structure.Direction;
-import org.openecomp.sdc.asdctool.enums.DistributionStatusEnum;
-import org.openecomp.sdc.asdctool.enums.LifecycleStateEnum;
-import org.openecomp.sdc.asdctool.migration.core.DBVersion;
-import org.openecomp.sdc.asdctool.migration.core.task.Migration;
-import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
-import org.openecomp.sdc.asdctool.migration.tasks.InstanceMigrationBase;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
-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.EdgePropertyEnum;
-import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
-import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-import java.math.BigInteger;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class SdcCollapsingRolesCERTIFIEDstateMigration extends InstanceMigrationBase implements Migration {
-
- private static final Logger log = LoggerFactory.getLogger(SdcCollapsingRolesCERTIFIEDstateMigration.class);
-
- public SdcCollapsingRolesCERTIFIEDstateMigration(JanusGraphDao janusGraphDao) {
- super(janusGraphDao);
- }
-
- @Override
- public String description() {
- return "remove LS=READY_FOR_CERTIFICATION edge from service node + migrate DISTRIBUTION approved/rejected states to <waiting for distribution> state";
- }
-
- @Override
- public DBVersion getVersion() {
- return DBVersion.from(BigInteger.valueOf(2002), BigInteger.valueOf(0));
- }
-
- @Override
- public MigrationResult migrate() {
- StorageOperationStatus status = updateServiceLifeCycleState();
- return status == StorageOperationStatus.OK ?
- MigrationResult.success() : MigrationResult.error("failed to service state. Error : " + status);
- }
-
- protected StorageOperationStatus updateServiceLifeCycleState() {
- Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
- propertiesToMatch.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
- Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
- Either<List<GraphVertex>, JanusGraphOperationStatus> byCriteria = janusGraphDao
- .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch,
- JsonParseFlagEnum.ParseAll);
- return byCriteria.either(this::proceed, this::handleError);
- }
-
- @Override
- protected StorageOperationStatus handleOneContainer(GraphVertex containerVorig) {
- StorageOperationStatus status = StorageOperationStatus.NOT_FOUND;
- GraphVertex containerV = getVertexById(containerVorig.getUniqueId());
-
- if (containerV == null) {
- log.error("Unexpected null value for `containerV`");
- } else {
- try {
-
- //update edges to meet above change
- // update LS eges from RFC to NOT_CERTIFIED_CHECKIN
-
- updateEdgeProperty(EdgePropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN.name(),
- getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.LAST_STATE));
-
- if (containerV.getMetadataProperty(GraphPropertyEnum.DISTRIBUTION_STATUS)
- .equals(DistributionStatusEnum.DISTRIBUTION_APPROVED.name()) || containerV
- .getMetadataProperty(GraphPropertyEnum.DISTRIBUTION_STATUS)
- .equals(DistributionStatusEnum.DISTRIBUTION_REJECTED.name())) {
-
- // update vertex state property from DISTRIBUTION_APPROVED/REJECTED to DISTRIBUTION_NOT_APPROVED state
-
- Map<GraphPropertyEnum, Object> metadataProperties = containerV.getMetadataProperties();
- metadataProperties.put(GraphPropertyEnum.DISTRIBUTION_STATUS,
- DistributionStatusEnum.DISTRIBUTION_NOT_APPROVED.name());
- containerV.setMetadataProperties(metadataProperties);
-
- //update edges to meet above change
- //delete LAST_DISTRIBUTION_STATE_MODIFIER edge
-
- removeEdges(
- getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.LAST_DISTRIBUTION_STATE_MODIFIER));
-
- }
-
- status = updateVertexAndCommit(containerV);
-
- } catch (NullPointerException e) {
- log.error(
- "Null Pointer Exception occurred - this mean we have zombie vertex, migration task will continue anyway",
- e);
- status = StorageOperationStatus.EXEUCTION_FAILED;
- } catch (Exception e) {
- //it is happy flow as well
- log.error("Exception occurred:", e);
- log.error(
- "Migration task will continue anyway, please find below vertex details related to this exception",
- e);
- log.error("containerV.getUniqueId() ---> {} ", containerV.getUniqueId());
-
- } finally {
- if (status != StorageOperationStatus.OK) {
- janusGraphDao.rollback();
- log.info("failed to update vertex ID {} ", containerV.getUniqueId());
- log.info("Storage Operation Status {}", status.toString());
- } else {
- log.info("vertex ID {} successfully updated", containerV.getUniqueId());
- }
- }
- }
-
- return status;
- }
-
-
-}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesCIPstateMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesCIPstateMigration.java
deleted file mode 100644
index 463ccd8695..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesCIPstateMigration.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.asdctool.migration.tasks.mig2002;
-
-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.enums.LifecycleStateEnum;
-import org.openecomp.sdc.asdctool.migration.core.DBVersion;
-import org.openecomp.sdc.asdctool.migration.core.task.Migration;
-import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
-import org.openecomp.sdc.asdctool.migration.tasks.InstanceMigrationBase;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
-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.EdgePropertyEnum;
-import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
-import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-import java.math.BigInteger;
-import java.util.EnumMap;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class SdcCollapsingRolesCIPstateMigration extends InstanceMigrationBase implements Migration {
-
- private static final Logger log = LoggerFactory.getLogger(SdcCollapsingRolesCIPstateMigration.class);
-
- public SdcCollapsingRolesCIPstateMigration(JanusGraphDao janusGraphDao) {
- super(janusGraphDao);
- }
-
- @Override
- public String description() {
- return "update Service state from CERTIFICATION_IN_PROGRES to NOT_CERTIFIED_CHECKOUT state ";
- }
-
- @Override
- public DBVersion getVersion() {
- return DBVersion.from(BigInteger.valueOf(2002), BigInteger.valueOf(0));
- }
-
- @Override
- public MigrationResult migrate() {
- StorageOperationStatus status = updateServiceLifeCycleState();
- return status == StorageOperationStatus.OK ?
- MigrationResult.success() : MigrationResult.error("failed to service state. Error : " + status);
- }
-
- protected StorageOperationStatus updateServiceLifeCycleState() {
- Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
- propertiesToMatch.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS.name());
- propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
- Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
- Either<List<GraphVertex>, JanusGraphOperationStatus> byCriteria = janusGraphDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
- return byCriteria.either(this::proceed, this::handleError);
- }
-
- @Override
- protected StorageOperationStatus handleOneContainer(GraphVertex containerVorig) {
- StorageOperationStatus status = StorageOperationStatus.NOT_FOUND;
- GraphVertex containerV = getVertexById(containerVorig.getUniqueId());
- try {
-
- // update vertex state property from READY_FOR_CERTIFICATION to NOT_CERTIFIED_CHECKIN state
-
- Map<GraphPropertyEnum, Object> metadataProperties = containerV.getMetadataProperties();
- metadataProperties.put(GraphPropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN.name());
- containerV.setMetadataProperties(metadataProperties);
-
- //update edges to meet above change
- // remove STATE and LAST_MODIFIER edges
- removeEdges(getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.STATE));
- removeEdges(getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.LAST_MODIFIER));
-
- //find designer with LS = NOT_CERTIFIED_CHECKIN
- Vertex relevantDesigner = findRelevantDesigner(getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.LAST_STATE));
- removeEdges(getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.LAST_STATE));
- Map<EdgePropertyEnum, Object> edgeProperties = new HashMap<>();
- edgeProperties.put(EdgePropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN.name());
- JanusGraphOperationStatus createSTedgeStatus = janusGraphDao.createEdge(relevantDesigner, containerV.getVertex(), EdgeLabelEnum.STATE, edgeProperties);
- JanusGraphOperationStatus createLMedgeStatus = janusGraphDao.createEdge(relevantDesigner, containerV.getVertex(), EdgeLabelEnum.LAST_MODIFIER, new HashMap<>());
-
- status = updateVertexAndCommit(containerV);
-
- } catch (NullPointerException e) {
- log.error("Null Pointer Exception occurred - this mean we have zombie vertex, migration task will continue anyway", e);
- status = StorageOperationStatus.EXEUCTION_FAILED;
- } catch (Exception e) {
- //it is happy flow as well
- log.error("Exception occurred:", e);
- log.error("Migration task will continue anyway, please find below vertex details related to this exception", e);
- if (containerV != null) {
- log.error("containerV.getUniqueId() ---> {} ", containerV.getUniqueId());
- }
-
- } finally {
- if (status != StorageOperationStatus.OK) {
- janusGraphDao.rollback();
- log.info("failed to update vertex ID {} ", containerV.getUniqueId());
- log.info("Storage Operation Status {}", status.toString());
- } else {
- log.info("vertex ID {} successfully updated", containerV.getUniqueId());
- }
-
- }
- return status;
- }
-
- private Vertex findRelevantDesigner(Iterator<Edge> edges) {
- Vertex vertex = null;
- while (edges.hasNext()) {
- Edge edge = edges.next();
- String state = (String) janusGraphDao.getProperty(edge, EdgePropertyEnum.STATE);
- if (state.equals(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN.name())) {
- vertex = edge.outVertex();
- }
- }
- return vertex;
- }
-
-}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesRFCstateMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesRFCstateMigration.java
deleted file mode 100644
index 559715ef5d..0000000000
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig2002/SdcCollapsingRolesRFCstateMigration.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.asdctool.migration.tasks.mig2002;
-
-import fj.data.Either;
-import org.apache.tinkerpop.gremlin.structure.Direction;
-import org.janusgraph.core.JanusGraphVertex;
-import org.openecomp.sdc.asdctool.enums.LifecycleStateEnum;
-import org.openecomp.sdc.asdctool.migration.core.DBVersion;
-import org.openecomp.sdc.asdctool.migration.core.task.Migration;
-import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
-import org.openecomp.sdc.asdctool.migration.tasks.InstanceMigrationBase;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
-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.EdgePropertyEnum;
-import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
-import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-import java.math.BigInteger;
-import java.util.EnumMap;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class SdcCollapsingRolesRFCstateMigration extends InstanceMigrationBase implements Migration {
-
- private static final Logger log = LoggerFactory.getLogger(SdcCollapsingRolesRFCstateMigration.class);
-
- public SdcCollapsingRolesRFCstateMigration(JanusGraphDao janusGraphDao) {
- super(janusGraphDao);
- }
-
- @Override
- public String description() {
- return "update Service state from READY_FOR_CERTIFICATION to NOT_CERTIFIED_CHECKOUT state ";
- }
-
- @Override
- public DBVersion getVersion() {
- return DBVersion.from(BigInteger.valueOf(2002), BigInteger.valueOf(0));
- }
-
- @Override
- public MigrationResult migrate() {
- StorageOperationStatus status = updateServiceLifeCycleState();
- return status == StorageOperationStatus.OK ?
- MigrationResult.success() : MigrationResult.error("failed to service state. Error : " + status);
- }
-
- protected StorageOperationStatus updateServiceLifeCycleState() {
- Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
- propertiesToMatch.put(GraphPropertyEnum.STATE, LifecycleStateEnum.READY_FOR_CERTIFICATION.name());
- propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
- Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
- Either<List<GraphVertex>, JanusGraphOperationStatus> byCriteria = janusGraphDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
- return byCriteria.either(this::proceed, this::handleError);
- }
-
- @Override
- protected StorageOperationStatus handleOneContainer(GraphVertex containerVorig) {
- StorageOperationStatus status = StorageOperationStatus.NOT_FOUND;
- GraphVertex containerV = getVertexById(containerVorig.getUniqueId());
- try {
-
- // update vertex state property from READY_FOR_CERTIFICATION to NOT_CERTIFIED_CHECKIN state
-
- Map<GraphPropertyEnum, Object> metadataProperties = containerV.getMetadataProperties();
- metadataProperties.put(GraphPropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN.name());
- containerV.setMetadataProperties(metadataProperties);
-
- //update edges to meet above change
-
- List<JanusGraphVertex> stateEdgesOutVertexList = getVertexByEdgeSide(getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.STATE), EdgeSide.OUT);
- List<JanusGraphVertex> lastStateEdgesOutVertexList = getVertexByEdgeSide(getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.LAST_STATE), EdgeSide.OUT);
-
- if (sameUser(stateEdgesOutVertexList, lastStateEdgesOutVertexList)) {
- updateEdgeProperty(EdgePropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN.name(), getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.STATE));
- removeEdges(getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.LAST_STATE));
- } else {
- removeEdges(getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.STATE));
- removeEdges(getVertexEdge(containerV, Direction.IN, EdgeLabelEnum.LAST_STATE));
- Map<EdgePropertyEnum, Object> edgeProperties = new HashMap<>();
- edgeProperties.put(EdgePropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN.name());
- janusGraphDao.createEdge(lastStateEdgesOutVertexList.get(0), containerV.getVertex(), EdgeLabelEnum.STATE, edgeProperties);
-
- }
-
- status = updateVertexAndCommit(containerV);
-
- } catch (NullPointerException e) {
- log.error("Null Pointer Exception occurred - this mean we have zombie vertex, migration task will continue anyway", e);
- status = StorageOperationStatus.EXEUCTION_FAILED;
- } catch (Exception e) {
- //it is happy flow as well
- log.error("Exception occurred:", e);
- log.error("Migration task will ?" +
- "" +
- "" +
- ", please find below vertex details related to this exception", e);
- if (containerV != null) {
- log.error("containerV.getUniqueId() ---> {} ", containerV.getUniqueId());
- }
-
- } finally {
- if (status != StorageOperationStatus.OK) {
- janusGraphDao.rollback();
- log.info("failed to update vertex ID {} ", containerV.getUniqueId());
- log.info("Storage Operation Status {}", status.toString());
- } else {
- log.info("vertex ID {} successfully updated", containerV.getUniqueId());
- }
-
- }
- return status;
- }
-
-
-}