From 6cffd9e3eecb10281d880ea7d217f0ecddf8fb5a Mon Sep 17 00:00:00 2001 From: vasraz Date: Thu, 31 Mar 2022 13:35:04 +0100 Subject: Update Interface definition on VFC Signed-off-by: aribeiro Change-Id: I13678c92ae6088016a78554ffaf0da47b82f7e65 Signed-off-by: Vasyl Razinkov Issue-ID: SDC-3893 Signed-off-by: andre.schmid --- .../sdc/be/model/ComponentParametersView.java | 5 ++-- .../jsonjanusgraph/operations/BaseOperation.java | 10 ++++++-- .../operations/TopologyTemplateOperation.java | 30 ++++++++-------------- .../operations/ToscaOperationFacade.java | 15 +++++++++++ .../model/operations/impl/DaoStatusConverter.java | 4 +-- 5 files changed, 38 insertions(+), 26 deletions(-) (limited to 'catalog-model') diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentParametersView.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentParametersView.java index 4b5533fe84..56164736b8 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentParametersView.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentParametersView.java @@ -274,9 +274,9 @@ public class ComponentParametersView { public void disableAll() { ignoreUsers = true; ignoreGroups = true; - ignorePolicies = true; ignoreComponentInstances = true; ignoreComponentInstancesProperties = true; + ignoreComponentInstancesAttributes = true; ignoreProperties = true; ignoreAttributes = true; ignoreCapabilities = true; @@ -287,14 +287,15 @@ public class ComponentParametersView { ignoreArtifacts = true; ignoreInterfaces = true; ignoreInterfaceInstances = true; + ignoreComponentInstancesInterfaces = true; ignoreDerivedFrom = true; ignoreInputs = true; ignoreOutputs = true; - ignoreComponentInstancesAttributes = true; ignoreComponentInstancesInputs = true; ignoreComponentInstancesOutputs = true; ignoreCapabiltyProperties = true; ignoreServicePath = true; + ignorePolicies = true; ignoreNodeFilterRequirements = true; ignoreNodeFilter = true; ignoreSubstitutionFilter = true; diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/BaseOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/BaseOperation.java index 92dc67bbca..054ed9fe7e 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/BaseOperation.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/BaseOperation.java @@ -39,9 +39,9 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.VertexProperty; import org.janusgraph.core.JanusGraphVertex; import org.openecomp.sdc.be.dao.impl.HealingPipelineDao; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.janusgraph.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; @@ -1009,7 +1009,13 @@ public abstract class BaseOperation { if (!currMap.containsKey(pathKeys.get(0))) { currMap.put(pathKeys.get(0), new MapDataDefinition<>()); } - MapDataDefinition currDeepElement = currMap.get(pathKeys.get(0)); + Object object = currMap.get(pathKeys.get(0)); + MapDataDefinition currDeepElement = null; + if (object instanceof MapDataDefinition) { + currDeepElement = (MapDataDefinition) object; + } else { + currDeepElement = new MapDataDefinition(currMap); + } for (int i = 1; i < pathKeys.size(); ++i) { if (currDeepElement.findByKey(pathKeys.get(i)) == null) { currDeepElement.put(pathKeys.get(i), new MapDataDefinition<>()); diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/TopologyTemplateOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/TopologyTemplateOperation.java index b45dae9c68..7742cbfe0e 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/TopologyTemplateOperation.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/TopologyTemplateOperation.java @@ -774,12 +774,6 @@ public class TopologyTemplateOperation extends ToscaElementOperation { return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(storageStatus)); } } - if (!componentParametersView.isIgnoreInterfaces()) { - JanusGraphOperationStatus storageStatus = setInterfcesFromGraph(componentV, toscaElement); - if (storageStatus != JanusGraphOperationStatus.OK) { - return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(storageStatus)); - } - } if (!componentParametersView.isIgnoreComponentInstancesInterfaces()) { JanusGraphOperationStatus storageStatus = setComponentInstancesInterfacesFromGraph(componentV, toscaElement); if (storageStatus != JanusGraphOperationStatus.OK) { @@ -807,18 +801,6 @@ public class TopologyTemplateOperation extends ToscaElementOperation { return JanusGraphOperationStatus.OK; } - private JanusGraphOperationStatus setInterfcesFromGraph(GraphVertex componentV, TopologyTemplate topologyTemplate) { - Either, JanusGraphOperationStatus> result = getDataFromGraph(componentV, EdgeLabelEnum.INTERFACE); - if (result.isLeft()) { - topologyTemplate.setInterfaces(result.left().value()); - } else { - if (result.right().value() != JanusGraphOperationStatus.NOT_FOUND) { - return result.right().value(); - } - } - return JanusGraphOperationStatus.OK; - } - private JanusGraphOperationStatus setPoliciesFromGraph(GraphVertex componentV, TopologyTemplate toscaElement) { Either, JanusGraphOperationStatus> result = getDataFromGraph(componentV, EdgeLabelEnum.POLICIES); if (result.isLeft()) { @@ -985,7 +967,7 @@ public class TopologyTemplateOperation extends ToscaElementOperation { if (MapUtils.isEmpty(filters)) { return JanusGraphOperationStatus.OK; } - if(filters.values().size() > 1) { + if (filters.values().size() > 1) { log.error(EcompLoggerErrorCode.DATA_ERROR, TopologyTemplateOperation.class.getName(), (ErrorLogOptionalData) null, "Only a single substitution filter is expected, but got '{}'", filters.values().size()); return JanusGraphOperationStatus.GENERAL_ERROR; @@ -1493,6 +1475,16 @@ public class TopologyTemplateOperation extends ToscaElementOperation { return StorageOperationStatus.OK; } + + public StorageOperationStatus updateComponentInterfaces(final String componentId, final MapInterfaceDataDefinition instanceInterfaces, + final String componentInterfaceUpdatedKey) { + if (MapUtils.isNotEmpty(instanceInterfaces.getMapToscaDataDefinition())) { + return updateToscaDataDeepElementsBlockToToscaElement(componentId, EdgeLabelEnum.INTERFACE_ARTIFACTS, instanceInterfaces, + componentInterfaceUpdatedKey); + } + return StorageOperationStatus.OK; + } + private boolean isNotEmptyMapOfProperties(String instanceId, Map mapPropertiesDataDefinition) { return MapUtils.isNotEmpty(mapPropertiesDataDefinition) && instanceId != null && mapPropertiesDataDefinition.get(instanceId) != null && MapUtils.isNotEmpty(mapPropertiesDataDefinition.get(instanceId).getMapToscaDataDefinition()); diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacade.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacade.java index d477b8ce6a..c07523d3cc 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacade.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacade.java @@ -101,6 +101,7 @@ import org.openecomp.sdc.be.model.DistributionStatusEnum; import org.openecomp.sdc.be.model.GroupDefinition; import org.openecomp.sdc.be.model.GroupInstance; import org.openecomp.sdc.be.model.InputDefinition; +import org.openecomp.sdc.be.model.InterfaceDefinition; import org.openecomp.sdc.be.model.LifecycleStateEnum; import org.openecomp.sdc.be.model.OutputDefinition; import org.openecomp.sdc.be.model.PolicyDefinition; @@ -3126,6 +3127,12 @@ public class ToscaOperationFacade { return topologyTemplateOperation.updateComponentInstanceInterfaces(containerComponent, componentInstanceUniqueId, mapInterfaceDataDefinition); } + public StorageOperationStatus updateComponentInterfaces(final String componentId, final Map interfaces, + final String componentInterfaceUpdatedKey) { + MapInterfaceDataDefinition mapInterfaceDataDefinition = convertComponentInterfaces(interfaces); + return topologyTemplateOperation.updateComponentInterfaces(componentId, mapInterfaceDataDefinition, componentInterfaceUpdatedKey); + } + public StorageOperationStatus updateComponentCalculatedCapabilitiesProperties(Component containerComponent) { Map mapCapabiltyPropertyMap = convertComponentCapabilitiesProperties(containerComponent); return nodeTemplateOperation.overrideComponentCapabilitiesProperties(containerComponent, mapCapabiltyPropertyMap); @@ -3187,6 +3194,14 @@ public class ToscaOperationFacade { return mapInterfaceDataDefinition; } + private MapInterfaceDataDefinition convertComponentInterfaces(final Map interfaces) { + final MapInterfaceDataDefinition mapInterfaceDataDefinition = new MapInterfaceDataDefinition(); + if (MapUtils.isNotEmpty(interfaces)) { + interfaces.values().stream().forEach(interfaceDef -> mapInterfaceDataDefinition.put(interfaceDef.getType(), interfaceDef)); + } + return mapInterfaceDataDefinition; + } + private Map convertComponentCapabilitiesProperties(Component currComponent) { Map map = ModelConverter.extractCapabilityPropertiesFromGroups(currComponent.getGroups(), true); map.putAll(ModelConverter.extractCapabilityProperteisFromInstances(currComponent.getComponentInstances(), true)); diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DaoStatusConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DaoStatusConverter.java index 14611ae4ad..0ee71734e2 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DaoStatusConverter.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DaoStatusConverter.java @@ -37,10 +37,10 @@ public class DaoStatusConverter { case NOT_FOUND: return StorageOperationStatus.NOT_FOUND; case NOT_CREATED: - return StorageOperationStatus.SCHEMA_ERROR; case INDEX_CANNOT_BE_CHANGED: return StorageOperationStatus.SCHEMA_ERROR; case MISSING_UNIQUE_ID: + case ILLEGAL_ARGUMENT: return StorageOperationStatus.BAD_REQUEST; case ALREADY_LOCKED: return StorageOperationStatus.FAILED_TO_LOCK_ELEMENT; @@ -50,8 +50,6 @@ public class DaoStatusConverter { return StorageOperationStatus.INVALID_ID; case MATCH_NOT_FOUND: return StorageOperationStatus.MATCH_NOT_FOUND; - case ILLEGAL_ARGUMENT: - return StorageOperationStatus.BAD_REQUEST; case ALREADY_EXIST: return StorageOperationStatus.ENTITY_ALREADY_EXISTS; case PROPERTY_NAME_ALREADY_EXISTS: -- cgit 1.2.3-korg