Fix virtual_binding error under VDU requirements 71/72271/2
authorliboNet <libo.zhu@intel.com>
Fri, 9 Nov 2018 21:32:42 +0000 (05:32 +0800)
committerliboNet <libo.zhu@intel.com>
Mon, 12 Nov 2018 18:02:07 +0000 (02:02 +0800)
virtual_binding will bind CP to a VDU but virtual_link
use the node name instead of the name of node's propertiy
add new test case to cover s3p
the picvendorId's path has been changed based on demo repo

Change-Id: I0ca400eab4d16284f14cb568fe3da5b409dd9222
Issue-ID: POLICY-1254
Signed-off-by: liboNet <libo.zhu@intel.com>
plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ExtractFromNode.java
plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/pdpx/TestPolicyDecoderCsarPdpx.java
plugins/reception-plugins/src/test/resources/hpaPolicyPciePassthrough.csar
plugins/reception-plugins/src/test/resources/hpaPolicySriov.csar
plugins/reception-plugins/src/test/resources/s3p_0_pciVendorId.csar [new file with mode: 0644]

index f2f27ce..699ba49 100644 (file)
@@ -38,6 +38,7 @@ import org.onap.sdc.toscaparser.api.CapabilityAssignment;
 import org.onap.sdc.toscaparser.api.CapabilityAssignments;
 import org.onap.sdc.toscaparser.api.NodeTemplate;
 import org.onap.sdc.toscaparser.api.RequirementAssignment;
