extract subinterface_network_quantity from policy 27/78527/1
authorBenjamin, Max (mb388a) <mb388a@us.att.com>
Thu, 14 Feb 2019 23:12:24 +0000 (18:12 -0500)
committerBenjamin, Max (mb388a) <mb388a@us.att.com>
Thu, 14 Feb 2019 23:12:43 +0000 (18:12 -0500)
- Removed duplicate code that was causing a NumberFormatException
- Changed name from crTarget to policyNetworkCollection
- Added code to check we are setting the quantity on the correct
NetworkCollection
- Added code to extract the subinterface_network_quantity from the
nodeTemplate policy

Change-Id: Id12fa0241f16bfd4467209f08af5068d57b2d049
Issue-ID: SO-1510
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java

index 4f64af0..f8d9d6c 100644 (file)
@@ -1220,16 +1220,32 @@ public class ToscaResourceInstaller {
                        crInstanceGroupCustomization.setModelCustomizationUUID(
                                        networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID));
                
-                       String quantityName = instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_NAME);
-                       String fixedQuantity = quantityName.replace("NetworkCollection", "Fixed");
-                       if (toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate,
-                                       fixedQuantity + "_quantity") != null) {
-
-                               crInstanceGroupCustomization.setSubInterfaceNetworkQuantity(Integer.parseInt(
-                                               toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate,
-                                                               fixedQuantity + "_quantity"))); 
+                       // Loop through the template policy to find the subinterface_network_quantity property name.  Then extract the value for it.
+                       List<Policy> policyList = toscaResourceStructure.getSdcCsarHelper().getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(networkNodeTemplate, "org.openecomp.policies.scaling.Fixed");
+                       
+                       if(policyList != null){
+                               for(Policy policy : policyList){
+                                       for(String policyNetworkCollection : policy.getTargets()){
+                                               
+                                               if(policyNetworkCollection.equalsIgnoreCase(group.getName())){
+                                               
+                                                       Map<String, Object> propMap = policy.getPolicyProperties();
+                                       
+                                                       if(propMap.get("quantity") != null){
+                                                                                                                               
+                                                               String quantity = toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, getPropertyInput(propMap.get("quantity").toString())); 
+                                       
+                                                               if(quantity != null){
+                                                                       crInstanceGroupCustomization.setSubInterfaceNetworkQuantity(Integer.parseInt(quantity));
+                                                               }
+                                                                                               
+                                                   }
+                                       
+                                      }
+                                   }
+                           }   
                        }
-               
+                                       
                        crInstanceGroupCustomization.setDescription(
                                        toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate,
                                                        instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_NAME)
@@ -1246,7 +1262,6 @@ public class ToscaResourceInstaller {
 
                        networkInstanceGroupList.add(networkInstanceGroup);
 
-               //}
 
                toscaResourceStructure.setCatalogNetworkInstanceGroup(networkInstanceGroupList);
 
@@ -2032,6 +2047,20 @@ public class ToscaResourceInstaller {
                                + vfModuleStructure.getVfModuleMetadata().getVfModuleModelName();
        }
        
+       protected String getPropertyInput(String propertyName){
+       
+               String inputName = new String();
+               
+               if (propertyName != null) { 
+                       int getInputIndex = propertyName.indexOf("{get_input="); 
+                       if (getInputIndex > -1) { 
+                               inputName = propertyName.substring(getInputIndex+11, propertyName.length()-1); 
+                       } 
+               }
+               
+               return inputName;
+       }
+       
        
        protected static Timestamp getCurrentTimeStamp() {