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