summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java125
1 files changed, 53 insertions, 72 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java
index 266d1346e4..b2d1a218f4 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java
@@ -13,11 +13,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.enrichment.impl.tosca;
+import static org.openecomp.sdc.tosca.services.DataModelUtil.getClonedObject;
+import static org.openecomp.sdc.tosca.services.ToscaConstants.PORT_MIRRORING_CAPABILITY_CP_PROPERTY_NAME;
+import static org.openecomp.sdc.tosca.services.ToscaConstants.PORT_MIRRORING_CAPABILITY_ID;
+
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
+import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.onap.sdc.tosca.datatypes.model.Import;
@@ -35,32 +47,24 @@ import org.openecomp.sdc.tosca.services.ToscaUtil;
import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import static org.openecomp.sdc.tosca.services.DataModelUtil.getClonedObject;
-import static org.openecomp.sdc.tosca.services.ToscaConstants.PORT_MIRRORING_CAPABILITY_CP_PROPERTY_NAME;
-import static org.openecomp.sdc.tosca.services.ToscaConstants.PORT_MIRRORING_CAPABILITY_ID;
-
public class PortMirroringEnricher {
+
private static final String ABSTRACT_LINK_REQUIREMENT_ID_PREFIX = ToscaConstants.LINK_REQUIREMENT_ID + "_";
private static final int ABSTRACT_LINK_REQUIREMENT_ID_PREFIX_LENGTH = ABSTRACT_LINK_REQUIREMENT_ID_PREFIX.length();
- private static final Map<String, String> nodeTypeExternalNodeType = initializeNodeTypeExternalNodeType();
+ private static final Map<String, String> nodeTypeExternalNodeType = initializeNodeTypeExternalNodeType();
//Map of service template file name and map of all port node template ids, node template
private final Map<String, Map<String, NodeTemplate>> portNodeTemplates = new HashMap<>();
//Map of service template file name and map of external port node template ids, node template
private final Map<String, Map<String, NodeTemplate>> externalPortNodeTemplates = new HashMap<>();
//Map of substitution service template name and the list of ports with link requirement from the abstract
private final Map<String, List<String>> portNodeTemplateIdsFromAbstract = new HashMap<>();
- private final Map<String, ServiceTemplate> globalTypesServiceTemplate =
- GlobalTypesGenerator.getGlobalTypesServiceTemplate(OnboardingTypesEnum.ZIP);
+ private final Map<String, ServiceTemplate> globalTypesServiceTemplate = GlobalTypesGenerator
+ .getGlobalTypesServiceTemplate(OnboardingTypesEnum.ZIP);
- private static ImmutableMap<String,String> initializeNodeTypeExternalNodeType() {
- return ImmutableMap.<String, String>builder()
- .put(ToscaNodeType.CONTRAIL_PORT, ToscaNodeType.EXTERNAL_CONTRAIL_PORT)
- .put(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE, ToscaNodeType.EXTERNAL_VMI_PORT)
- .put(ToscaNodeType.NEUTRON_PORT, ToscaNodeType.EXTERNAL_NEUTRON_PORT)
- .build();
+ private static ImmutableMap<String, String> initializeNodeTypeExternalNodeType() {
+ return ImmutableMap.<String, String>builder().put(ToscaNodeType.CONTRAIL_PORT, ToscaNodeType.EXTERNAL_CONTRAIL_PORT)
+ .put(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE, ToscaNodeType.EXTERNAL_VMI_PORT)
+ .put(ToscaNodeType.NEUTRON_PORT, ToscaNodeType.EXTERNAL_NEUTRON_PORT).build();
}
/**
@@ -73,11 +77,10 @@ public class PortMirroringEnricher {
Map<String, List<ErrorMessage>> errors = new HashMap<>();
Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
serviceTemplates.entrySet().stream()
- //Skipping the service templates which do not contain topology template
- .filter(serviceTemplateEntry -> serviceTemplateEntry.getValue().getTopology_template() != null)
- .forEach(serviceTemplateEntry ->
- //Collect all the ports across all the service templates
- collectPorts(serviceTemplateEntry.getValue()));
+ //Skipping the service templates which do not contain topology template
+ .filter(serviceTemplateEntry -> serviceTemplateEntry.getValue().getTopology_template() != null).forEach(serviceTemplateEntry ->
+ //Collect all the ports across all the service templates
+ collectPorts(serviceTemplateEntry.getValue()));
//Collect External ports from the list of all ports collected above
filterExternalPorts();
//Handle external port changes
@@ -91,13 +94,10 @@ public class PortMirroringEnricher {
return;
}
//Get all concrete port node templates from the service template
- Map<String, NodeTemplate> serviceTemplatePortNodeTemplates = nodeTemplates.entrySet().stream()
- .filter(nodeTemplateEntry -> (Objects.nonNull(nodeTemplateEntry.getValue()))
- && (isPortNodeTemplate(nodeTemplateEntry.getValue().getType())))
- .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
-
- portNodeTemplates.put(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
- serviceTemplatePortNodeTemplates);
+ Map<String, NodeTemplate> serviceTemplatePortNodeTemplates = nodeTemplates.entrySet().stream().filter(
+ nodeTemplateEntry -> (Objects.nonNull(nodeTemplateEntry.getValue())) && (isPortNodeTemplate(nodeTemplateEntry.getValue().getType())))
+ .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+ portNodeTemplates.put(ToscaUtil.getServiceTemplateFileName(serviceTemplate), serviceTemplatePortNodeTemplates);
//Get all linked internal ports from abstract node template link requirements
collectLinkedInternalPorts(nodeTemplates);
}
@@ -112,22 +112,19 @@ public class PortMirroringEnricher {
}
}
- private void handleSubstitutableNodeTemplate(List<String> abstractLinkedPortNodeTemplates,
- NodeTemplate nodeTemplate) {
+ private void handleSubstitutableNodeTemplate(List<String> abstractLinkedPortNodeTemplates, NodeTemplate nodeTemplate) {
List<Map<String, RequirementAssignment>> requirements = nodeTemplate.getRequirements();
if (Objects.isNull(requirements)) {
return;
}
- requirements
- .forEach(requirement -> addInternalPortToAbstractNode(requirement, abstractLinkedPortNodeTemplates));
+ requirements.forEach(requirement -> addInternalPortToAbstractNode(requirement, abstractLinkedPortNodeTemplates));
if (CollectionUtils.isNotEmpty(abstractLinkedPortNodeTemplates)) {
//Populate a map of the substitution service templates and list of internal ports
addCollectedPortsToAbstractServiceTemplatePortMap(nodeTemplate, abstractLinkedPortNodeTemplates);
}
}
- private void addInternalPortToAbstractNode(Map<String, RequirementAssignment> requirement,
- List<String> abstractLinkedPortNodeTemplates) {
+ private void addInternalPortToAbstractNode(Map<String, RequirementAssignment> requirement, List<String> abstractLinkedPortNodeTemplates) {
String requirementId = requirement.keySet().iterator().next();
if (requirementId.startsWith(ABSTRACT_LINK_REQUIREMENT_ID_PREFIX)) {
//Collect port node template ids from the link requirement ids in the abstract node template
@@ -135,16 +132,13 @@ public class PortMirroringEnricher {
}
}
- private void addCollectedPortsToAbstractServiceTemplatePortMap(NodeTemplate nodeTemplate,
- List<String> abstractLinkedPortNodeTemplates) {
+ private void addCollectedPortsToAbstractServiceTemplatePortMap(NodeTemplate nodeTemplate, List<String> abstractLinkedPortNodeTemplates) {
String substitutionServiceTemplateName;
if (Objects.isNull(nodeTemplate.getProperties())) {
return;
}
- Map serviceTemplateFilter = (Map<String, Object>) nodeTemplate.getProperties()
- .get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
- substitutionServiceTemplateName = (String)
- serviceTemplateFilter.get(ToscaConstants.SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME);
+ Map serviceTemplateFilter = (Map<String, Object>) nodeTemplate.getProperties().get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
+ substitutionServiceTemplateName = (String) serviceTemplateFilter.get(ToscaConstants.SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME);
if (Objects.isNull(substitutionServiceTemplateName)) {
return;
}
@@ -194,8 +188,7 @@ public class PortMirroringEnricher {
}
}
- private void handleExternalPortNodeTemplates(ServiceTemplate serviceTemplate,
- Map<String, NodeTemplate> externalPortNodeTemplates) {
+ private void handleExternalPortNodeTemplates(ServiceTemplate serviceTemplate, Map<String, NodeTemplate> externalPortNodeTemplates) {
for (Map.Entry<String, NodeTemplate> externalNodeTemplate : externalPortNodeTemplates.entrySet()) {
updateExternalPortNodeTemplate(externalNodeTemplate.getValue());
if (Objects.nonNull(DataModelUtil.getSubstitutionMappings(serviceTemplate))) {
@@ -205,14 +198,12 @@ public class PortMirroringEnricher {
}
}
- private void addPortMirroringSubstitutionMappingCapability(ServiceTemplate serviceTemplate,
- String externalPortNodeTemplateId) {
+ private void addPortMirroringSubstitutionMappingCapability(ServiceTemplate serviceTemplate, String externalPortNodeTemplateId) {
List<String> portMirroringCapability = new LinkedList<>();
portMirroringCapability.add(externalPortNodeTemplateId);
portMirroringCapability.add(PORT_MIRRORING_CAPABILITY_ID);
String substitutionMappingCapabilityId = PORT_MIRRORING_CAPABILITY_ID + "_" + externalPortNodeTemplateId;
- DataModelUtil.addSubstitutionMappingCapability(serviceTemplate,
- substitutionMappingCapabilityId, portMirroringCapability);
+ DataModelUtil.addSubstitutionMappingCapability(serviceTemplate, substitutionMappingCapabilityId, portMirroringCapability);
}
private void addPortMirroringCapability(NodeTemplate portNodeTemplate) {
@@ -226,17 +217,14 @@ public class PortMirroringEnricher {
}
if (!connectionPoint.isEmpty()) {
portMirroringCapabilityProperties.put(PORT_MIRRORING_CAPABILITY_CP_PROPERTY_NAME, connectionPoint);
- DataModelUtil.addNodeTemplateCapability(portNodeTemplate,
- PORT_MIRRORING_CAPABILITY_ID, portMirroringCapabilityProperties, null);
+ DataModelUtil.addNodeTemplateCapability(portNodeTemplate, PORT_MIRRORING_CAPABILITY_ID, portMirroringCapabilityProperties, null);
}
}
- private void setConnectionPointNfcType(NodeTemplate portNodeTemplate,
- PortMirroringConnectionPointDescription connectionPoint) {
+ private void setConnectionPointNfcType(NodeTemplate portNodeTemplate, PortMirroringConnectionPointDescription connectionPoint) {
//Get NFC_Type from the binding requirement node
- Optional<List<RequirementAssignment>> requirementAssignment =
- DataModelUtil.getRequirementAssignment(portNodeTemplate.getRequirements(), ToscaConstants
- .BINDING_REQUIREMENT_ID);
+ Optional<List<RequirementAssignment>> requirementAssignment = DataModelUtil
+ .getRequirementAssignment(portNodeTemplate.getRequirements(), ToscaConstants.BINDING_REQUIREMENT_ID);
if (requirementAssignment.isPresent()) {
RequirementAssignment bindingRequirementAssignment = requirementAssignment.get().get(0);
String node = bindingRequirementAssignment.getNode();
@@ -244,10 +232,8 @@ public class PortMirroringEnricher {
}
}
- private void setConnectionPointNetworkRole(NodeTemplate portNodeTemplate,
- PortMirroringConnectionPointDescription connectionPoint) {
- Object networkRolePropertyValue =
- portNodeTemplate.getProperties().get(ToscaConstants.PORT_NETWORK_ROLE_PROPERTY_NAME);
+ private void setConnectionPointNetworkRole(NodeTemplate portNodeTemplate, PortMirroringConnectionPointDescription connectionPoint) {
+ Object networkRolePropertyValue = portNodeTemplate.getProperties().get(ToscaConstants.PORT_NETWORK_ROLE_PROPERTY_NAME);
if (Objects.nonNull(networkRolePropertyValue)) {
Object portMirroringNetworkRolePropertyVal = getClonedObject(networkRolePropertyValue);
connectionPoint.setNetwork_role(portMirroringNetworkRolePropertyVal);
@@ -257,9 +243,8 @@ public class PortMirroringEnricher {
private void addGlobalTypeImport(ServiceTemplate serviceTemplate) {
List<Map<String, Import>> imports = serviceTemplate.getImports();
Map<String, Import> openecompIndexImport = new HashMap<>();
- openecompIndexImport.put("openecomp_index",
- HeatToToscaUtil.createServiceTemplateImport(globalTypesServiceTemplate
- .get("openecomp/_index.yml")));
+ openecompIndexImport
+ .put("openecomp_index", HeatToToscaUtil.createServiceTemplateImport(globalTypesServiceTemplate.get("openecomp/_index.yml")));
imports.add(openecompIndexImport);
}
@@ -270,26 +255,22 @@ public class PortMirroringEnricher {
}
private Set<String> getPortNodeTypes() {
- return ImmutableSet.of(ToscaNodeType.NEUTRON_PORT,
- ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE, ToscaNodeType.CONTRAIL_PORT);
+ return ImmutableSet.of(ToscaNodeType.NEUTRON_PORT, ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE, ToscaNodeType.CONTRAIL_PORT);
}
private boolean isSubstitutableNodeTemplate(NodeTemplate nodeTemplate) {
- return Objects.nonNull(nodeTemplate.getDirectives())
- && nodeTemplate.getDirectives()
- .contains(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
+ return Objects.nonNull(nodeTemplate.getDirectives()) && nodeTemplate.getDirectives()
+ .contains(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
}
- private boolean isInternalPort(String serviceTemplateFileName, String nodeTemplateId,
- NodeTemplate nodeTemplate) {
- return isAbstractInternalPort(serviceTemplateFileName, nodeTemplateId)
- || isConcreteInternalPort(nodeTemplate);
+ private boolean isInternalPort(String serviceTemplateFileName, String nodeTemplateId, NodeTemplate nodeTemplate) {
+ return isAbstractInternalPort(serviceTemplateFileName, nodeTemplateId) || isConcreteInternalPort(nodeTemplate);
}
private boolean isAbstractInternalPort(String serviceTemplateFileName, String nodeTemplateId) {
//Check if port corresponds to an abstract internal port
- return portNodeTemplateIdsFromAbstract.containsKey(serviceTemplateFileName)
- && portNodeTemplateIdsFromAbstract.get(serviceTemplateFileName).contains(nodeTemplateId);
+ return portNodeTemplateIdsFromAbstract.containsKey(serviceTemplateFileName) && portNodeTemplateIdsFromAbstract.get(serviceTemplateFileName)
+ .contains(nodeTemplateId);
}
private boolean isConcreteInternalPort(NodeTemplate nodeTemplate) {