aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VmInterfaceToNetResourceConnection.java
diff options
context:
space:
mode:
authorojasdubey <ojas.dubey@amdocs.com>2018-05-23 18:04:28 +0530
committerOren Kleks <orenkle@amdocs.com>2018-05-28 07:03:23 +0000
commitd981ef67e956f1e5a28ca77f2841f49e468c5b1b (patch)
tree58bed186fb242d0cfb5e6522613d8df1168ffe16 /openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VmInterfaceToNetResourceConnection.java
parentcb72310ab92091c47502f7e3c1bf2162884dca83 (diff)
Refactor Onboarding Translator code
1. Fixed sonar violations 2. Fixed static analysis issues 3. Refactored methods for code smells 4. Moved log messages to a common place Change-Id: I33725bc51040a2c7683b06b4294dea6f96c425e3 Issue-ID: SDC-1331 Signed-off-by: ojasdubey <ojas.dubey@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VmInterfaceToNetResourceConnection.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VmInterfaceToNetResourceConnection.java210
1 files changed, 102 insertions, 108 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VmInterfaceToNetResourceConnection.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VmInterfaceToNetResourceConnection.java
index d5fb91a8a2..75938d69f9 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VmInterfaceToNetResourceConnection.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VmInterfaceToNetResourceConnection.java
@@ -1,145 +1,139 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- * ============LICENSE_END=========================================================
*/
package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+import static org.openecomp.sdc.translator.services.heattotosca.HeatToToscaLogConstants.LOG_MULTIPLE_VIRTUAL_NETWORK_REFS_VALUES;
+import static org.openecomp.sdc.translator.services.heattotosca.HeatToToscaLogConstants.LOG_UNSUPPORTED_VMI_NETWORK_REQUIREMENT_CONNECTION;
+
+import com.google.common.collect.ImmutableList;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.Predicate;
+
+import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
+import org.onap.sdc.tosca.datatypes.model.NodeType;
+import org.onap.sdc.tosca.datatypes.model.RequirementDefinition;
import org.openecomp.sdc.heat.datatypes.manifest.FileData;
import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.heat.services.HeatConstants;
import org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType;
import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
import org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType;
-import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
-import org.onap.sdc.tosca.datatypes.model.NodeType;
-import org.onap.sdc.tosca.datatypes.model.RequirementDefinition;
import org.openecomp.sdc.translator.datatypes.heattotosca.AttachedResourceId;
import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.function.Predicate;
-
public class ContrailV2VmInterfaceToNetResourceConnection
- extends ResourceConnectionUsingRequirementHelper {
+ extends ResourceConnectionUsingRequirementHelper {
- public ContrailV2VmInterfaceToNetResourceConnection(
- ResourceTranslationBase resourceTranslationBase, TranslateTo translateTo,
- FileData nestedFileData, NodeTemplate substitutionNodeTemplate, NodeType nodeType) {
- super(resourceTranslationBase, translateTo, nestedFileData, substitutionNodeTemplate, nodeType);
- }
-
- @Override
- protected boolean isDesiredNodeTemplateType(NodeTemplate nodeTemplate) {
- return (nodeTemplate.getType()
- .equals(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE)
- || nodeTemplate.getType()
- .equals(ToscaNodeType.CONTRAILV2_VLAN_SUB_INTERFACE));
- }
-
- @Override
- protected List<Predicate<RequirementDefinition>> getPredicatesListForConnectionPoints() {
- ArrayList<Predicate<RequirementDefinition>> predicates = new ArrayList<>();
- predicates.add(
- req -> req.getCapability().equals(ToscaCapabilityType.NATIVE_NETWORK_LINKABLE)
- && (req.getNode() == null || req.getNode().equals(ToscaNodeType.NATIVE_ROOT))
- && req.getRelationship()
- .equals(ToscaRelationshipType.NATIVE_NETWORK_LINK_TO));
- return predicates;
- }
-
- @Override
- protected Optional<List<String>> getConnectorPropertyParamName(String heatResourceId,
- Resource heatResource,
- HeatOrchestrationTemplate
- nestedHeatOrchestrationTemplate,
- String nestedHeatFileName) {
- List<String> networks = new ArrayList<>();
- Object virtualNetworkRefs = heatResource.getProperties().get("virtual_network_refs");
- if (Objects.isNull(virtualNetworkRefs) || !(virtualNetworkRefs instanceof List)
- || ((List) virtualNetworkRefs).size() == 0) {
- return Optional.empty();
+ ContrailV2VmInterfaceToNetResourceConnection(ResourceTranslationBase resourceTranslationBase,
+ TranslateTo translateTo, FileData nestedFileData,
+ NodeTemplate substitutionNodeTemplate, NodeType nodeType) {
+ super(resourceTranslationBase, translateTo, nestedFileData, substitutionNodeTemplate, nodeType);
}
- if (((List) virtualNetworkRefs).size() > 1) {
- logger.warn("Heat resource: '" + translateTo.getResourceId() + "' with nested heat file: '"
- + translateTo.getResource().getType()
- + "' has resource '" + heatResourceId + "' with type '"
- + HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource()
- + "' which include 'virtual_network_refs' property with more than one network values, "
- + "only the first network will be translated, all rest will be ignored in TOSCA "
- + "translation.");
+
+ @Override
+ protected boolean isDesiredNodeTemplateType(NodeTemplate nodeTemplate) {
+ return (nodeTemplate.getType()
+ .equals(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE)
+ || nodeTemplate.getType()
+ .equals(ToscaNodeType.CONTRAILV2_VLAN_SUB_INTERFACE));
}
- Object virtualNetworkRef = ((List) virtualNetworkRefs).get(0);
- Optional<AttachedResourceId> network = HeatToToscaUtil
- .extractAttachedResourceId(nestedFileData.getFile(), nestedHeatOrchestrationTemplate,
- translateTo.getContext(), virtualNetworkRef);
- if (network.isPresent() && network.get().isGetParam()
- && network.get().getEntityId() instanceof String) {
- networks.add((String) network.get().getEntityId());
+
+ @Override
+ protected List<Predicate<RequirementDefinition>> getPredicatesListForConnectionPoints() {
+ ArrayList<Predicate<RequirementDefinition>> predicates = new ArrayList<>();
+ predicates.add(
+ req -> req.getCapability().equals(ToscaCapabilityType.NATIVE_NETWORK_LINKABLE)
+ && (req.getNode() == null || req.getNode().equals(ToscaNodeType.NATIVE_ROOT))
+ && req.getRelationship()
+ .equals(ToscaRelationshipType.NATIVE_NETWORK_LINK_TO));
+ return predicates;
}
- return Optional.of(networks);
- }
- @Override
- protected String getDesiredResourceType() {
- return HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource();
- }
+ @Override
+ protected Optional<List<String>> getConnectorPropertyParamName(String heatResourceId,
+ Resource heatResource,
+ HeatOrchestrationTemplate
+ nestedHeatOrchestrationTemplate,
+ String nestedHeatFileName) {
+ List<String> networks = new ArrayList<>();
+ Object virtualNetworkRefs = heatResource.getProperties().get(HeatConstants.VIRTUAL_NETWORK_REFS_PROPERTY_NAME);
+ if (Objects.isNull(virtualNetworkRefs) || !(virtualNetworkRefs instanceof List)
+ || ((List) virtualNetworkRefs).isEmpty()) {
+ return Optional.empty();
+ }
+ if (((List) virtualNetworkRefs).size() > 1) {
+ logger.warn(LOG_MULTIPLE_VIRTUAL_NETWORK_REFS_VALUES, translateTo.getResourceId(),
+ translateTo.getResource().getType(), heatResourceId,
+ HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource());
+ }
+ Object virtualNetworkRef = ((List) virtualNetworkRefs).get(0);
+ Optional<AttachedResourceId> network = HeatToToscaUtil
+ .extractAttachedResourceId(nestedFileData.getFile(), nestedHeatOrchestrationTemplate,
+ translateTo.getContext(), virtualNetworkRef);
+ if (network.isPresent() && network.get().isGetParam()
+ && network.get().getEntityId() instanceof String) {
+ networks.add((String) network.get().getEntityId());
+ }
+ return Optional.of(networks);
+ }
- @Override
- protected void addRequirementToConnectResources(
- Map.Entry<String, RequirementDefinition> requirementDefinitionEntry,
- List<String> paramNames) {
- if (paramNames == null || paramNames.isEmpty()) {
- return;
+ @Override
+ protected String getDesiredResourceType() {
+ return HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource();
}
- for (String paramName : paramNames) {
- Object paramValue = translateTo.getResource().getProperties().get(paramName);
- List<String> supportedNetworkTypes =
- Arrays.asList(HeatResourcesTypes.NEUTRON_NET_RESOURCE_TYPE.getHeatResource(),
- HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_NETWORK_RESOURCE_TYPE.getHeatResource());
- addRequirementToConnectResource(requirementDefinitionEntry, paramName, paramValue,
- supportedNetworkTypes);
+ @Override
+ protected void addRequirementToConnectResources(
+ Map.Entry<String, RequirementDefinition> requirementDefinitionEntry,
+ List<String> paramNames) {
+ if (paramNames == null || paramNames.isEmpty()) {
+ return;
+ }
+ for (String paramName : paramNames) {
+ Object paramValue = translateTo.getResource().getProperties().get(paramName);
+ List<String> supportedNetworkTypes =
+ ImmutableList.of(HeatResourcesTypes.NEUTRON_NET_RESOURCE_TYPE.getHeatResource(),
+ HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_NETWORK_RESOURCE_TYPE.getHeatResource());
+
+ addRequirementToConnectResource(requirementDefinitionEntry, paramName, paramValue,
+ supportedNetworkTypes);
+ }
}
- }
- @Override
- boolean validateResourceTypeSupportedForReqCreation(String nestedResourceId,
- final String nestedPropertyName,
- String connectionPointId,
- Resource connectedResource,
- List<String> supportedTypes) {
- if (!resourceTranslationBase.isResourceTypeSupported(connectedResource, supportedTypes)) {
- logger.warn("Nested resource '" + nestedResourceId + "' property '" + nestedPropertyName
- + "' is pointing to a resource with type '" + connectedResource.getType()
- + "' which is not supported for requirement '" + connectionPointId
- + "' that connect virtual machine interface to network. Supported types are: '"
- + supportedTypes.toString()
- + "', therefore, this TOSCA requirement will not be connected.");
- return false;
+ @Override
+ boolean validateResourceTypeSupportedForReqCreation(String nestedResourceId,
+ final String nestedPropertyName,
+ String connectionPointId,
+ Resource connectedResource,
+ List<String> supportedTypes) {
+ if (resourceTranslationBase.isUnsupportedResourceType(connectedResource, supportedTypes)) {
+ logger.warn(LOG_UNSUPPORTED_VMI_NETWORK_REQUIREMENT_CONNECTION,
+ nestedResourceId, nestedPropertyName, connectedResource.getType(), connectionPointId,
+ supportedTypes.toString());
+ return false;
+ }
+ return true;
}
- return true;
- }
}