HEAT to TOSCA VM Consolidation 84/106884/2
authorBen David, Elad (eb7504) <eb7504@intl.att.com>
Thu, 30 Apr 2020 11:00:28 +0000 (14:00 +0300)
committerOfir Sonsino <ofir.sonsino@intl.att.com>
Thu, 30 Apr 2020 14:49:57 +0000 (14:49 +0000)
Change-Id: I00c9cf90d7486af33955acae7dfe653e14ceebdc
Issue-ID: SDC-2997
Signed-off-by: Ben David, Elad (eb7504) <eb7504@intl.att.com>
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c2/differentNetwork/out/MainServiceTemplate.yaml

index 28b2656..b99bcf8 100644 (file)
@@ -494,7 +494,18 @@ public class ConsolidationService {
             return true;
         }
         return !CommonUtil.isMultimapEmpty(firstEntityMap) && !CommonUtil.isMultimapEmpty(secondEntityMap)
-                && firstEntityMap.keySet().equals(secondEntityMap.keySet());
+                && equalsIgnoreSuffix(new HashSet<>(firstEntityMap.keySet()),new HashSet<>(secondEntityMap.keySet()));
+    }
+
+    private boolean equalsIgnoreSuffix(Set<String> firstKeySet, Set<String> secondKeySet){
+      Set<String> firstKeySetTrimmed = firstKeySet.stream().map(this::trimSuffix).collect(Collectors.toSet());
+      Set<String> secondKeySetTrimmed = secondKeySet.stream().map(this::trimSuffix).collect(Collectors.toSet());
+      return firstKeySetTrimmed.equals(secondKeySetTrimmed);
+    }
+
+    private String trimSuffix(String volumeName){
+      int suffixPosition = volumeName.lastIndexOf("_");
+      return volumeName.substring(0, suffixPosition);
     }
 
   private boolean checkGroupIdsRelations(EntityConsolidationData startingEntity,
index ed8d0a7..a9e1dbe 100644 (file)
@@ -981,7 +981,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1283,7 +1283,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -1351,7 +1351,7 @@ public class ConsolidationServiceTest {
 
     translationContext.setConsolidationData(consolidationData);
     List<UnifiedCompositionMode> expectedUnifiedModes =
-        Collections.singletonList(UnifiedCompositionMode.CatalogInstance);
+        Collections.singletonList(UnifiedCompositionMode.ScalingInstances);
     verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
   }
 
@@ -2441,7 +2441,7 @@ public class ConsolidationServiceTest {
                 "role_1", "interface_2", Collections.singletonList("node_2"), null, null, null,
                 consolidationData));
 
-    testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
+    testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.ScalingInstances));
   }
 
   @Test
@@ -2467,7 +2467,7 @@ public class ConsolidationServiceTest {
                 "role_1", "interface_2", null, Collections.singletonList("node_2"), null, null,
                 consolidationData));
 
-    testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.CatalogInstance));
+    testConsolidation(1, toscaServiceModel, consolidationData, Collections.singletonList(UnifiedCompositionMode.ScalingInstances));
   }
 
   @Test
index 98d3d8e..b7aff26 100644 (file)
@@ -703,7 +703,7 @@ topology_template:
         shared: true
         network_name:
           get_input: jsa_net_name
-    abstract_pd_server_0:
+    abstract_pd_server:
       type: org.openecomp.resource.abstract.nodes.pd_server
       directives:
       - substitutable
@@ -711,18 +711,25 @@ topology_template:
         port_pd_server_port_1_network_role_tag: oam
         port_pd_server_port_1_network:
         - get_input: oam_net_name
+        - get_input: oam_net_name
         compute_pd_server_availability_zone:
         - get_input: availabilityzone_name
+        - get_input: availabilityzone_name
         compute_pd_server_name:
         - get_input:
           - pd_server_names
           - 1
+        - get_input:
+          - pd_server_names
+          - 0
         subinterface_nested_service_template_filter_count:
         - 9
+        - 9
         vm_flavor_name:
           get_input: pd_flavor_name
         subinterface_nested_p1:
         - pd_server_1_port_1
+        - pd_server_port_1
         port_pd_server_port_1_mac_requirements:
           mac_count_required:
             is_required: false
@@ -730,6 +737,7 @@ topology_template:
           get_input: pd_image_name
         subinterface_nested_net1:
         - test_net2
+        - test_net1
         port_pd_server_port_1_ip_requirements:
         - ip_version: 4
           ip_count_required:
@@ -738,9 +746,10 @@ topology_template:
             is_required: false
         compute_pd_server_user_data_format:
         - RAW
+        - RAW
         service_template_filter:
           substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 1
+          count: 2
         index_value:
           get_property:
           - SELF
@@ -751,50 +760,6 @@ topology_template:
           capability: tosca.capabilities.network.Linkable
           node: test_net2
           relationship: tosca.relationships.network.LinksTo
-    abstract_pd_server_1:
-      type: org.openecomp.resource.abstract.nodes.pd_server
-      directives:
-      - substitutable
-      properties:
-        port_pd_server_port_1_network_role_tag: oam
-        port_pd_server_port_1_network:
-        - get_input: oam_net_name
-        compute_pd_server_availability_zone:
-        - get_input: availabilityzone_name
-        compute_pd_server_name:
-        - get_input:
-          - pd_server_names
-          - 0
-        subinterface_nested_service_template_filter_count:
-        - 9
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        subinterface_nested_p1:
-        - pd_server_port_1
-        port_pd_server_port_1_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        subinterface_nested_net1:
-        - test_net1
-        port_pd_server_port_1_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_pd_server_user_data_format:
-        - RAW
-        service_template_filter:
-          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
       - subinterface_link_template_Vlan_vmi_1_pd_server_pd_server_port_1_nested:
           capability: tosca.capabilities.network.Linkable
           node: test_net1
@@ -808,5 +773,4 @@ topology_template:
       members:
       - test_net2
       - test_net1
-      - abstract_pd_server_0
-      - abstract_pd_server_1
+      - abstract_pd_server
\ No newline at end of file