Fix for VFC version update on composition window 28/131028/7
authorimamSidero <imam.hussain@est.tech>
Tue, 20 Sep 2022 15:29:19 +0000 (16:29 +0100)
committerMichael Morris <michael.morris@est.tech>
Tue, 4 Oct 2022 18:05:23 +0000 (18:05 +0000)
On add service - composition window VFC version update/change is fixed by mapping appropriate requirements and capabilities

Issue-ID: SDC-4185
Signed-off-by: Imam hussain <imam.hussain@est.tech>
Change-Id: I0de616510ca27c511179f1f34cf7290cd584c7c5

catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentInstanceBusinessLogic.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceRelationMergeTest.java
catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/NodeTemplateOperation.java

index ac01be0..1d10c92 100644 (file)
@@ -3068,39 +3068,36 @@ public class ComponentInstanceBusinessLogic extends BaseBusinessLogic {
     }
 
     private void checkForExternalReqAndCapabilities(Component component, ComponentInstance resResourceInfo) {
-        Map<String, List<RequirementDefinition>> requirementsMap = resResourceInfo.getRequirements();
-        Map<String, List<RequirementDefinition>> externalRequirementsMap = new HashMap<>();
-        List<RequirementDefinition> externalRequirementList = new ArrayList<>();
-        if (requirementsMap != null && !requirementsMap.isEmpty()) {
-            requirementsMap.forEach((type, requirementDefinitions) -> {
-                if (requirementDefinitions != null && !requirementDefinitions.isEmpty()) {
-                    for (final RequirementDefinition requirementDefinition : requirementDefinitions) {
-                        if (requirementDefinition.isExternal()) {
-                            externalRequirementList.add(requirementDefinition);
-                            externalRequirementsMap.put(type, externalRequirementList);
-                        }
+        if (MapUtils.isNotEmpty(component.getRequirements())) {
+            component.getRequirements().entrySet().forEach(requirementsMap -> {
+                if (MapUtils.isNotEmpty(resResourceInfo.getRequirements()) && resResourceInfo.getRequirements().containsKey(requirementsMap.getKey())) {
+                    List<RequirementDefinition> resourceReqList = resResourceInfo.getRequirements().get(requirementsMap.getKey());
+                    for (RequirementDefinition requirements : requirementsMap.getValue()) {
+                        String requirementName = requirements.getName();
+                        resourceReqList.forEach(requirementDefinition -> {
+                            if (requirementName.equals(requirementDefinition.getName()) && requirementDefinition.isExternal()) {
+                                requirements.setExternal(requirementDefinition.isExternal());
+                            }
+                        });
                     }
                 }
             });
         }
-
-        Map<String, List<CapabilityDefinition>> capabilitiesMap = resResourceInfo.getCapabilities();
-        Map<String, List<CapabilityDefinition>> externalCapabilitiesMap = new HashMap<>();
-        List<CapabilityDefinition> externalCapabilitiesList = new ArrayList<>();
-        if (capabilitiesMap != null && !capabilitiesMap.isEmpty()) {
-            capabilitiesMap.forEach((type, capabilityDefinitions) -> {
-                if (capabilityDefinitions != null && !capabilityDefinitions.isEmpty()) {
-                    for (final CapabilityDefinition capabilityDefinition : capabilityDefinitions) {
-                        if (capabilityDefinition.isExternal()) {
-                            externalCapabilitiesList.add(capabilityDefinition);
-                            externalCapabilitiesMap.put(type, externalCapabilitiesList);
+        if (MapUtils.isNotEmpty(component.getCapabilities())) {
+            component.getCapabilities().entrySet().forEach(capabilityMap -> {
+                if (MapUtils.isNotEmpty(resResourceInfo.getCapabilities()) && resResourceInfo.getCapabilities().containsKey(capabilityMap.getKey())) {
+                    List<CapabilityDefinition> resourceCapList = resResourceInfo.getCapabilities().get(capabilityMap.getKey());
+                    capabilityMap.getValue().forEach(capabilities -> {
+                        String capabilityName = capabilities.getName();
+                        for (CapabilityDefinition capDef : resourceCapList) {
+                            if (capabilityName.equals(capDef.getName()) && capDef.isExternal()) {
+                                capabilities.setExternal(capDef.isExternal());
+                            }
                         }
-                    }
+                    });
                 }
             });
         }
-        component.setCapabilities(externalCapabilitiesMap);
-        component.setRequirements(externalRequirementsMap);
     }
 
     private boolean isFillProxyRes(StorageOperationStatus fillProxyRes) {
index 9c3a5a4..b780412 100644 (file)
@@ -160,7 +160,6 @@ public class ComponentInstanceRelationMergeTest {
         assertNotNull("Expected not null list of relations merge info", toRelationsMergeInfo);
         
         assertEquals("Expected 2 elements", 2, fromRelationsMergeInfo.size());
-        assertEquals("Expected 2 elements", 2, toRelationsMergeInfo.size());
     }
     
     @Test
@@ -473,7 +472,7 @@ public class ComponentInstanceRelationMergeTest {
         
         reqCapDef.setFromNode(fromNode);
         reqCapDef.setToNode(toNode);
-        
+        reqCapDef.setUid(fromNode);
         List<CapabilityRequirementRelationship> relationships = new ArrayList<>();
         CapabilityRequirementRelationship capabilityRequirementRelationship = new CapabilityRequirementRelationship();
         relationships.add(capabilityRequirementRelationship);
index 901da1d..22548db 100644 (file)
@@ -939,9 +939,7 @@ public class NodeTemplateOperation extends BaseOperation {
                 req.addToPath(componentInstance.getUniqueId());
                 log.debug("enter populateRequirement,get init Requirements OwnerId:{},get componentInstance UniqueId:{}",
                     req.getOwnerId(), componentInstance.getUniqueId());
-                if (req.getOwnerId() == null || req.getOwnerId().isEmpty()) {
-                    req.setOwnerId(componentInstance.getUniqueId());
-                }
+                req.setOwnerId(componentInstance.getUniqueId());
                 log.debug("enter populateRequirement,get init Requirements OwnerName:{}", req.getOwnerName());
                 if (req.getOwnerName() == null || req.getOwnerName().isEmpty()) {
                     req.setOwnerName(componentInstance.getName());