+import org.onap.sdc.toscaparser.api.RequirementAssignments;
 import org.onap.sdc.toscaparser.api.elements.Metadata;
 
 /**
@@ -57,7 +58,8 @@ public class ExtractFromNode {
     private static final String MEMORY_PAGE_SIZE_PATH = "virtual_memory#vdu_memory_requirements#memoryPageSize";
     private static final String NETWORK_INTERFACE_TYPE_PATH =
             "virtual_network_interface_requirements#network_interface_requirements#interfaceType";
-    private static final String NETWORK_PCI_PATH = "virtual_network_interface_requirements#nic_io_requirements";
+    private static final String NETWORK_PCI_PATH = 
+            "virtual_network_interface_requirements#nic_io_requirements#logical_node_requirements";
     private static final String BASIC_CAPABILITIES_HPA_FEATURE = "BasicCapabilities";
     private static final String HUGE_PAGES_HPA_FEATURE = "hugePages";
     private static final Map<String, String> NETWORK_HPA_FEATURE_MAP =
@@ -132,7 +134,8 @@ public class ExtractFromNode {
             flavorDirective.setType("flavor_directives");
             flavorDirective.getAttributes().add(flavorAttribute);
             final FlavorFeature flavorFeature = new FlavorFeature();
-            flavorFeature.setId(sdcCsarHelper.getNodeTemplatePropertyLeafValue(node, "name"));
+            flavorFeature.setId(node.toString());
+            LOGGER.debug("the name of node =" + node.toString());
             flavorFeature.getDirectives().add(flavorDirective);
 
             final CapabilityAssignments capabilityAssignments = sdcCsarHelper.getCapabilitiesOf(node);
@@ -291,8 +294,10 @@ public class ExtractFromNode {
                 return;
             }
 
-            for (final RequirementAssignment requriement : sdcCsarHelper.getRequirementsOf(node).getAll()) {
-                final String nodeTemplateName = requriement.getNodeTemplateName().toLowerCase();
+            final RequirementAssignments requriements =
+                sdcCsarHelper.getRequirementsOf(node).getRequirementsByName("virtual_binding");
+            for (final RequirementAssignment requriement : requriements.getAll()) {
+                final String nodeTemplateName = requriement.getNodeTemplateName();
                 LOGGER.debug("getNodeTemplateName =" + nodeTemplateName);
                 if (nodeTemplateName == null) {
                     continue;
index de14852..3826ec9 100644 (file)
@@ -82,7 +82,7 @@ public class TestPolicyDecoderCsarPdpx {
         assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
         assertTrue(policy.getConfigBody().contains("\"policyType\":\"Optimization\""));
 
-        assertTrue(policy.getConfigBody().contains("\"id\":\"vdu_vnf_1\""));
+        assertTrue(policy.getConfigBody().contains("\"id\":\"VDU_vnf_1\""));
         assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.node.nfv.Vdu.Compute\""));
         assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directives\""));
         assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"BasicCapabilities\""));
@@ -111,7 +111,7 @@ public class TestPolicyDecoderCsarPdpx {
         assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
         assertTrue(policy.getConfigBody().contains("\"policyType\":\"Optimization\""));
 
-        assertTrue(policy.getConfigBody().contains("\"id\":\"vdu_vnf_1\""));
+        assertTrue(policy.getConfigBody().contains("\"id\":\"VDU_vnf_1\""));
         assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.node.nfv.Vdu.Compute\""));
         assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directives\""));
         assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
@@ -152,7 +152,7 @@ public class TestPolicyDecoderCsarPdpx {
         assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
         assertTrue(policy.getConfigBody().contains("\"policyType\":\"Optimization\""));
 
-        assertTrue(policy.getConfigBody().contains("\"id\":\"vdu_vnf_1\""));
+        assertTrue(policy.getConfigBody().contains("\"id\":\"VDU_vnf_1\""));
         assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.node.nfv.Vdu.Compute\""));
         assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directives\""));
         assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
@@ -195,7 +195,7 @@ public class TestPolicyDecoderCsarPdpx {
         assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
         assertTrue(policy.getConfigBody().contains("\"policyType\":\"Optimization\""));
 
-        assertTrue(policy.getConfigBody().contains("\"id\":\"vdu_vnf_1\""));
+        assertTrue(policy.getConfigBody().contains("\"id\":\"VDU_vnf_1\""));
         assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.node.nfv.Vdu.Compute\""));
         assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directives\""));
         assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
@@ -209,4 +209,38 @@ public class TestPolicyDecoderCsarPdpx {
         assertTrue(policy.getConfigBody().contains("\"operator\":\"\""));
         assertTrue(policy.getConfigBody().contains("\"unit\":\"MB\""));
     }
+
+    @Test
+    public void testS3p0PciVendorId() throws IOException, PolicyDecodingException {
+        final Csar csar = new Csar("src/test/resources/s3p_0_pciVendorId.csar");
+        final PolicyDecoderCsarPdpx policyDecoderCsarPdpx = new PolicyDecoderCsarPdpx();
+        policyDecoderCsarPdpx.configure(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
+
+        final Collection<OptimizationPolicy> policies = policyDecoderCsarPdpx.decode(csar);
+        assertEquals(1, policies.size());
+        final OptimizationPolicy policy = (OptimizationPolicy) policies.toArray()[0];
+
+        assertEquals("onapName", policy.getOnapName());
+        assertTrue(policy.getPolicyName().startsWith("OOF."));
+        assertTrue(policy.getConfigBody().contains("\"priority\":\"5\""));
+        assertTrue(policy.getConfigBody().contains("\"riskLevel\":\"2\""));
+        assertTrue(policy.getConfigBody().contains("\"riskType\":\"Test\""));
+        assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
+        assertTrue(policy.getConfigBody().contains("\"policyType\":\"Optimization\""));
+
+        assertTrue(policy.getConfigBody().contains("\"id\":\"VDU_vgw_0\""));
+        assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.node.nfv.Vdu.Compute\""));
+        assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directives\""));
+        assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
+        assertTrue(policy.getConfigBody().contains("\"attribute_value\":\"\""));
+        assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"pciePassthrough\""));
+        assertTrue(policy.getConfigBody().contains("\"mandatory\":\"true\""));
+        assertTrue(policy.getConfigBody().contains("\"architecture\":\"generic\""));
+        assertTrue(policy.getConfigBody().contains("\"hpa-version\":\"v1\""));
+        assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciVendorId\""));
+        assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"1234\""));
+        assertTrue(policy.getConfigBody().contains("\"operator\":\"\""));
+        assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
+
+    }
 }
index 7a9b30b..a97e76d 100644 (file)
Binary files a/plugins/reception-plugins/src/test/resources/hpaPolicyPciePassthrough.csar and b/plugins/reception-plugins/src/test/resources/hpaPolicyPciePassthrough.csar differ
index 4eb7458..29a8ca9 100644 (file)
Binary files a/plugins/reception-plugins/src/test/resources/hpaPolicySriov.csar and b/plugins/reception-plugins/src/test/resources/hpaPolicySriov.csar differ
diff --git a/plugins/reception-plugins/src/test/resources/s3p_0_pciVendorId.csar b/plugins/reception-plugins/src/test/resources/s3p_0_pciVendorId.csar
new file mode 100644 (file)
index 0000000..b1d3cab
Binary files /dev/null and b/plugins/reception-plugins/src/test/resources/s3p_0_pciVendorId.csar differ