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