aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main
diff options
context:
space:
mode:
authoraribeiro <anderson.ribeiro@est.tech>2020-08-28 11:50:52 +0100
committerSébastien Determe <sebastien.determe@intl.att.com>2020-09-07 07:11:49 +0000
commit798f858d18403a31a4d464b07bb1a9a74666c9c7 (patch)
tree9b5e2a6e59dbb803fb0bdcafd3fff6ae08c412f2 /catalog-be/src/main
parentc572ed8873bee57ad925fb231464efbca98a8007 (diff)
Update node_filter capabilities
Issue-ID: SDC-3265 Signed-off-by: aribeiro <anderson.ribeiro@est.tech> Change-Id: Ib2dbd299ff5fc336258bf29a303210eacfd984cf
Diffstat (limited to 'catalog-be/src/main')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentNodeFilterBusinessLogic.java50
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ComponentNodeFilterServlet.java8
2 files changed, 49 insertions, 9 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentNodeFilterBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentNodeFilterBusinessLogic.java
index 962407ca92..1b9054e187 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentNodeFilterBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentNodeFilterBusinessLogic.java
@@ -31,6 +31,7 @@ import org.openecomp.sdc.be.components.impl.exceptions.BusinessLogicException;
import org.openecomp.sdc.be.components.impl.utils.NodeFilterConstraintAction;
import org.openecomp.sdc.be.components.validation.NodeFilterValidator;
import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.datamodel.utils.ConstraintConvertor;
import org.openecomp.sdc.be.datatypes.elements.CINodeFilterDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.RequirementNodeFilterCapabilityDataDefinition;
@@ -269,7 +270,8 @@ public class ComponentNodeFilterBusinessLogic extends BaseBusinessLogic {
final String componentInstanceId,
final List<String> constraints,
final boolean shouldLock,
- final ComponentTypeEnum componentTypeEnum)
+ final ComponentTypeEnum componentTypeEnum,
+ final NodeFilterConstraintType nodeFilterConstraintType)
throws BusinessLogicException {
final Component component = getComponent(componentId);
@@ -296,10 +298,9 @@ public class ComponentNodeFilterBusinessLogic extends BaseBusinessLogic {
lockComponent(component.getUniqueId(), component,"Update Node Filter on Component");
wasLocked = true;
}
- final List<RequirementNodeFilterPropertyDataDefinition> properties = constraints.stream()
- .map(this::getRequirementNodeFilterPropertyDataDefinition).collect(Collectors.toList());
- final Either<CINodeFilterDataDefinition, StorageOperationStatus> result = nodeFilterOperation
- .updateProperties(componentId, componentInstanceId, nodeFilterDataDefinition, properties);
+ final Either<CINodeFilterDataDefinition, StorageOperationStatus> result =
+ updateNodeFilterConstraint(componentId, componentInstanceId, constraints, nodeFilterConstraintType,
+ nodeFilterDataDefinition);
if (result.isRight()) {
janusGraphDao.rollback();
@@ -326,6 +327,22 @@ public class ComponentNodeFilterBusinessLogic extends BaseBusinessLogic {
return Optional.ofNullable(nodeFilterDataDefinition);
}
+ private Either<CINodeFilterDataDefinition, StorageOperationStatus> updateNodeFilterConstraint(
+ final String componentId, final String componentInstanceId, final List<String> constraints,
+ final NodeFilterConstraintType nodeFilterConstraintType, final CINodeFilterDataDefinition nodeFilterDataDefinition) {
+
+ if (NodeFilterConstraintType.PROPERTIES.equals(nodeFilterConstraintType)) {
+ final List<RequirementNodeFilterPropertyDataDefinition> properties = constraints.stream()
+ .map(this::getRequirementNodeFilterPropertyDataDefinition).collect(Collectors.toList());
+ return nodeFilterOperation.updateProperties(componentId, componentInstanceId,
+ nodeFilterDataDefinition, properties);
+ }
+ final List<RequirementNodeFilterCapabilityDataDefinition> capabilities = constraints.stream()
+ .map(this::getRequirementNodeFilterCapabilityDataDefinition).collect(Collectors.toList());
+ return nodeFilterOperation.updateCapabilities(componentId, componentInstanceId,
+ nodeFilterDataDefinition, capabilities);
+ }
+
private Either<CINodeFilterDataDefinition, StorageOperationStatus> addNewNodeFilter(
final String componentId,
final String componentInstanceId,
@@ -350,6 +367,7 @@ public class ComponentNodeFilterBusinessLogic extends BaseBusinessLogic {
requirementNodeFilterCapabilityDataDefinition);
}
+
private void unlockComponent(final String componentUniqueId,
final ComponentTypeEnum componentType) {
graphLockOperation.unlockComponent(componentUniqueId, componentType.getNodeType());
@@ -395,9 +413,25 @@ public class ComponentNodeFilterBusinessLogic extends BaseBusinessLogic {
private RequirementNodeFilterPropertyDataDefinition getRequirementNodeFilterPropertyDataDefinition(
final String constraint) {
- final RequirementNodeFilterPropertyDataDefinition pdd = new RequirementNodeFilterPropertyDataDefinition();
- pdd.setConstraints(Arrays.asList(constraint));
- return pdd;
+ final RequirementNodeFilterPropertyDataDefinition requirementNodeFilterPropertyDataDefinition =
+ new RequirementNodeFilterPropertyDataDefinition();
+ requirementNodeFilterPropertyDataDefinition.setConstraints(Arrays.asList(constraint));
+ return requirementNodeFilterPropertyDataDefinition;
+ }
+
+ private RequirementNodeFilterCapabilityDataDefinition getRequirementNodeFilterCapabilityDataDefinition(
+ final String constraint) {
+
+ final RequirementNodeFilterCapabilityDataDefinition requirementNodeFilterCapabilityDataDefinition =
+ new RequirementNodeFilterCapabilityDataDefinition();
+ final ListDataDefinition<RequirementNodeFilterPropertyDataDefinition> propertyDataDefinitionList =
+ new ListDataDefinition<>();
+ propertyDataDefinitionList.getListToscaDataDefinition().addAll(
+ Collections.singleton(getRequirementNodeFilterPropertyDataDefinition(constraint)));
+ requirementNodeFilterCapabilityDataDefinition.setName(new ConstraintConvertor().convert(constraint)
+ .getServicePropertyName());
+ requirementNodeFilterCapabilityDataDefinition.setProperties(propertyDataDefinitionList);
+ return requirementNodeFilterCapabilityDataDefinition;
}
private CINodeFilterDataDefinition validateAndReturnNodeFilterDefinition(final String componentInstanceId,
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ComponentNodeFilterServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ComponentNodeFilterServlet.java
index 5146d5e5b5..2291d8e984 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ComponentNodeFilterServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ComponentNodeFilterServlet.java
@@ -207,9 +207,15 @@ public class ComponentNodeFilterServlet extends AbstractValidationsServlet {
"Failed to parse constraint data", constraintData));
}
final List<String> constraints = new ConstraintConvertor().convertToList(uiConstraints);
+ final Optional<NodeFilterConstraintType> nodeFilterConstraintType =
+ NodeFilterConstraintType.parse(constraintType);
+ if (!nodeFilterConstraintType.isPresent()) {
+ return buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT_PARAM,
+ "Invalid value for NodeFilterConstraintType enum %s", constraintType));
+ }
final Optional<CINodeFilterDataDefinition> actionResponse = componentNodeFilterBusinessLogic
.updateNodeFilter(componentId.toLowerCase(), componentInstanceId, constraints,
- true, componentTypeEnum);
+ true, componentTypeEnum, nodeFilterConstraintType.get());
if (!actionResponse.isPresent()) {
LOGGER.error(FAILED_TO_UPDATE_NODE_FILTER);