2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2018 Intel. All rights reserved.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.distribution.reception.decoding.pdpx;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertTrue;
26 import java.io.IOException;
27 import java.util.Collection;
29 import org.junit.AfterClass;
30 import org.junit.BeforeClass;
31 import org.junit.Test;
32 import org.onap.policy.common.parameters.ParameterGroup;
33 import org.onap.policy.common.parameters.ParameterService;
34 import org.onap.policy.distribution.model.Csar;
35 import org.onap.policy.distribution.model.OptimizationPolicy;
36 import org.onap.policy.distribution.reception.decoding.PolicyDecodingException;
39 * Class to perform unit test of {@link PolicyDecoderCsarPdpx}.
42 public class TestPolicyDecoderCsarPdpx {
44 private static final String CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION = "csarToOptimizationPolicyConfiguration";
47 * Set up for test cases.
50 public static void setUp() {
51 final ParameterGroup parameterGroup = new PolicyDecoderCsarPdpxConfigurationParameterBuilder()
52 .setOnapName("onapName").setPolicyNamePrefix("OOF").setPriority("5").setRiskLevel("2")
53 .setRiskType("Test").setVersion("1.0").build();
54 parameterGroup.setName(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
55 ParameterService.register(parameterGroup);
62 public static void tearDown() {
63 ParameterService.deregister(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
67 public void testHpaPolicy2Vnf() throws IOException, PolicyDecodingException {
68 final Csar csar = new Csar("src/test/resources/service-TestNs8-csar.csar");
69 final PolicyDecoderCsarPdpx policyDecoderCsarPdpx = new PolicyDecoderCsarPdpx();
70 policyDecoderCsarPdpx.configure(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
72 final Collection<OptimizationPolicy> ret = policyDecoderCsarPdpx.decode(csar);
74 assertEquals(2, ret.size());
75 final OptimizationPolicy policy = (OptimizationPolicy) ret.toArray()[0];
77 assertEquals("onapName", policy.getOnapName());
78 assertTrue(policy.getPolicyName().startsWith("OOF."));
79 assertTrue(policy.getConfigBody().contains("\"priority\":\"5\""));
80 assertTrue(policy.getConfigBody().contains("\"riskLevel\":\"2\""));
81 assertTrue(policy.getConfigBody().contains("\"riskType\":\"Test\""));
82 assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
83 assertTrue(policy.getConfigBody().contains("\"policyType\":\"hpa\""));
85 assertTrue(policy.getConfigBody().contains("\"id\":\"VDU_vnf_1\""));
86 assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.nodes.nfv.Vdu.Compute\""));
87 assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directives\""));
88 assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"basicCapabilities\""));
89 assertTrue(policy.getConfigBody().contains("\"mandatory\":\"True\""));
90 assertTrue(policy.getConfigBody().contains("\"architecture\":\"generic\""));
91 assertTrue(policy.getConfigBody().contains("\"hpa-version\":\"v1\""));
92 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"virtualMemSize\""));
93 assertTrue(policy.getConfigBody().contains("\"operator\":\"=\""));
94 assertTrue(policy.getConfigBody().contains("\"unit\":\"MB\""));
98 public void testHpaPolicySriov() throws IOException, PolicyDecodingException {
99 final Csar csar = new Csar("src/test/resources/hpaPolicySriov.csar");
100 final PolicyDecoderCsarPdpx policyDecoderCsarPdpx = new PolicyDecoderCsarPdpx();
101 policyDecoderCsarPdpx.configure(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
103 final Collection<OptimizationPolicy> policies = policyDecoderCsarPdpx.decode(csar);
104 final OptimizationPolicy policy = (OptimizationPolicy) policies.toArray()[0];
106 assertEquals("onapName", policy.getOnapName());
107 assertTrue(policy.getPolicyName().startsWith("OOF."));
108 assertTrue(policy.getConfigBody().contains("\"priority\":\"5\""));
109 assertTrue(policy.getConfigBody().contains("\"riskLevel\":\"2\""));
110 assertTrue(policy.getConfigBody().contains("\"riskType\":\"Test\""));
111 assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
112 assertTrue(policy.getConfigBody().contains("\"policyType\":\"hpa\""));
114 assertTrue(policy.getConfigBody().contains("\"id\":\"VDU_vnf_1\""));
115 assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.nodes.nfv.Vdu.Compute\""));
116 assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directives\""));
117 assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
118 assertTrue(policy.getConfigBody().contains("\"attribute_value\":\"\""));
119 assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"sriovNICNetwork\""));
120 assertTrue(policy.getConfigBody().contains("\"mandatory\":\"True\""));
121 assertTrue(policy.getConfigBody().contains("\"architecture\":\"generic\""));
122 assertTrue(policy.getConfigBody().contains("\"hpa-version\":\"v1\""));
123 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciVendorId\""));
124 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"1234\""));
125 assertTrue(policy.getConfigBody().contains("\"operator\":\"=\""));
126 assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
127 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciDeviceId\""));
128 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"5678\""));
129 assertTrue(policy.getConfigBody().contains("\"operator\":\"=\""));
130 assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
131 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciNumDevices\""));
132 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"1\""));
133 assertTrue(policy.getConfigBody().contains("\"operator\":\"=\""));
134 assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
138 public void testHpaPolicyPciePassthrough() throws IOException, PolicyDecodingException {
139 final Csar csar = new Csar("src/test/resources/hpaPolicyPciePassthrough.csar");
140 final PolicyDecoderCsarPdpx policyDecoderCsarPdpx = new PolicyDecoderCsarPdpx();
141 policyDecoderCsarPdpx.configure(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
143 final Collection<OptimizationPolicy> policies = policyDecoderCsarPdpx.decode(csar);
144 assertEquals(2, policies.size());
145 final OptimizationPolicy policy = (OptimizationPolicy) policies.toArray()[0];
147 assertEquals("onapName", policy.getOnapName());
148 assertTrue(policy.getPolicyName().startsWith("OOF."));
149 assertTrue(policy.getConfigBody().contains("\"priority\":\"5\""));
150 assertTrue(policy.getConfigBody().contains("\"riskLevel\":\"2\""));
151 assertTrue(policy.getConfigBody().contains("\"riskType\":\"Test\""));
152 assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
153 assertTrue(policy.getConfigBody().contains("\"policyType\":\"hpa\""));
155 assertTrue(policy.getConfigBody().contains("\"id\":\"VDU_vnf_1\""));
156 assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.nodes.nfv.Vdu.Compute\""));
157 assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directives\""));
158 assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
159 assertTrue(policy.getConfigBody().contains("\"attribute_value\":\"\""));
160 assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"pciePassthrough\""));
161 assertTrue(policy.getConfigBody().contains("\"mandatory\":\"True\""));
162 assertTrue(policy.getConfigBody().contains("\"architecture\":\"generic\""));
163 assertTrue(policy.getConfigBody().contains("\"hpa-version\":\"v1\""));
164 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciVendorId\""));
165 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"1234\""));
166 assertTrue(policy.getConfigBody().contains("\"operator\":\"=\""));
167 assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
168 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciDeviceId\""));
169 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"5678\""));
170 assertTrue(policy.getConfigBody().contains("\"operator\":\"=\""));
171 assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
172 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciNumDevices\""));
173 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"1\""));
174 assertTrue(policy.getConfigBody().contains("\"operator\":\"=\""));
175 assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
181 public void testHpaPolicyHugePage() throws IOException, PolicyDecodingException {
182 final Csar csar = new Csar("src/test/resources/hpaPolicyHugePage.csar");
183 final PolicyDecoderCsarPdpx policyDecoderCsarPdpx = new PolicyDecoderCsarPdpx();
184 policyDecoderCsarPdpx.configure(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
186 final Collection<OptimizationPolicy> policies = policyDecoderCsarPdpx.decode(csar);
187 assertEquals(2, policies.size());
188 final OptimizationPolicy policy = (OptimizationPolicy) policies.toArray()[0];
190 assertEquals("onapName", policy.getOnapName());
191 assertTrue(policy.getPolicyName().startsWith("OOF."));
192 assertTrue(policy.getConfigBody().contains("\"priority\":\"5\""));
193 assertTrue(policy.getConfigBody().contains("\"riskLevel\":\"2\""));
194 assertTrue(policy.getConfigBody().contains("\"riskType\":\"Test\""));
195 assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
196 assertTrue(policy.getConfigBody().contains("\"policyType\":\"hpa\""));
198 assertTrue(policy.getConfigBody().contains("\"id\":\"VDU_vnf_1\""));
199 assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.nodes.nfv.Vdu.Compute\""));
200 assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directives\""));
201 assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
202 assertTrue(policy.getConfigBody().contains("\"attribute_value\":\"\""));
203 assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"hugePages\""));
204 assertTrue(policy.getConfigBody().contains("\"mandatory\":\"false\""));
205 assertTrue(policy.getConfigBody().contains("\"architecture\":\"generic\""));
206 assertTrue(policy.getConfigBody().contains("\"hpa-version\":\"v1\""));
207 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"memoryPageSize\""));
208 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"2\""));
209 assertTrue(policy.getConfigBody().contains("\"operator\":\"=\""));
210 assertTrue(policy.getConfigBody().contains("\"unit\":\"MB\""));
214 public void testS3p0PciVendorId() throws IOException, PolicyDecodingException {
215 final Csar csar = new Csar("src/test/resources/s3p_0_pciVendorId.csar");
216 final PolicyDecoderCsarPdpx policyDecoderCsarPdpx = new PolicyDecoderCsarPdpx();
217 policyDecoderCsarPdpx.configure(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
219 final Collection<OptimizationPolicy> policies = policyDecoderCsarPdpx.decode(csar);
220 assertEquals(1, policies.size());
221 final OptimizationPolicy policy = (OptimizationPolicy) policies.toArray()[0];
223 assertEquals("onapName", policy.getOnapName());
224 assertTrue(policy.getPolicyName().startsWith("OOF."));
225 assertTrue(policy.getConfigBody().contains("\"priority\":\"5\""));
226 assertTrue(policy.getConfigBody().contains("\"riskLevel\":\"2\""));
227 assertTrue(policy.getConfigBody().contains("\"riskType\":\"Test\""));
228 assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
229 assertTrue(policy.getConfigBody().contains("\"policyType\":\"hpa\""));
231 assertTrue(policy.getConfigBody().contains("\"id\":\"VDU_vgw_0\""));
232 assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.nodes.nfv.Vdu.Compute\""));
233 assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directives\""));
234 assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
235 assertTrue(policy.getConfigBody().contains("\"attribute_value\":\"\""));
236 assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"pciePassthrough\""));
237 assertTrue(policy.getConfigBody().contains("\"mandatory\":\"True\""));
238 assertTrue(policy.getConfigBody().contains("\"architecture\":\"generic\""));
239 assertTrue(policy.getConfigBody().contains("\"hpa-version\":\"v1\""));
240 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciVendorId\""));
241 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"1234\""));
242 assertTrue(policy.getConfigBody().contains("\"operator\":\"=\""));
243 assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
248 public void testserviceVcpeWithAll() throws IOException, PolicyDecodingException {
249 final Csar csar = new Csar("src/test/resources/service-VcpeWithAll-csar.csar");
250 final PolicyDecoderCsarPdpx policyDecoderCsarPdpx = new PolicyDecoderCsarPdpx();
251 policyDecoderCsarPdpx.configure(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
253 final Collection<OptimizationPolicy> policies = policyDecoderCsarPdpx.decode(csar);
254 assertEquals(5, policies.size());
255 final OptimizationPolicy policy = (OptimizationPolicy) policies.toArray()[0];
257 assertEquals("onapName", policy.getOnapName());
258 assertTrue(policy.getPolicyName().startsWith("OOF."));
259 assertTrue(policy.getConfigBody().contains("\"priority\":\"5\""));
260 assertTrue(policy.getConfigBody().contains("\"riskLevel\":\"2\""));
261 assertTrue(policy.getConfigBody().contains("\"riskType\":\"Test\""));
262 assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
263 assertTrue(policy.getConfigBody().contains("\"policyType\":\"hpa\""));
265 assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.nodes.nfv.Vdu.Compute\""));
266 assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directives\""));
267 assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
268 assertTrue(policy.getConfigBody().contains("\"attribute_value\":\"\""));
269 assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"sriovNICNetwork\""));
270 assertTrue(policy.getConfigBody().contains("\"mandatory\":\"True\""));
271 assertTrue(policy.getConfigBody().contains("\"architecture\":\"generic\""));
272 assertTrue(policy.getConfigBody().contains("\"hpa-version\":\"v1\""));
273 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciVendorId\""));
274 assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"1234\""));
275 assertTrue(policy.getConfigBody().contains("\"operator\":\"=\""));
276 assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));