From 370acda1a09a6fa4dc910869d7fb21f44626fe78 Mon Sep 17 00:00:00 2001 From: liboNet Date: Sat, 10 Nov 2018 05:32:42 +0800 Subject: Fix virtual_binding error under VDU requirements 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 --- .../reception/decoding/pdpx/ExtractFromNode.java | 13 +++++-- .../decoding/pdpx/TestPolicyDecoderCsarPdpx.java | 42 +++++++++++++++++++-- .../test/resources/hpaPolicyPciePassthrough.csar | Bin 46645 -> 47214 bytes .../src/test/resources/hpaPolicySriov.csar | Bin 46630 -> 47201 bytes .../src/test/resources/s3p_0_pciVendorId.csar | Bin 0 -> 50534 bytes 5 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 plugins/reception-plugins/src/test/resources/s3p_0_pciVendorId.csar (limited to 'plugins/reception-plugins/src') diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ExtractFromNode.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ExtractFromNode.java index f2f27ce8..699ba49e 100644 --- a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ExtractFromNode.java +++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/ExtractFromNode.java @@ -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 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; diff --git a/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/pdpx/TestPolicyDecoderCsarPdpx.java b/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/pdpx/TestPolicyDecoderCsarPdpx.java index de148520..3826ec92 100644 --- a/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/pdpx/TestPolicyDecoderCsarPdpx.java +++ b/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/pdpx/TestPolicyDecoderCsarPdpx.java @@ -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 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\":\"\"")); + + } } diff --git a/plugins/reception-plugins/src/test/resources/hpaPolicyPciePassthrough.csar b/plugins/reception-plugins/src/test/resources/hpaPolicyPciePassthrough.csar index 7a9b30b3..a97e76d2 100644 Binary files a/plugins/reception-plugins/src/test/resources/hpaPolicyPciePassthrough.csar and b/plugins/reception-plugins/src/test/resources/hpaPolicyPciePassthrough.csar differ diff --git a/plugins/reception-plugins/src/test/resources/hpaPolicySriov.csar b/plugins/reception-plugins/src/test/resources/hpaPolicySriov.csar index 4eb7458d..29a8ca9b 100644 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 index 00000000..b1d3cab5 Binary files /dev/null and b/plugins/reception-plugins/src/test/resources/s3p_0_pciVendorId.csar differ -- cgit 1.2.3-korg