aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java')
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java1189
1 files changed, 593 insertions, 596 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java
index 8f34b3207e..349ee289b7 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java
@@ -20,12 +20,8 @@
package org.openecomp.sdc.be.model.operations.impl;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
+import com.thinkaurelius.titan.core.TitanVertex;
+import fj.data.Either;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
@@ -47,775 +43,776 @@ import org.openecomp.sdc.be.resources.data.AdditionalInfoParameterData;
import org.openecomp.sdc.be.resources.data.ResourceMetadataData;
import org.openecomp.sdc.be.resources.data.ServiceMetadataData;
import org.openecomp.sdc.be.resources.data.UniqueIdData;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.openecomp.sdc.common.log.wrappers.Logger;
import org.springframework.stereotype.Component;
-import com.thinkaurelius.titan.core.TitanVertex;
-
-import fj.data.Either;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
@Component("additional-information-operation")
public class AdditionalInformationOperation implements IAdditionalInformationOperation {
+ private static final String GOING_TO_EXECUTE_COMMIT_ON_GRAPH = "Going to execute commit on graph.";
+ private static final String GOING_TO_EXECUTE_ROLLBACK_ON_GRAPH = "Going to execute rollback on graph.";
+ private static final String ADDITIONAL_INFORMATION_OF = "additional information of ";
public static final String EMPTY_VALUE = null;
- public AdditionalInformationOperation() {
- super();
- }
-
- private static Logger log = LoggerFactory.getLogger(AdditionalInformationOperation.class.getName());
-
- @javax.annotation.Resource
- private TitanGenericDao titanGenericDao;
-
- @Override
- public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String key, String value) {
-
- TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
- if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
- return Either.right(verifyNodeTypeVsComponent);
- }
-
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
- NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
+ public AdditionalInformationOperation() {
+ super();
+ }
+
+ private static final Logger log = Logger.getLogger(AdditionalInformationOperation.class.getName());
+
+ @javax.annotation.Resource
+ private TitanGenericDao titanGenericDao;
+
+ @Override
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String key, String value) {
+
+ TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
+ if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
+ return Either.right(verifyNodeTypeVsComponent);
+ }
- if (getResult.isRight()) {
- TitanOperationStatus status = getResult.right().value();
- return Either.right(status);
- }
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
- ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
- AdditionalInfoParameterData parameterData = immutablePair.getLeft();
- Map<String, String> parameters = parameterData.getParameters();
- if (parameters == null) {
- parameters = new HashMap<String, String>();
- parameterData.setParameters(parameters);
- }
- Map<String, String> idToKey = parameterData.getIdToKey();
- if (idToKey == null) {
- idToKey = new HashMap<String, String>();
- parameterData.setIdToKey(idToKey);
- }
+ if (getResult.isRight()) {
+ TitanOperationStatus status = getResult.right().value();
+ return Either.right(status);
+ }
- Integer lastCreatedCounter = parameterData.getAdditionalInfoParameterDataDefinition().getLastCreatedCounter();
- lastCreatedCounter++;
+ ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
+ AdditionalInfoParameterData parameterData = immutablePair.getLeft();
+ Map<String, String> parameters = parameterData.getParameters();
+ if (parameters == null) {
+ parameters = new HashMap<>();
+ parameterData.setParameters(parameters);
+ }
+ Map<String, String> idToKey = parameterData.getIdToKey();
+ if (idToKey == null) {
+ idToKey = new HashMap<>();
+ parameterData.setIdToKey(idToKey);
+ }
- if (parameters.containsKey(key)) {
- log.debug("The key {} already exists under component {}", key, componentId);
- return Either.right(TitanOperationStatus.ALREADY_EXIST);
- }
+ Integer lastCreatedCounter = parameterData.getAdditionalInfoParameterDataDefinition().getLastCreatedCounter();
+ lastCreatedCounter++;
- idToKey.put(String.valueOf(lastCreatedCounter), key);
- parameters.put(key, value);
- parameterData.getAdditionalInfoParameterDataDefinition().setLastCreatedCounter(lastCreatedCounter);
+ if (parameters.containsKey(key)) {
+ log.debug("The key {} already exists under component {}", key, componentId);
+ return Either.right(TitanOperationStatus.ALREADY_EXIST);
+ }
- Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
-
- if (updateNode.isRight()) {
- TitanOperationStatus status = updateNode.right().value();
- BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("UpdateAdditionalInformationParameter", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
- return Either.right(status);
- }
+ idToKey.put(String.valueOf(lastCreatedCounter), key);
+ parameters.put(key, value);
+ parameterData.getAdditionalInfoParameterDataDefinition().setLastCreatedCounter(lastCreatedCounter);
- AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, updateNode.left().value());
+ Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
+
+ if (updateNode.isRight()) {
+ TitanOperationStatus status = updateNode.right().value();
+ BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("UpdateAdditionalInformationParameter", ADDITIONAL_INFORMATION_OF + nodeType.getName() + " " + componentId, String.valueOf(status));
+ return Either.right(status);
+ }
- return Either.left(informationDefinition);
+ AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, updateNode.left().value());
- }
+ return Either.left(informationDefinition);
- @Override
- public Either<AdditionalInformationDefinition, TitanOperationStatus> updateAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String id, String key, String value) {
+ }
- TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
- if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
- return Either.right(verifyNodeTypeVsComponent);
- }
+ @Override
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> updateAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String id, String key, String value) {
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
- NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
+ TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
+ if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
+ return Either.right(verifyNodeTypeVsComponent);
+ }
- if (getResult.isRight()) {
- TitanOperationStatus status = getResult.right().value();
- return Either.right(status);
- }
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
- ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
- AdditionalInfoParameterData parameterData = immutablePair.getLeft();
- Map<String, String> parameters = parameterData.getParameters();
- Map<String, String> idToKey = parameterData.getIdToKey();
- if (idToKey == null || false == idToKey.containsKey(id)) {
- return Either.right(TitanOperationStatus.INVALID_ID);
- }
+ if (getResult.isRight()) {
+ TitanOperationStatus status = getResult.right().value();
+ return Either.right(status);
+ }
- String origKey = idToKey.get(id);
+ ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
+ AdditionalInfoParameterData parameterData = immutablePair.getLeft();
+ Map<String, String> parameters = parameterData.getParameters();
+ Map<String, String> idToKey = parameterData.getIdToKey();
+ if (idToKey == null || !idToKey.containsKey(id)) {
+ return Either.right(TitanOperationStatus.INVALID_ID);
+ }
- if (false == origKey.equals(key)) {
- if (parameters.containsKey(key)) {
- log.debug("The key {} already exists", key);
- return Either.right(TitanOperationStatus.ALREADY_EXIST);
- }
- String removed = parameters.remove(origKey);
- log.trace("The key-value {} = {} was removed from additionalInformation", origKey, removed);
- }
- parameters.put(key, value);
- idToKey.put(id, key);
+ String origKey = idToKey.get(id);
- Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
+ if (!origKey.equals(key)) {
+ if (parameters.containsKey(key)) {
+ log.debug("The key {} already exists", key);
+ return Either.right(TitanOperationStatus.ALREADY_EXIST);
+ }
+ String removed = parameters.remove(origKey);
+ log.trace("The key-value {} = {} was removed from additionalInformation", origKey, removed);
+ }
+ parameters.put(key, value);
+ idToKey.put(id, key);
- if (updateNode.isRight()) {
- TitanOperationStatus status = updateNode.right().value();
- BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("UpdateAdditionalInformationParameter", "additional information of resource " + componentId, String.valueOf(status));
- return Either.right(status);
- }
+ Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
- AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, updateNode.left().value());
+ if (updateNode.isRight()) {
+ TitanOperationStatus status = updateNode.right().value();
+ BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("UpdateAdditionalInformationParameter", "additional information of resource " + componentId, String.valueOf(status));
+ return Either.right(status);
+ }
- return Either.left(informationDefinition);
+ AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, updateNode.left().value());
- }
+ return Either.left(informationDefinition);
- @Override
- public Either<AdditionalInformationDefinition, TitanOperationStatus> deleteAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String id) {
+ }
- TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
- if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
- return Either.right(verifyNodeTypeVsComponent);
- }
+ @Override
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> deleteAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String id) {
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
- NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
+ TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
+ if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
+ return Either.right(verifyNodeTypeVsComponent);
+ }
- if (getResult.isRight()) {
- TitanOperationStatus status = getResult.right().value();
- return Either.right(status);
- }
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
- ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
- AdditionalInfoParameterData parameterData = immutablePair.getLeft();
- Map<String, String> parameters = parameterData.getParameters();
- Map<String, String> idToKey = parameterData.getIdToKey();
+ if (getResult.isRight()) {
+ TitanOperationStatus status = getResult.right().value();
+ return Either.right(status);
+ }
- if (idToKey == null || false == idToKey.containsKey(id)) {
- return Either.right(TitanOperationStatus.INVALID_ID);
- }
+ ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
+ AdditionalInfoParameterData parameterData = immutablePair.getLeft();
+ Map<String, String> parameters = parameterData.getParameters();
+ Map<String, String> idToKey = parameterData.getIdToKey();
- String key = idToKey.get(id);
- String removedKey = idToKey.remove(id);
- String removedValue = parameters.remove(key);
- log.trace("The key-value {} = {} was removed from additionalInformation", removedKey, removedValue);
+ if (idToKey == null || !idToKey.containsKey(id)) {
+ return Either.right(TitanOperationStatus.INVALID_ID);
+ }
- Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
+ String key = idToKey.get(id);
+ String removedKey = idToKey.remove(id);
+ String removedValue = parameters.remove(key);
+ log.trace("The key-value {} = {} was removed from additionalInformation", removedKey, removedValue);
- if (updateNode.isRight()) {
- TitanOperationStatus status = updateNode.right().value();
- BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("DeleteAdditionalInformationParameter", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
- return Either.right(status);
- }
+ Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
- AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, updateNode.left().value());
+ if (updateNode.isRight()) {
+ TitanOperationStatus status = updateNode.right().value();
+ BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("DeleteAdditionalInformationParameter", ADDITIONAL_INFORMATION_OF + nodeType.getName() + " " + componentId, String.valueOf(status));
+ return Either.right(status);
+ }
- return Either.left(informationDefinition);
+ AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, updateNode.left().value());
- }
+ return Either.left(informationDefinition);
- private AdditionalInformationDefinition createInformationDefinitionFromNode(String resourceId, Map<String, String> parameters, Map<String, String> idToKey, AdditionalInfoParameterData additionalInfoParameterData) {
- AdditionalInfoParameterDataDefinition dataDefinition = additionalInfoParameterData.getAdditionalInfoParameterDataDefinition();
+ }
- AdditionalInformationDefinition informationDefinition = new AdditionalInformationDefinition(dataDefinition, resourceId, convertParameters(parameters, idToKey));
- return informationDefinition;
- }
+ private AdditionalInformationDefinition createInformationDefinitionFromNode(String resourceId, Map<String, String> parameters, Map<String, String> idToKey, AdditionalInfoParameterData additionalInfoParameterData) {
+ AdditionalInfoParameterDataDefinition dataDefinition = additionalInfoParameterData.getAdditionalInfoParameterDataDefinition();
- private List<AdditionalInfoParameterInfo> convertParameters(Map<String, String> parameters, Map<String, String> idToKey) {
+ return new AdditionalInformationDefinition(dataDefinition, resourceId, convertParameters(parameters, idToKey));
+ }
- List<AdditionalInfoParameterInfo> list = new ArrayList<AdditionalInfoParameterInfo>();
+ private List<AdditionalInfoParameterInfo> convertParameters(Map<String, String> parameters, Map<String, String> idToKey) {
- if (parameters != null) {
- for (Entry<String, String> idToKeyEntry : idToKey.entrySet()) {
+ List<AdditionalInfoParameterInfo> list = new ArrayList<>();
- String id = idToKeyEntry.getKey();
- String key = idToKeyEntry.getValue();
+ if (parameters != null) {
+ for (Entry<String, String> idToKeyEntry : idToKey.entrySet()) {
- String value = parameters.get(key);
+ String id = idToKeyEntry.getKey();
+ String key = idToKeyEntry.getValue();
- AdditionalInfoParameterInfo parameterInfo = new AdditionalInfoParameterInfo(id, key, value);
- list.add(parameterInfo);
- }
+ String value = parameters.get(key);
- }
+ AdditionalInfoParameterInfo parameterInfo = new AdditionalInfoParameterInfo(id, key, value);
+ list.add(parameterInfo);
+ }
- return list;
- }
+ }
- @Override
- public Either<AdditionalInfoParameterData, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId) {
+ return list;
+ }
- UniqueIdData from = new UniqueIdData(nodeType, componentId);
+ @Override
+ public Either<AdditionalInfoParameterData, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId) {
- String uniqueId = UniqueIdBuilder.buildAdditionalInformationUniqueId(componentId);
- AdditionalInfoParameterDataDefinition additionalInfoParameterDataDefinition = new AdditionalInfoParameterDataDefinition();
- additionalInfoParameterDataDefinition.setUniqueId(uniqueId);
+ UniqueIdData from = new UniqueIdData(nodeType, componentId);
- AdditionalInfoParameterData additionalInfoParameterData = new AdditionalInfoParameterData(additionalInfoParameterDataDefinition, new HashMap<String, String>(), new HashMap<String, String>());
+ String uniqueId = UniqueIdBuilder.buildAdditionalInformationUniqueId(componentId);
+ AdditionalInfoParameterDataDefinition additionalInfoParameterDataDefinition = new AdditionalInfoParameterDataDefinition();
+ additionalInfoParameterDataDefinition.setUniqueId(uniqueId);
- Either<AdditionalInfoParameterData, TitanOperationStatus> createNode = titanGenericDao.createNode(additionalInfoParameterData, AdditionalInfoParameterData.class);
- if (createNode.isRight()) {
- TitanOperationStatus status = createNode.right().value();
- BeEcompErrorManager.getInstance().logBeFailedCreateNodeError("AddAdditionalInformationNode", uniqueId, String.valueOf(status));
- return Either.right(status);
- }
+ AdditionalInfoParameterData additionalInfoParameterData = new AdditionalInfoParameterData(additionalInfoParameterDataDefinition, new HashMap<>(), new HashMap<>());
- AdditionalInfoParameterData to = createNode.left().value();
+ Either<AdditionalInfoParameterData, TitanOperationStatus> createNode = titanGenericDao.createNode(additionalInfoParameterData, AdditionalInfoParameterData.class);
+ if (createNode.isRight()) {
+ TitanOperationStatus status = createNode.right().value();
+ BeEcompErrorManager.getInstance().logBeFailedCreateNodeError("AddAdditionalInformationNode", uniqueId, String.valueOf(status));
+ return Either.right(status);
+ }
- Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(from, to, GraphEdgeLabels.ADDITIONAL_INFORMATION, null);
- if (createRelation.isRight()) {
- TitanOperationStatus status = createRelation.right().value();
- return Either.right(status);
- }
+ AdditionalInfoParameterData to = createNode.left().value();
- return Either.left(to);
- }
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(from, to, GraphEdgeLabels.ADDITIONAL_INFORMATION, null);
+ if (createRelation.isRight()) {
+ TitanOperationStatus status = createRelation.right().value();
+ return Either.right(status);
+ }
- @Override
- public Either<TitanVertex, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, TitanVertex metadataVertex) {
+ return Either.left(to);
+ }
- String uniqueId = UniqueIdBuilder.buildAdditionalInformationUniqueId(componentId);
- AdditionalInfoParameterDataDefinition additionalInfoParameterDataDefinition = new AdditionalInfoParameterDataDefinition();
- additionalInfoParameterDataDefinition.setUniqueId(uniqueId);
+ @Override
+ public Either<TitanVertex, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, TitanVertex metadataVertex) {
- AdditionalInfoParameterData additionalInfoParameterData = new AdditionalInfoParameterData(additionalInfoParameterDataDefinition, new HashMap<String, String>(), new HashMap<String, String>());
+ String uniqueId = UniqueIdBuilder.buildAdditionalInformationUniqueId(componentId);
+ AdditionalInfoParameterDataDefinition additionalInfoParameterDataDefinition = new AdditionalInfoParameterDataDefinition();
+ additionalInfoParameterDataDefinition.setUniqueId(uniqueId);
- Either<TitanVertex, TitanOperationStatus> createNode = titanGenericDao.createNode(additionalInfoParameterData);
- if (createNode.isRight()) {
- TitanOperationStatus status = createNode.right().value();
- BeEcompErrorManager.getInstance().logBeFailedCreateNodeError("AddAdditionalInformationNode", uniqueId, String.valueOf(status));
- return Either.right(status);
- }
+ AdditionalInfoParameterData additionalInfoParameterData = new AdditionalInfoParameterData(additionalInfoParameterDataDefinition, new HashMap<>(), new HashMap<>());
- TitanVertex additionalInfoVertex = createNode.left().value();
+ Either<TitanVertex, TitanOperationStatus> createNode = titanGenericDao.createNode(additionalInfoParameterData);
+ if (createNode.isRight()) {
+ TitanOperationStatus status = createNode.right().value();
+ BeEcompErrorManager.getInstance().logBeFailedCreateNodeError("AddAdditionalInformationNode", uniqueId, String.valueOf(status));
+ return Either.right(status);
+ }
- TitanOperationStatus createRelation = titanGenericDao.createEdge(metadataVertex, additionalInfoVertex, GraphEdgeLabels.ADDITIONAL_INFORMATION, null);
+ TitanVertex additionalInfoVertex = createNode.left().value();
- if (!createRelation.equals(TitanOperationStatus.OK)) {
- return Either.right(createRelation);
- }
- return Either.left(additionalInfoVertex);
- }
+ TitanOperationStatus createRelation = titanGenericDao.createEdge(metadataVertex, additionalInfoVertex, GraphEdgeLabels.ADDITIONAL_INFORMATION, null);
- public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, AdditionalInformationDefinition parameters) {
+ if (!createRelation.equals(TitanOperationStatus.OK)) {
+ return Either.right(createRelation);
+ }
+ return Either.left(additionalInfoVertex);
+ }
- Either<AdditionalInfoParameterData, TitanOperationStatus> status = this.addAdditionalInformationNode(nodeType, componentId);
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, AdditionalInformationDefinition parameters) {
- if (status.isRight()) {
- return Either.right(status.right().value());
- }
+ Either<AdditionalInfoParameterData, TitanOperationStatus> status = this.addAdditionalInformationNode(nodeType, componentId);
- AdditionalInfoParameterData parameterData = status.left().value();
+ if (status.isRight()) {
+ return Either.right(status.right().value());
+ }
- populateParameterNodeWithParameters(parameterData, parameters);
+ AdditionalInfoParameterData parameterData = status.left().value();
- Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
+ populateParameterNodeWithParameters(parameterData, parameters);
- if (updateNode.isRight()) {
- return Either.right(updateNode.right().value());
- }
+ Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
- AdditionalInformationDefinition informationDefinition = convertAdditionalInformationDataToDefinition(updateNode.left().value(), componentId);
+ if (updateNode.isRight()) {
+ return Either.right(updateNode.right().value());
+ }
- return Either.left(informationDefinition);
- }
+ AdditionalInformationDefinition informationDefinition = convertAdditionalInformationDataToDefinition(updateNode.left().value(), componentId);
- public TitanOperationStatus addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, AdditionalInformationDefinition parameters, TitanVertex metadataVertex) {
+ return Either.left(informationDefinition);
+ }
- Either<TitanVertex, TitanOperationStatus> status = this.addAdditionalInformationNode(nodeType, componentId, metadataVertex);
+ public TitanOperationStatus addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, AdditionalInformationDefinition parameters, TitanVertex metadataVertex) {
- if (status.isRight()) {
- return status.right().value();
- }
- TitanVertex additionalInfoVertex = status.left().value();
+ Either<TitanVertex, TitanOperationStatus> status = this.addAdditionalInformationNode(nodeType, componentId, metadataVertex);
- Map<String, Object> newProp = titanGenericDao.getProperties(additionalInfoVertex);
- AdditionalInfoParameterData parameterData = GraphElementFactory.createElement(NodeTypeEnum.AdditionalInfoParameters.getName(), GraphElementTypeEnum.Node, newProp, AdditionalInfoParameterData.class);
+ if (status.isRight()) {
+ return status.right().value();
+ }
+ TitanVertex additionalInfoVertex = status.left().value();
- populateParameterNodeWithParameters(parameterData, parameters);
+ Map<String, Object> newProp = titanGenericDao.getProperties(additionalInfoVertex);
+ AdditionalInfoParameterData parameterData = GraphElementFactory.createElement(NodeTypeEnum.AdditionalInfoParameters.getName(), GraphElementTypeEnum.Node, newProp, AdditionalInfoParameterData.class);
- TitanOperationStatus updateNode = titanGenericDao.updateVertex(parameterData, additionalInfoVertex);
+ populateParameterNodeWithParameters(parameterData, parameters);
- return updateNode;
- }
+ return titanGenericDao.updateVertex(parameterData, additionalInfoVertex);
+ }
- private void populateParameterNodeWithParameters(AdditionalInfoParameterData parameterData, AdditionalInformationDefinition aiDefinition) {
+ private void populateParameterNodeWithParameters(AdditionalInfoParameterData parameterData, AdditionalInformationDefinition aiDefinition) {
- if (aiDefinition != null) {
+ if (aiDefinition != null) {
- Integer lastCreatedCounter = aiDefinition.getLastCreatedCounter();
- parameterData.getAdditionalInfoParameterDataDefinition().setLastCreatedCounter(lastCreatedCounter);
- log.trace("Set last created counter of additional information to {}", lastCreatedCounter);
+ Integer lastCreatedCounter = aiDefinition.getLastCreatedCounter();
+ parameterData.getAdditionalInfoParameterDataDefinition().setLastCreatedCounter(lastCreatedCounter);
+ log.trace("Set last created counter of additional information to {}", lastCreatedCounter);
- List<AdditionalInfoParameterInfo> parameters = aiDefinition.getParameters();
- if (parameters != null) {
+ List<AdditionalInfoParameterInfo> parameters = aiDefinition.getParameters();
+ if (parameters != null) {
- Map<String, String> idToKey = new HashMap<String, String>();
- Map<String, String> parametersMap = new HashMap<String, String>();
- for (AdditionalInfoParameterInfo additionalInfoParameterInfo : parameters) {
- String uniqueId = additionalInfoParameterInfo.getUniqueId();
- String key = additionalInfoParameterInfo.getKey();
- String value = additionalInfoParameterInfo.getValue();
+ Map<String, String> idToKey = new HashMap<>();
+ Map<String, String> parametersMap = new HashMap<>();
+ for (AdditionalInfoParameterInfo additionalInfoParameterInfo : parameters) {
+ String uniqueId = additionalInfoParameterInfo.getUniqueId();
+ String key = additionalInfoParameterInfo.getKey();
+ String value = additionalInfoParameterInfo.getValue();
- if (key != null && false == key.isEmpty()) {
- idToKey.put(uniqueId, key);
- parametersMap.put(key, value);
- }
- }
- parameterData.setIdToKey(idToKey);
- parameterData.setParameters(parametersMap);
- }
- }
+ if (key != null && !key.isEmpty()) {
+ idToKey.put(uniqueId, key);
+ parametersMap.put(key, value);
+ }
+ }
+ parameterData.setIdToKey(idToKey);
+ parameterData.setParameters(parametersMap);
+ }
+ }
- }
+ }
- @Override
- public TitanOperationStatus findResourceAllAdditionalInformationRecursively(String uniqueId, List<AdditionalInformationDefinition> properties) {
+ @Override
+ public TitanOperationStatus findResourceAllAdditionalInformationRecursively(String uniqueId, List<AdditionalInformationDefinition> properties) {
- log.trace("Going to fetch additional information under resource {}", uniqueId);
- TitanOperationStatus resourceCapabilitiesStatus = findAdditionalInformationOfNode(NodeTypeEnum.Resource, uniqueId, properties);
+ log.trace("Going to fetch additional information under resource {}", uniqueId);
+ TitanOperationStatus resourceCapabilitiesStatus = findAdditionalInformationOfNode(NodeTypeEnum.Resource, uniqueId, properties);
- if (!resourceCapabilitiesStatus.equals(TitanOperationStatus.OK)) {
- return resourceCapabilitiesStatus;
- }
+ if (!resourceCapabilitiesStatus.equals(TitanOperationStatus.OK)) {
+ return resourceCapabilitiesStatus;
+ }
- Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), uniqueId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource,
- ResourceMetadataData.class);
+ Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), uniqueId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource,
+ ResourceMetadataData.class);
- if (parentNodes.isRight()) {
- TitanOperationStatus parentNodesStatus = parentNodes.right().value();
- if (false == parentNodesStatus.equals(TitanOperationStatus.NOT_FOUND)) {
- log.error("Failed to find parent additional information of resource {}. status is {}", uniqueId, parentNodesStatus);
- return parentNodesStatus;
- }
- }
+ if (parentNodes.isRight()) {
+ TitanOperationStatus parentNodesStatus = parentNodes.right().value();
+ if (!parentNodesStatus.equals(TitanOperationStatus.NOT_FOUND)) {
+ log.error("Failed to find parent additional information of resource {}. status is {}", uniqueId, parentNodesStatus);
+ return parentNodesStatus;
+ }
+ }
- if (parentNodes.isLeft()) {
- ImmutablePair<ResourceMetadataData, GraphEdge> parnetNodePair = parentNodes.left().value();
- String parentUniqueId = parnetNodePair.getKey().getMetadataDataDefinition().getUniqueId();
- TitanOperationStatus addParentIntStatus = findResourceAllAdditionalInformationRecursively(parentUniqueId, properties);
+ if (parentNodes.isLeft()) {
+ ImmutablePair<ResourceMetadataData, GraphEdge> parnetNodePair = parentNodes.left().value();
+ String parentUniqueId = parnetNodePair.getKey().getMetadataDataDefinition().getUniqueId();
+ TitanOperationStatus addParentIntStatus = findResourceAllAdditionalInformationRecursively(parentUniqueId, properties);
- if (addParentIntStatus != TitanOperationStatus.OK) {
- log.error("Failed to find all resource additional information of resource {}", parentUniqueId);
- return addParentIntStatus;
- }
- }
- return TitanOperationStatus.OK;
+ if (addParentIntStatus != TitanOperationStatus.OK) {
+ log.error("Failed to find all resource additional information of resource {}", parentUniqueId);
+ return addParentIntStatus;
+ }
+ }
+ return TitanOperationStatus.OK;
- }
+ }
- @Override
- public TitanOperationStatus findServiceAllAdditionalInformationRecursively(String uniqueId, List<AdditionalInformationDefinition> properties) {
+ @Override
+ public TitanOperationStatus findServiceAllAdditionalInformationRecursively(String uniqueId, List<AdditionalInformationDefinition> properties) {
- log.trace("Going to fetch additional information under service {}", uniqueId);
- TitanOperationStatus resourceCapabilitiesStatus = findAdditionalInformationOfNode(NodeTypeEnum.Service, uniqueId, properties);
+ log.trace("Going to fetch additional information under service {}", uniqueId);
+ TitanOperationStatus resourceCapabilitiesStatus = findAdditionalInformationOfNode(NodeTypeEnum.Service, uniqueId, properties);
- if (!resourceCapabilitiesStatus.equals(TitanOperationStatus.OK)) {
- return resourceCapabilitiesStatus;
- }
+ if (!resourceCapabilitiesStatus.equals(TitanOperationStatus.OK)) {
+ return resourceCapabilitiesStatus;
+ }
- Either<ImmutablePair<ServiceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), uniqueId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Service,
- ServiceMetadataData.class);
+ Either<ImmutablePair<ServiceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), uniqueId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Service,
+ ServiceMetadataData.class);
- if (parentNodes.isRight()) {
- TitanOperationStatus parentNodesStatus = parentNodes.right().value();
- if (false == parentNodesStatus.equals(TitanOperationStatus.NOT_FOUND)) {
- log.error("Failed to find parent additional information of resource {}. status is {}", uniqueId, parentNodesStatus);
- return parentNodesStatus;
- }
- }
+ if (parentNodes.isRight()) {
+ TitanOperationStatus parentNodesStatus = parentNodes.right().value();
+ if (!parentNodesStatus.equals(TitanOperationStatus.NOT_FOUND)) {
+ log.error("Failed to find parent additional information of resource {}. status is {}", uniqueId, parentNodesStatus);
+ return parentNodesStatus;
+ }
+ }
- if (parentNodes.isLeft()) {
- ImmutablePair<ServiceMetadataData, GraphEdge> parnetNodePair = parentNodes.left().value();
- String parentUniqueId = parnetNodePair.getKey().getMetadataDataDefinition().getUniqueId();
- TitanOperationStatus addParentIntStatus = findServiceAllAdditionalInformationRecursively(parentUniqueId, properties);
+ if (parentNodes.isLeft()) {
+ ImmutablePair<ServiceMetadataData, GraphEdge> parnetNodePair = parentNodes.left().value();
+ String parentUniqueId = parnetNodePair.getKey().getMetadataDataDefinition().getUniqueId();
+ TitanOperationStatus addParentIntStatus = findServiceAllAdditionalInformationRecursively(parentUniqueId, properties);
- if (addParentIntStatus != TitanOperationStatus.OK) {
- log.error("Failed to find all resource additional information of resource {}", parentUniqueId);
- return addParentIntStatus;
- }
- }
- return TitanOperationStatus.OK;
+ if (addParentIntStatus != TitanOperationStatus.OK) {
+ log.error("Failed to find all resource additional information of resource {}", parentUniqueId);
+ return addParentIntStatus;
+ }
+ }
+ return TitanOperationStatus.OK;
- }
+ }
- private TitanOperationStatus findAdditionalInformationOfNode(NodeTypeEnum nodeType, String uniqueId, List<AdditionalInformationDefinition> properties) {
+ private TitanOperationStatus findAdditionalInformationOfNode(NodeTypeEnum nodeType, String uniqueId, List<AdditionalInformationDefinition> properties) {
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> childNode = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), uniqueId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
- NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> childNode = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), uniqueId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
- if (childNode.isRight()) {
- TitanOperationStatus status = childNode.right().value();
- if (status == TitanOperationStatus.NOT_FOUND) {
- status = TitanOperationStatus.OK;
- }
- return status;
- }
+ if (childNode.isRight()) {
+ TitanOperationStatus status = childNode.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.OK;
+ }
+ return status;
+ }
- ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = childNode.left().value();
- AdditionalInfoParameterData propertyData = immutablePair.getKey();
+ ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = childNode.left().value();
+ AdditionalInfoParameterData propertyData = immutablePair.getKey();
- Map<String, String> parameters = propertyData.getParameters();
- if (parameters != null && false == parameters.isEmpty()) {
- AdditionalInformationDefinition additionalInfoDef = this.convertAdditionalInformationDataToDefinition(propertyData, uniqueId);
- properties.add(additionalInfoDef);
- }
+ Map<String, String> parameters = propertyData.getParameters();
+ if (parameters != null && !parameters.isEmpty()) {
+ AdditionalInformationDefinition additionalInfoDef = this.convertAdditionalInformationDataToDefinition(propertyData, uniqueId);
+ properties.add(additionalInfoDef);
+ }
- return TitanOperationStatus.OK;
+ return TitanOperationStatus.OK;
- }
+ }
- private AdditionalInformationDefinition convertAdditionalInformationDataToDefinition(AdditionalInfoParameterData additionalInfoData, String uniqueId) {
+ private AdditionalInformationDefinition convertAdditionalInformationDataToDefinition(AdditionalInfoParameterData additionalInfoData, String uniqueId) {
- Map<String, String> parameters = additionalInfoData.getParameters();
- Map<String, String> idToKey = additionalInfoData.getIdToKey();
+ Map<String, String> parameters = additionalInfoData.getParameters();
+ Map<String, String> idToKey = additionalInfoData.getIdToKey();
- AdditionalInformationDefinition definition = new AdditionalInformationDefinition(additionalInfoData.getAdditionalInfoParameterDataDefinition(), uniqueId, convertParameters(parameters, idToKey));
- return definition;
- }
+ return new AdditionalInformationDefinition(additionalInfoData.getAdditionalInfoParameterDataDefinition(), uniqueId, convertParameters(parameters, idToKey));
+ }
- @Override
- public Either<AdditionalInformationDefinition, StorageOperationStatus> createAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String key, String value, boolean inTransaction) {
+ @Override
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> createAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String key, String value, boolean inTransaction) {
- Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
+ Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
- try {
+ try {
- Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.addAdditionalInformationParameter(nodeType, resourceId, key, value);
+ Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.addAdditionalInformationParameter(nodeType, resourceId, key, value);
- if (either.isRight()) {
- TitanOperationStatus status = either.right().value();
- log.debug("Failed to add additional information property {} to component {}. Status is {}", key, resourceId, status);
- BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("CreateAdditionalInformationParameter", "additional information of " + nodeType.getName() + " " + resourceId, String.valueOf(status));
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- } else {
- AdditionalInformationDefinition additionalInformationDefinition = either.left().value();
- result = Either.left(additionalInformationDefinition);
- }
+ if (either.isRight()) {
+ TitanOperationStatus status = either.right().value();
+ log.debug("Failed to add additional information property {} to component {}. Status is {}", key, resourceId, status);
+ BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("CreateAdditionalInformationParameter", ADDITIONAL_INFORMATION_OF + nodeType.getName() + " " + resourceId, String.valueOf(status));
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ } else {
+ AdditionalInformationDefinition additionalInformationDefinition = either.left().value();
+ result = Either.left(additionalInformationDefinition);
+ }
- return result;
- } finally {
- commitOrRollback(inTransaction, result);
- }
+ return result;
+ } finally {
+ commitOrRollback(inTransaction, result);
+ }
- }
+ }
- @Override
- public Either<AdditionalInformationDefinition, StorageOperationStatus> updateAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, String key, String value, boolean inTransaction) {
+ @Override
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> updateAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, String key, String value, boolean inTransaction) {
- Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
+ Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
- try {
+ try {
- Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.updateAdditionalInformationParameter(nodeType, resourceId, id, key, value);
+ Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.updateAdditionalInformationParameter(nodeType, resourceId, id, key, value);
- if (either.isRight()) {
- log.info("Failed to update additional information property {} to component {}", key, resourceId);
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
- } else {
- AdditionalInformationDefinition additionalInformationDefinition = either.left().value();
- result = Either.left(additionalInformationDefinition);
- }
+ if (either.isRight()) {
+ log.info("Failed to update additional information property {} to component {}", key, resourceId);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
+ } else {
+ AdditionalInformationDefinition additionalInformationDefinition = either.left().value();
+ result = Either.left(additionalInformationDefinition);
+ }
- return result;
+ return result;
- } finally {
- commitOrRollback(inTransaction, result);
- }
+ } finally {
+ commitOrRollback(inTransaction, result);
+ }
- }
+ }
- @Override
- public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction) {
+ @Override
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction) {
- Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
+ Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
- try {
+ try {
- Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.deleteAdditionalInformationParameter(nodeType, resourceId, id);
+ Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.deleteAdditionalInformationParameter(nodeType, resourceId, id);
- if (either.isRight()) {
- log.error("Failed to delete additional information id {} to component {}", id, resourceId);
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
- } else {
- AdditionalInformationDefinition additionalInformationDefinition = either.left().value();
- result = Either.left(additionalInformationDefinition);
- }
+ if (either.isRight()) {
+ log.error("Failed to delete additional information id {} to component {}", id, resourceId);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
+ } else {
+ AdditionalInformationDefinition additionalInformationDefinition = either.left().value();
+ result = Either.left(additionalInformationDefinition);
+ }
- return result;
+ return result;
- } finally {
- commitOrRollback(inTransaction, result);
- }
+ } finally {
+ commitOrRollback(inTransaction, result);
+ }
- }
+ }
- @Override
- public Either<Integer, StorageOperationStatus> getNumberOfAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean inTransaction) {
+ @Override
+ public Either<Integer, StorageOperationStatus> getNumberOfAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean inTransaction) {
- Either<Integer, StorageOperationStatus> result = null;
+ Either<Integer, StorageOperationStatus> result = null;
- try {
+ try {
- Either<Integer, TitanOperationStatus> either = this.getNumberOfParameters(nodeType, resourceId);
+ Either<Integer, TitanOperationStatus> either = this.getNumberOfParameters(nodeType, resourceId);
- if (either.isRight()) {
- log.error("Failed to get the number of additional information properties in component {}", resourceId);
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
- } else {
- Integer counter = either.left().value();
- result = Either.left(counter);
- }
+ if (either.isRight()) {
+ log.error("Failed to get the number of additional information properties in component {}", resourceId);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
+ } else {
+ Integer counter = either.left().value();
+ result = Either.left(counter);
+ }
- return result;
- } finally {
- if (false == inTransaction) {
- if (result == null || result.isRight()) {
- log.error("Going to execute rollback on graph.");
- titanGenericDao.rollback();
- } else {
- log.debug("Going to execute commit on graph.");
- titanGenericDao.commit();
- }
- }
- }
+ return result;
+ } finally {
+ if (!inTransaction) {
+ if (result == null || result.isRight()) {
+ log.error(GOING_TO_EXECUTE_ROLLBACK_ON_GRAPH);
+ titanGenericDao.rollback();
+ } else {
+ log.debug(GOING_TO_EXECUTE_COMMIT_ON_GRAPH);
+ titanGenericDao.commit();
+ }
+ }
+ }
- }
+ }
- @Override
- public Either<Integer, TitanOperationStatus> getNumberOfParameters(NodeTypeEnum nodeType, String resourceId) {
+ @Override
+ public Either<Integer, TitanOperationStatus> getNumberOfParameters(NodeTypeEnum nodeType, String resourceId) {
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), resourceId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
- NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), resourceId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
- if (getResult.isRight()) {
- TitanOperationStatus status = getResult.right().value();
- return Either.right(status);
- }
+ if (getResult.isRight()) {
+ TitanOperationStatus status = getResult.right().value();
+ return Either.right(status);
+ }
- ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
- AdditionalInfoParameterData parameterData = immutablePair.getLeft();
- Map<String, String> parameters = parameterData.getParameters();
+ ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
+ AdditionalInfoParameterData parameterData = immutablePair.getLeft();
+ Map<String, String> parameters = parameterData.getParameters();
- Integer counter = 0;
- if (parameters != null) {
- counter = parameters.size();
- }
+ Integer counter = 0;
+ if (parameters != null) {
+ counter = parameters.size();
+ }
- return Either.left(counter);
+ return Either.left(counter);
- }
+ }
- @Override
- public Either<AdditionalInfoParameterInfo, TitanOperationStatus> getAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String id) {
+ @Override
+ public Either<AdditionalInfoParameterInfo, TitanOperationStatus> getAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String id) {
- TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
- if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
- return Either.right(verifyNodeTypeVsComponent);
- }
+ TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
+ if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
+ return Either.right(verifyNodeTypeVsComponent);
+ }
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
- NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
- if (getResult.isRight()) {
- TitanOperationStatus status = getResult.right().value();
- return Either.right(status);
- }
+ if (getResult.isRight()) {
+ TitanOperationStatus status = getResult.right().value();
+ return Either.right(status);
+ }
- ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
- AdditionalInfoParameterData parameterData = immutablePair.getLeft();
- Map<String, String> parameters = parameterData.getParameters();
- Map<String, String> idToKey = parameterData.getIdToKey();
+ ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
+ AdditionalInfoParameterData parameterData = immutablePair.getLeft();
+ Map<String, String> parameters = parameterData.getParameters();
+ Map<String, String> idToKey = parameterData.getIdToKey();
- if (idToKey == null || false == idToKey.containsKey(id)) {
- return Either.right(TitanOperationStatus.INVALID_ID);
- }
+ if (idToKey == null || !idToKey.containsKey(id)) {
+ return Either.right(TitanOperationStatus.INVALID_ID);
+ }
- String key = idToKey.get(id);
- String value = parameters.get(key);
+ String key = idToKey.get(id);
+ String value = parameters.get(key);
- log.trace("The key-value {} = {} was retrieved for id {}", key, value, id);
+ log.trace("The key-value {} = {} was retrieved for id {}", key, value, id);
- Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
+ Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
- if (updateNode.isRight()) {
- TitanOperationStatus status = updateNode.right().value();
- if (status != TitanOperationStatus.NOT_FOUND) {
- BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("GetAdditionnalInformationParameter", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
- }
- return Either.right(status);
- }
+ if (updateNode.isRight()) {
+ TitanOperationStatus status = updateNode.right().value();
+ if (status != TitanOperationStatus.NOT_FOUND) {
+ BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("GetAdditionnalInformationParameter", ADDITIONAL_INFORMATION_OF + nodeType.getName() + " " + componentId, String.valueOf(status));
+ }
+ return Either.right(status);
+ }
- AdditionalInfoParameterInfo additionalInfoParameterInfo = new AdditionalInfoParameterInfo(id, key, value);
+ AdditionalInfoParameterInfo additionalInfoParameterInfo = new AdditionalInfoParameterInfo(id, key, value);
- return Either.left(additionalInfoParameterInfo);
+ return Either.left(additionalInfoParameterInfo);
- }
+ }
- @Override
- public Either<AdditionalInformationDefinition, TitanOperationStatus> getAllAdditionalInformationParameters(NodeTypeEnum nodeType, String componentId, boolean ignoreVerification) {
+ @Override
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> getAllAdditionalInformationParameters(NodeTypeEnum nodeType, String componentId, boolean ignoreVerification) {
- if (false == ignoreVerification) {
- TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
- if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
- return Either.right(verifyNodeTypeVsComponent);
- }
- }
+ if (!ignoreVerification) {
+ TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
+ if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
+ return Either.right(verifyNodeTypeVsComponent);
+ }
+ }
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
- NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
- if (getResult.isRight()) {
- TitanOperationStatus status = getResult.right().value();
- if (status != TitanOperationStatus.NOT_FOUND) {
- BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("GetAdditionnalInformationParameters", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
- }
- return Either.right(status);
- }
+ if (getResult.isRight()) {
+ TitanOperationStatus status = getResult.right().value();
+ if (status != TitanOperationStatus.NOT_FOUND) {
+ BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("GetAdditionnalInformationParameters", ADDITIONAL_INFORMATION_OF + nodeType.getName() + " " + componentId, String.valueOf(status));
+ }
+ return Either.right(status);
+ }
- ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
- AdditionalInfoParameterData parameterData = immutablePair.getLeft();
- Map<String, String> parameters = parameterData.getParameters();
- Map<String, String> idToKey = parameterData.getIdToKey();
+ ImmutablePair<AdditionalInfoParameterData, GraphEdge> immutablePair = getResult.left().value();
+ AdditionalInfoParameterData parameterData = immutablePair.getLeft();
+ Map<String, String> parameters = parameterData.getParameters();
+ Map<String, String> idToKey = parameterData.getIdToKey();
- AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, parameterData);
+ AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, parameterData);
- return Either.left(informationDefinition);
+ return Either.left(informationDefinition);
- }
+ }
- @Override
- public Either<AdditionalInformationDefinition, StorageOperationStatus> getAllAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean ignoreVerification, boolean inTransaction) {
+ @Override
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> getAllAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean ignoreVerification, boolean inTransaction) {
- Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
+ Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
- try {
+ try {
- Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.getAllAdditionalInformationParameters(nodeType, resourceId, ignoreVerification);
+ Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.getAllAdditionalInformationParameters(nodeType, resourceId, ignoreVerification);
- if (either.isRight()) {
- TitanOperationStatus status = either.right().value();
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- } else {
- AdditionalInformationDefinition additionalInformationDefinition = either.left().value();
- result = Either.left(additionalInformationDefinition);
- }
+ if (either.isRight()) {
+ TitanOperationStatus status = either.right().value();
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ } else {
+ AdditionalInformationDefinition additionalInformationDefinition = either.left().value();
+ result = Either.left(additionalInformationDefinition);
+ }
- return result;
+ return result;
- } finally {
- commitOrRollback(inTransaction, result);
- }
-
- }
-
- private void commitOrRollback(boolean inTransaction, Either<? extends Object, StorageOperationStatus> result) {
-
- if (false == inTransaction) {
- if (result == null || result.isRight()) {
- log.error("Going to execute rollback on graph.");
- titanGenericDao.rollback();
- } else {
- log.debug("Going to execute commit on graph.");
- titanGenericDao.commit();
- }
- }
- }
-
- @Override
- public Either<AdditionalInfoParameterInfo, StorageOperationStatus> getAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction) {
-
- Either<AdditionalInfoParameterInfo, StorageOperationStatus> result = null;
-
- try {
-
- Either<AdditionalInfoParameterInfo, TitanOperationStatus> either = this.getAdditionalInformationParameter(nodeType, resourceId, id);
-
- if (either.isRight()) {
- log.error("Failed to fetch additional information property with id {} of component {}", id, resourceId);
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
- } else {
- AdditionalInfoParameterInfo additionalInformationDefinition = either.left().value();
- result = Either.left(additionalInformationDefinition);
- }
-
- return result;
-
- } finally {
- commitOrRollback(inTransaction, result);
- }
- }
-
- @Override
- public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAllAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean inTransaction) {
-
- Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
-
- try {
-
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), resourceId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
- NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
-
- if (getResult.isRight()) {
- TitanOperationStatus status = getResult.right().value();
- if (status == TitanOperationStatus.NOT_FOUND) {
- return Either.right(StorageOperationStatus.OK);
- } else {
- BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError("DeleteAdditionalInformationNode", "additional information of " + nodeType.getName() + " " + resourceId, String.valueOf(status));
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- }
- return result;
- }
-
- ImmutablePair<AdditionalInfoParameterData, GraphEdge> value = getResult.left().value();
- AdditionalInfoParameterData parameterData = value.getLeft();
-
- Either<AdditionalInfoParameterData, TitanOperationStatus> deleteNodeRes = titanGenericDao.deleteNode(parameterData, AdditionalInfoParameterData.class);
- if (deleteNodeRes.isRight()) {
- TitanOperationStatus status = getResult.right().value();
- BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError("DeleteAdditionalInformationNode", (String) parameterData.getUniqueId(), String.valueOf(status));
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- return result;
- }
-
- AdditionalInformationDefinition informationDefinition = convertAdditionalInformationDataToDefinition(deleteNodeRes.left().value(), resourceId);
-
- result = Either.left(informationDefinition);
-
- return result;
-
- } finally {
- commitOrRollback(inTransaction, result);
- }
- }
-
- private TitanOperationStatus verifyNodeTypeVsComponent(NodeTypeEnum nodeType, String componentId) {
- Either<TitanVertex, TitanOperationStatus> vertexByProperty = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId);
- if (vertexByProperty.isRight()) {
- TitanOperationStatus status = vertexByProperty.right().value();
- if (status == TitanOperationStatus.NOT_FOUND) {
- status = TitanOperationStatus.INVALID_ID;
- }
- return status;
- } else {
- Vertex v = vertexByProperty.left().value();
- String label = (String) v.property(GraphPropertiesDictionary.LABEL.getProperty()).value();
- if (label != null) {
- if (false == label.equals(nodeType.getName())) {
- log.debug("The node type {} is not appropriate to component {}", nodeType, componentId);
- return TitanOperationStatus.INVALID_ID;
- }
- } else {
- log.debug("The node type {} with id {} does not have a label property.", nodeType, componentId);
- return TitanOperationStatus.INVALID_ID;
- }
- }
- return TitanOperationStatus.OK;
- }
+ } finally {
+ commitOrRollback(inTransaction, result);
+ }
+
+ }
+
+ private void commitOrRollback(boolean inTransaction, Either<? extends Object, StorageOperationStatus> result) {
+
+ if (!inTransaction) {
+ if (result == null || result.isRight()) {
+ log.error(GOING_TO_EXECUTE_ROLLBACK_ON_GRAPH);
+ titanGenericDao.rollback();
+ } else {
+ log.debug(GOING_TO_EXECUTE_COMMIT_ON_GRAPH);
+ titanGenericDao.commit();
+ }
+ }
+ }
+
+
+ @Override
+ public Either<AdditionalInfoParameterInfo, StorageOperationStatus> getAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction) {
+
+ Either<AdditionalInfoParameterInfo, StorageOperationStatus> result = null;
+
+ try {
+
+ Either<AdditionalInfoParameterInfo, TitanOperationStatus> either = this.getAdditionalInformationParameter(nodeType, resourceId, id);
+
+ if (either.isRight()) {
+ log.error("Failed to fetch additional information property with id {} of component {}", id, resourceId);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
+ } else {
+ AdditionalInfoParameterInfo additionalInformationDefinition = either.left().value();
+ result = Either.left(additionalInformationDefinition);
+ }
+
+ return result;
+
+ } finally {
+ commitOrRollback(inTransaction, result);
+ }
+ }
+
+ @Override
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAllAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean inTransaction) {
+
+ Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
+
+ try {
+
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), resourceId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
+
+ if (getResult.isRight()) {
+ TitanOperationStatus status = getResult.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ return Either.right(StorageOperationStatus.OK);
+ } else {
+ BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError("DeleteAdditionalInformationNode", ADDITIONAL_INFORMATION_OF + nodeType.getName() + " " + resourceId, String.valueOf(status));
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ }
+ return result;
+ }
+
+ ImmutablePair<AdditionalInfoParameterData, GraphEdge> value = getResult.left().value();
+ AdditionalInfoParameterData parameterData = value.getLeft();
+
+ Either<AdditionalInfoParameterData, TitanOperationStatus> deleteNodeRes = titanGenericDao.deleteNode(parameterData, AdditionalInfoParameterData.class);
+ if (deleteNodeRes.isRight()) {
+ TitanOperationStatus status = getResult.right().value();
+ BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError("DeleteAdditionalInformationNode", (String) parameterData.getUniqueId(), String.valueOf(status));
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ return result;
+ }
+
+ AdditionalInformationDefinition informationDefinition = convertAdditionalInformationDataToDefinition(deleteNodeRes.left().value(), resourceId);
+
+ result = Either.left(informationDefinition);
+
+ return result;
+
+ } finally {
+ commitOrRollback(inTransaction, result);
+ }
+ }
+
+ private TitanOperationStatus verifyNodeTypeVsComponent(NodeTypeEnum nodeType, String componentId) {
+ Either<TitanVertex, TitanOperationStatus> vertexByProperty = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId);
+ if (vertexByProperty.isRight()) {
+ TitanOperationStatus status = vertexByProperty.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ return status;
+ } else {
+ Vertex v = vertexByProperty.left().value();
+ String label = (String) v.property(GraphPropertiesDictionary.LABEL.getProperty()).value();
+ if (label != null) {
+ if (!label.equals(nodeType.getName())) {
+ log.debug("The node type {} is not appropriate to component {}", nodeType, componentId);
+ return TitanOperationStatus.INVALID_ID;
+ }
+ } else {
+ log.debug("The node type {} with id {} does not have a label property.", nodeType, componentId);
+ return TitanOperationStatus.INVALID_ID;
+ }
+ }
+ return TitanOperationStatus.OK;
+ }
}