0585b23ae9890f5f1e112f7d0f37dc3a038aeac8
[policy/distribution.git] /
1 /*-
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
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 import static org.junit.Assert.assertTrue;
25
26 import java.io.IOException;
27 import java.util.Collection;
28 import org.junit.BeforeClass;
29 import org.junit.Test;
30 import org.onap.policy.common.parameters.ParameterGroup;
31 import org.onap.policy.common.parameters.ParameterService;
32 import org.onap.policy.distribution.model.Csar;
33 import org.onap.policy.distribution.model.OptimizationPolicy;
34 import org.onap.policy.distribution.reception.decoding.PolicyDecodingException;
35
36 /**
37  * Class to perform unit test of {@link PolicyDecoderCsarPdpx}.
38  *
39  */
40 public class TestPolicyDecoderCsarPdpx {
41
42     private static final String CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION = "csarToOptimizationPolicyConfiguration";
43
44     /**
45      * Set up for test cases.
46      */
47     @BeforeClass
48     public static void setUp() {
49         ParameterGroup parameterGroup = new PolicyDecoderCsarPdpxConfigurationParameterBuilder().setOnapName("onapName")
50                 .setPolicyNamePrefix("OOF").setPriority("5").setRiskLevel("2").setRiskType("Test").setVersion("1.0")
51                 .build();
52         parameterGroup.setName(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
53         ParameterService.register(parameterGroup);
54     }
55
56     @Test
57     public void testHpaPolicy2Vnf() throws IOException, PolicyDecodingException {
58         Csar csar = new Csar("src/test/resources/service-TestNs8-csar.csar");
59         PolicyDecoderCsarPdpx policyDecoderCsarPdpx = new PolicyDecoderCsarPdpx();
60         policyDecoderCsarPdpx.configure(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
61
62         Collection<OptimizationPolicy> ret = policyDecoderCsarPdpx.decode(csar);
63
64         assertEquals(2, ret.size());
65         OptimizationPolicy policy = (OptimizationPolicy) ret.toArray()[0];
66
67         assertEquals("onapName", policy.getOnapName());
68         assertTrue(policy.getPolicyName().startsWith("OOF."));
69         assertTrue(policy.getConfigBody().contains("\"priority\":\"5\""));
70         assertTrue(policy.getConfigBody().contains("\"riskLevel\":\"2\""));
71         assertTrue(policy.getConfigBody().contains("\"riskType\":\"Test\""));
72         assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
73         assertTrue(policy.getConfigBody().contains("\"policyType\":\"Optimization\""));
74
75         assertTrue(policy.getConfigBody().contains("\"id\":\"vdu_vnf_1\""));
76         assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.node.nfv.Vdu.Compute\""));
77         assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directive\""));
78         assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"BasicCapabilities\""));
79         assertTrue(policy.getConfigBody().contains("\"mandatory\":\"true\""));
80         assertTrue(policy.getConfigBody().contains("\"architecture\":\"generic\""));
81         assertTrue(policy.getConfigBody().contains("\"hpa-version\":\"v1\""));
82         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"virtualMemSize\""));
83         assertTrue(policy.getConfigBody().contains("\"operator\":\"\""));
84         assertTrue(policy.getConfigBody().contains("\"unit\":\"MB\""));
85     }
86
87     @Test
88     public void testHpaPolicySriov() throws IOException, PolicyDecodingException {
89         Csar csar = new Csar("src/test/resources/hpaPolicySriov.csar");
90         PolicyDecoderCsarPdpx policyDecoderCsarPdpx = new PolicyDecoderCsarPdpx();
91         policyDecoderCsarPdpx.configure(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
92
93         Collection<OptimizationPolicy> policies = policyDecoderCsarPdpx.decode(csar);
94         OptimizationPolicy policy = (OptimizationPolicy) policies.toArray()[0];
95
96         assertEquals("onapName", policy.getOnapName());
97         assertTrue(policy.getPolicyName().startsWith("OOF."));
98         assertTrue(policy.getConfigBody().contains("\"priority\":\"5\""));
99         assertTrue(policy.getConfigBody().contains("\"riskLevel\":\"2\""));
100         assertTrue(policy.getConfigBody().contains("\"riskType\":\"Test\""));
101         assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
102         assertTrue(policy.getConfigBody().contains("\"policyType\":\"Optimization\""));
103
104         assertTrue(policy.getConfigBody().contains("\"id\":\"vdu_vnf_1\""));
105         assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.node.nfv.Vdu.Compute\""));
106         assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directive\""));
107         assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
108         assertTrue(policy.getConfigBody().contains("\"attribute_value\":\"\""));
109         assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"SriovNICNetwork\""));
110         assertTrue(policy.getConfigBody().contains("\"mandatory\":\"true\""));
111         assertTrue(policy.getConfigBody().contains("\"architecture\":\"generic\""));
112         assertTrue(policy.getConfigBody().contains("\"hpa-version\":\"v1\""));
113         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciVendorId\""));
114         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"1234\""));
115         assertTrue(policy.getConfigBody().contains("\"operator\":\"\""));
116         assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
117         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciDeviceId\""));
118         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"5678\""));
119         assertTrue(policy.getConfigBody().contains("\"operator\":\"\""));
120         assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
121         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciNumDevices\""));
122         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"1\""));
123         assertTrue(policy.getConfigBody().contains("\"operator\":\"\""));
124         assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
125     }
126
127     @Test
128     public void testHpaPolicyPciePassthrough() throws IOException, PolicyDecodingException {
129         Csar csar = new Csar("src/test/resources/hpaPolicyPciePassthrough.csar");
130         PolicyDecoderCsarPdpx policyDecoderCsarPdpx = new PolicyDecoderCsarPdpx();
131         policyDecoderCsarPdpx.configure(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
132
133         Collection<OptimizationPolicy> policies = policyDecoderCsarPdpx.decode(csar);
134         assertEquals(2, policies.size());
135         OptimizationPolicy policy = (OptimizationPolicy) policies.toArray()[0];
136
137         assertEquals("onapName", policy.getOnapName());
138         assertTrue(policy.getPolicyName().startsWith("OOF."));
139         assertTrue(policy.getConfigBody().contains("\"priority\":\"5\""));
140         assertTrue(policy.getConfigBody().contains("\"riskLevel\":\"2\""));
141         assertTrue(policy.getConfigBody().contains("\"riskType\":\"Test\""));
142         assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
143         assertTrue(policy.getConfigBody().contains("\"policyType\":\"Optimization\""));
144
145         assertTrue(policy.getConfigBody().contains("\"id\":\"vdu_vnf_1\""));
146         assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.node.nfv.Vdu.Compute\""));
147         assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directive\""));
148         assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
149         assertTrue(policy.getConfigBody().contains("\"attribute_value\":\"\""));
150         assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"pciePassthrough\""));
151         assertTrue(policy.getConfigBody().contains("\"mandatory\":\"true\""));
152         assertTrue(policy.getConfigBody().contains("\"architecture\":\"generic\""));
153         assertTrue(policy.getConfigBody().contains("\"hpa-version\":\"v1\""));
154         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciVendorId\""));
155         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"1234\""));
156         assertTrue(policy.getConfigBody().contains("\"operator\":\"\""));
157         assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
158         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciDeviceId\""));
159         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"5678\""));
160         assertTrue(policy.getConfigBody().contains("\"operator\":\"\""));
161         assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
162         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"pciNumDevices\""));
163         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"1\""));
164         assertTrue(policy.getConfigBody().contains("\"operator\":\"\""));
165         assertTrue(policy.getConfigBody().contains("\"unit\":\"\""));
166
167
168     }
169
170     @Test
171     public void testHpaPolicyHugePage() throws IOException, PolicyDecodingException {
172         Csar csar = new Csar("src/test/resources/hpaPolicyHugePage.csar");
173         PolicyDecoderCsarPdpx policyDecoderCsarPdpx = new PolicyDecoderCsarPdpx();
174         policyDecoderCsarPdpx.configure(CSAR_TO_OPTIMIZATION_POLICY_CONFIGURATION);
175
176         Collection<OptimizationPolicy> policies = policyDecoderCsarPdpx.decode(csar);
177         assertEquals(2, policies.size());
178         OptimizationPolicy policy = (OptimizationPolicy) policies.toArray()[0];
179
180         assertEquals("onapName", policy.getOnapName());
181         assertTrue(policy.getPolicyName().startsWith("OOF."));
182         assertTrue(policy.getConfigBody().contains("\"priority\":\"5\""));
183         assertTrue(policy.getConfigBody().contains("\"riskLevel\":\"2\""));
184         assertTrue(policy.getConfigBody().contains("\"riskType\":\"Test\""));
185         assertTrue(policy.getConfigBody().contains("\"version\":\"1.0\""));
186         assertTrue(policy.getConfigBody().contains("\"policyType\":\"Optimization\""));
187
188         assertTrue(policy.getConfigBody().contains("\"id\":\"vdu_vnf_1\""));
189         assertTrue(policy.getConfigBody().contains("\"type\":\"tosca.node.nfv.Vdu.Compute\""));
190         assertTrue(policy.getConfigBody().contains("\"type\":\"flavor_directive\""));
191         assertTrue(policy.getConfigBody().contains("\"attribute_name\":\"flavorName\""));
192         assertTrue(policy.getConfigBody().contains("\"attribute_value\":\"\""));
193         assertTrue(policy.getConfigBody().contains("\"hpa-feature\":\"hugePages\""));
194         assertTrue(policy.getConfigBody().contains("\"mandatory\":\"false\""));
195         assertTrue(policy.getConfigBody().contains("\"architecture\":\"generic\""));
196         assertTrue(policy.getConfigBody().contains("\"hpa-version\":\"v1\""));
197         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-key\":\"memoryPageSize\""));
198         assertTrue(policy.getConfigBody().contains("\"hpa-attribute-value\":\"2\""));
199         assertTrue(policy.getConfigBody().contains("\"operator\":\"\""));
200         assertTrue(policy.getConfigBody().contains("\"unit\":\"MB\""));
201     }
202 }