2 * ============LICENSE_START=======================================================
3 * ONAP : ccsdk features
4 * ================================================================================
5 * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
24 import static org.junit.Assert.*;
26 import java.io.IOException;
27 import java.math.BigInteger;
28 import java.util.Arrays;
29 import java.util.List;
30 import java.util.concurrent.TimeUnit;
32 import org.junit.BeforeClass;
33 import org.junit.Test;
34 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
35 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchHit;
36 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchResult;
37 import org.onap.ccsdk.features.sdnr.wt.common.database.config.HostInfo;
38 import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilders;
39 import org.onap.ccsdk.features.sdnr.wt.common.database.requests.BaseRequest;
40 import org.onap.ccsdk.features.sdnr.wt.dataprovider.data.ElasticSearchDataProvider;
41 import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.YangToolsMapper;
42 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceInput;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceInputBuilder;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceOutputBuilder;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerInput;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerInputBuilder;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerOutputBuilder;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionInput;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionInputBuilder;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionOutputBuilder;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMaintenanceInput;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMaintenanceInputBuilder;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMediatorServerInput;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMediatorServerInputBuilder;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteNetworkElementConnectionInput;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteNetworkElementConnectionInputBuilder;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Entity;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.EntityInput;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Faultlog;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.FaultlogEntity;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.GranularityPeriodType;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListInput;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListInputBuilder;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListOutputBuilder;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListInput;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListInputBuilder;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListOutputBuilder;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListInput;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListInputBuilder;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListOutputBuilder;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListInput;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListInputBuilder;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListOutputBuilder;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListInput;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListInputBuilder;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListOutputBuilder;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListInput;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListInputBuilder;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListOutputBuilder;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListInput;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListInputBuilder;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListOutputBuilder;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListInput;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListInputBuilder;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListOutputBuilder;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListInput;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListInputBuilder;
89 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListOutputBuilder;
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListInput;
91 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListInputBuilder;
92 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListOutputBuilder;
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListInput;
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListInputBuilder;
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListOutputBuilder;
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListInput;
97 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListInputBuilder;
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListOutputBuilder;
99 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListInput;
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListInputBuilder;
101 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListOutputBuilder;
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListInput;
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListInputBuilder;
104 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListOutputBuilder;
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.SeverityType;
106 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceInput;
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceInputBuilder;
108 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceOutputBuilder;
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerInput;
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerInputBuilder;
111 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerOutputBuilder;
112 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionInput;
113 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionInputBuilder;
114 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionOutputBuilder;
115 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.Filter;
116 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.FilterBuilder;
117 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.Pagination;
118 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.PaginationBuilder;
119 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.mediator.server.list.output.Data;
121 public class TestCRUDforDatabase {
123 private static ElasticSearchDataProvider dbProvider;
124 private static HtDatabaseClient dbRawProvider;
125 public static HostInfo[] hosts = new HostInfo[] { new HostInfo("localhost", Integer
126 .valueOf(System.getProperty("databaseport") != null ? System.getProperty("databaseport") : "49200")) };
129 public static void init() throws Exception {
131 dbProvider = new ElasticSearchDataProvider(hosts);
132 dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
133 dbRawProvider = new HtDatabaseClient(hosts);
136 public static void trySleep(long ms) {
139 } catch (Exception e) {
140 Thread.currentThread().interrupt();
144 public static void trySleep() {
149 public void testStatus() throws IOException {
151 //== CLEAR AND CREATE ================================
152 clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Critical);
153 createFaultEntity("Lorem Ipsum", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Major);
154 createFaultEntity("3", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Minor);
155 createFaultEntity("4", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Warning);
157 //== READ ================================
159 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.status.output.Data> readOutput = dbProvider.readStatus().getData();
160 System.out.println(readOutput);
162 assertEquals(1,readOutput.get(0).getFaults().getMajors().intValue());
163 assertEquals(1,readOutput.get(0).getFaults().getMinors().intValue());
164 assertEquals(1,readOutput.get(0).getFaults().getWarnings().intValue());
165 assertEquals(1,readOutput.get(0).getFaults().getCriticals().intValue());
167 //== DELETE ================================
169 System.out.println("try to delete entries");
171 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
172 } catch (Exception e) {
173 fail("problem deleting entry: " + e.getMessage());
176 //== VERIFY DELETE ===========================
177 System.out.println("verify entries were deleted");
178 readOutput = dbProvider.readStatus().getData();
179 assertEquals(0,readOutput.get(0).getFaults().getMajors().intValue());
180 assertEquals(0,readOutput.get(0).getFaults().getMinors().intValue());
181 assertEquals(0,readOutput.get(0).getFaults().getWarnings().intValue());
182 assertEquals(0,readOutput.get(0).getFaults().getCriticals().intValue());
186 public void testMediatorServer() {
187 final String NAME = "ms1";
188 final String URL = "http://11.23.45.55:4599";
189 final String NAME2 = "ms1-nu";
190 final String URL2 = "http://11.23.45.56:4599";
192 // ==CLEAR BEFORE TEST============================
193 System.out.println("try to clear entry");
195 dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
196 } catch (Exception e) {
197 fail("problem deleting entry: " + e.getMessage());
200 // ==CREATE============================
201 System.out.println("try to create entry");
202 CreateMediatorServerOutputBuilder createOutput = null;
203 CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
207 createOutput = dbProvider.createMediatorServer(input);
208 dbId = createOutput.getId();
209 System.out.println(createOutput);
210 } catch (Exception e) {
211 fail("failed to create " + input.toString() + ":" + e.getMessage());
213 assertNotNull(createOutput);
216 // ==READ===========================
217 System.out.println("try to read entry");
218 ReadMediatorServerListInput readinput = new ReadMediatorServerListInputBuilder()
219 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
220 .setPagination(getPagination(20, 1)).build();
221 ReadMediatorServerListOutputBuilder readoutput = dbProvider.readMediatorServerList(readinput);
222 List<Data> data = readoutput.getData();
224 assertEquals("no entry found", 1, data.size());
225 assertEquals(NAME, data.get(0).getName());
226 assertEquals(URL, data.get(0).getUrl());
227 String dbId2 = data.get(0).getId();
228 assertEquals(dbId, dbId2);
229 System.out.println(data);
230 // ==UPDATE============================
231 System.out.println("try to update entry");
232 UpdateMediatorServerInput updateInput = new UpdateMediatorServerInputBuilder().setId(dbId2).setName(NAME2)
233 .setUrl(URL2).build();
234 UpdateMediatorServerOutputBuilder updateOutput = null;
236 updateOutput = dbProvider.updateMediatorServer(updateInput);
237 System.out.println(updateOutput);
238 } catch (Exception e) {
239 fail("problem updating entry:" + e.getMessage());
241 assertNotNull(updateOutput);
243 // ==READ============================
244 System.out.println("try to read entry");
245 readinput = new ReadMediatorServerListInputBuilder()
246 .setFilter(Arrays.asList(new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
247 .setPagination(getPagination(20, 1)).build();
248 readoutput = dbProvider.readMediatorServerList(readinput);
249 data = readoutput.getData();
250 System.out.println(data);
251 assertNotNull("no update response", data);
252 assertEquals("update not verifiied", 1, data.size());
253 assertEquals("update not verifiied", NAME2, data.get(0).getName());
254 assertEquals("update not verifiied", URL2, data.get(0).getUrl());
255 assertEquals("update not verifiied", dbId, data.get(0).getId());
256 // ==DELETE============================
257 System.out.println("try to delete entry");
258 DeleteMediatorServerInput deleteInput = new DeleteMediatorServerInputBuilder().setId(dbId).build();
260 dbProvider.deleteMediatorServer(deleteInput);
261 } catch (Exception e) {
262 fail("problem deleting entry: " + e.getMessage());
266 // ==READ/VERIFY DELETE============================
267 System.out.println("try to read entry");
268 readinput = new ReadMediatorServerListInputBuilder()
269 .setFilter(Arrays.asList(new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
270 .setPagination(getPagination(20, 1)).build();
271 readoutput = dbProvider.readMediatorServerList(readinput);
272 data = readoutput.getData();
273 assertNotNull("delete not verifiied", data);
274 assertEquals("delete not verifiied", 0, data.size());
278 public void testNetworkElementConnectionCurrent() {
280 System.out.println("networkElementConnection test start");
282 // ==CLEAR BEFORE TEST============================
283 System.out.println("try to clear entry");
285 dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
286 } catch (Exception e) {
287 fail("problem deleting entry: " + e.getMessage());
290 // ==CREATE============================
291 System.out.println("try to create");
292 final String name = "sim87";
293 final String url = "10.5.10.1";
294 final long port = 5959;
296 CreateNetworkElementConnectionOutputBuilder create = null;
297 CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
298 .setIsRequired(true).setHost(url).setPort(port).build();
302 create = dbProvider.createNetworkElementConnection(input);
303 dbId = create.getId();
304 } catch (Exception e) {
305 fail("networkElementConnection create failed" + e.getMessage());
309 assertNotNull(create);
311 // ==READ===========================
313 ReadNetworkElementConnectionListInput readInput = new ReadNetworkElementConnectionListInputBuilder()
314 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
315 .setPagination(getPagination(20, 1)).build();
317 ReadNetworkElementConnectionListOutputBuilder readOperation = dbProvider
318 .readNetworkElementConnectionList(readInput);
319 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.network.element.connection.list.output.Data> data = readOperation
323 assertEquals(dbId, data.get(0).getId());
324 assertEquals(name, data.get(0).getNodeId());
325 assertEquals(url, data.get(0).getHost());
326 assertEquals(port, data.get(0).getPort().longValue());
328 // ==UPDATE============================
329 System.out.println("Trying to update...");
330 final String name2 = "sim88";
331 final String url2 = "10.5.10.2";
332 final long port2 = 5960;
334 UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setHost(url2).setPort(port2).setIsRequired(false).build();
335 UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
337 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
338 } catch (Exception e) {
339 fail("update failed: " + e.getMessage());
342 assertNotNull(updateOutput);
344 // == Verify UPDATE============================
345 System.out.println("Verfiying update...");
347 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
348 data = readOperation.getData();
351 assertEquals(url2, data.get(0).getHost());
352 assertEquals(port2, data.get(0).getPort().longValue());
354 // ==PARTIAL UPDATE============================
355 System.out.println("Try partial update...");
356 assertEquals(false, data.get(0).isIsRequired());
357 updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build();
359 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
360 } catch (Exception e) {
361 fail("update failed: " + e.getMessage());
364 assertNotNull(updateOutput);
366 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
367 data = readOperation.getData();
369 assertEquals(true, data.get(0).isIsRequired());
370 assertEquals(url2, data.get(0).getHost());
371 assertEquals(port2, data.get(0).getPort().longValue());
373 // ==DELETE============================
374 System.out.println("Try delete...");
376 DeleteNetworkElementConnectionInput deleteInput = new DeleteNetworkElementConnectionInputBuilder().setId(dbId)
379 dbProvider.deleteNetworkElementConnection(deleteInput);
380 } catch (Exception e) {
381 fail("problem deleting "+e.getMessage());
384 readInput = new ReadNetworkElementConnectionListInputBuilder()
385 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
386 .setPagination(getPagination(20, 1)).build();
387 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
388 data = readOperation.getData();
389 assertEquals(0, data.size());
394 public void testMaintenance() {
395 System.out.println("Starting Maintenance tests...");
397 // ==CLEAR BEFORE TEST============================
398 System.out.println("try to clear entry");
400 dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
401 } catch (Exception e) {
402 fail("problem deleting entry: " + e.getMessage());
405 // ==CREATE============================
407 final String nodeId = "Lorem Ipsum";
408 final boolean isActive = true;
410 CreateMaintenanceOutputBuilder create = null;
411 CreateMaintenanceInput input = new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive)
415 create = dbProvider.createMaintenance(input);
416 dbId = create.getId();
417 } catch (Exception e) {
418 fail("Failed to create:" + e.getMessage());
421 System.out.println(dbId);
422 assertNotNull(create);
425 // ==READ===========================
426 System.out.println("Try read...");
428 ReadMaintenanceListInput readinput = new ReadMaintenanceListInputBuilder()
429 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
430 .setPagination(getPagination(20, 1)).build();
431 ReadMaintenanceListOutputBuilder readResult = dbProvider.readMaintenanceList(readinput);
432 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.maintenance.list.output.Data> data = readResult
435 assertNotEquals(0, data.size());
437 assertEquals(nodeId, data.get(0).getNodeId());
438 assertEquals(isActive, data.get(0).isActive());
440 // ==UPDATE============================
442 System.out.println("Trying to update...");
443 final String nodeId2 = "Name2";
444 final boolean isActive2 = false;
446 UpdateMaintenanceInput updateInput = new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2)
447 .setActive(isActive2).build();
448 UpdateMaintenanceOutputBuilder updateResult = null;
450 updateResult = dbProvider.updateMaintenance(updateInput);
451 } catch (Exception e) {
452 fail("maintenance update failed..." + e.getMessage());
455 assertNotNull(updateResult);
457 // == VERIFY UPDATE============================
458 System.out.println("Verfify update...");
459 readResult = dbProvider.readMaintenanceList(readinput);
460 data = readResult.getData();
463 assertEquals(nodeId2, data.get(0).getNodeId());
464 assertEquals(isActive2, data.get(0).isActive());
466 // ==DELETE================================
467 System.out.println("Trying to delete...");
469 DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
471 dbProvider.deleteMaintenance(deleteInput);
472 } catch (Exception e) {
473 fail("Maintenance entry couldn't be deleted" + e.getMessage());
476 readResult = dbProvider.readMaintenanceList(readinput);
477 data = readResult.getData();
479 assertEquals(0, data.size());
483 public void testFaultLog() {
485 System.out.println("Starting fault log tests...");
486 String dbId = clearAndCreatefaultEntity("1", Entity.Faultlog.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultlogInput", SeverityType.Critical);
488 // ==READ===========================
489 System.out.println("try to read entry");
491 ReadFaultlogListInput readinput = new ReadFaultlogListInputBuilder()
492 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
493 .setPagination(getPagination(20, 1)).build();
495 ReadFaultlogListOutputBuilder readResult = null;
497 readResult = dbProvider.readFaultLogList(readinput);
499 } catch (Exception e) {
500 fail("Fault log not read: " + e.getMessage());
503 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultlog.list.output.Data> data = readResult
507 assertEquals(1, data.size());
508 assertEquals("signalIsLost", data.get(0).getProblem());
509 assertEquals("Critical", data.get(0).getSeverity().toString());
510 assertEquals("s1", data.get(0).getNodeId());
512 //== UPDATE ================================
513 System.out.println("try to update entry");
515 dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1", "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
517 System.out.println("try to search entry 1");
518 readinput = new ReadFaultlogListInputBuilder()
519 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-id").setFiltervalue("test").build()))
520 .setPagination(getPagination(20, 1)).build();
522 //== VERIFY UPDATE ================================
523 readResult = dbProvider.readFaultLogList(readinput);
524 data = readResult.getData();
528 System.out.println(data);
529 assertEquals(0, data.size());
531 System.out.println("try to search entry 2");
533 readinput = new ReadFaultlogListInputBuilder()
534 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-id").setFiltervalue("test*").build()))
535 .setPagination(getPagination(20, 1)).build();
537 readResult = dbProvider.readFaultLogList(readinput);
538 data = readResult.getData();
542 assertEquals(1, data.size());
543 assertEquals("CableLOS", data.get(0).getProblem());
544 assertEquals("Major", data.get(0).getSeverity().toString());
545 assertEquals("test4657-78", data.get(0).getNodeId());
547 //== DELETE ================================
549 System.out.println("try to clear entry");
551 dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
552 } catch (Exception e) {
553 fail("problem deleting entry: " + e.getMessage());
556 //== VERIFY DELETE ===========================
557 System.out.println("verify entries deleted");
558 readResult = dbProvider.readFaultLogList(new ReadFaultlogListInputBuilder().setPagination(getPagination(20, 1)).build());
559 data = readResult.getData();
560 assertEquals(0, data.size());
564 public void testFaultCurrent() {
565 System.out.println("Starting faultCurrent test...");
567 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.NonAlarmed);
568 assertEquals("1", dbId);
570 // ==READ===========================
571 System.out.println("Trying to read...");
574 ReadFaultcurrentListInput readinput = new ReadFaultcurrentListInputBuilder()
575 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
576 .setPagination(getPagination(20, 1)).build();
578 ReadFaultcurrentListOutputBuilder readResult = null;
580 readResult = dbProvider.readFaultCurrentList(readinput);
582 } catch (Exception e) {
583 fail("Fault log not read: " + e.getMessage());
586 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultcurrent.list.output.Data> data = readResult
591 assertEquals(1, data.size());
592 assertEquals("signalIsLost", data.get(0).getProblem());
593 assertEquals("NonAlarmed", data.get(0).getSeverity().toString());
594 assertEquals("s1", data.get(0).getNodeId());
595 assertEquals(4340, data.get(0).getCounter().intValue());
596 assertEquals(new DateAndTime("2019-10-28T11:55:58.3Z"), data.get(0).getTimestamp());
597 assertEquals(4340, data.get(0).getCounter().intValue());
598 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
601 // ==UPDATE============================
602 System.out.println("Trying to update...");
604 String json = "{\n" +
605 "\"timestamp\": \"2019-12-28T11:55:58.3Z\",\n" +
606 "\"node-id\": \"SDN-Controller-0\",\n" +
607 "\"counter\": 75,\n" +
608 "\"problem\": \"connectionLossNeOAM\",\n" +
611 String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
612 assertEquals(dbId, updatedDbId);
614 // ==READ============================
617 readResult = dbProvider.readFaultCurrentList(readinput);
619 } catch (Exception e) {
620 fail("Fault log not read: " + e.getMessage());
623 data = readResult.getData();
626 assertEquals(1, data.size());
627 assertEquals("connectionLossNeOAM", data.get(0).getProblem());
628 assertEquals("SDN-Controller-0", data.get(0).getNodeId());
629 assertEquals(75, data.get(0).getCounter().intValue());
630 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
632 // ==DELETE============================
634 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
635 } catch (Exception e) {
636 fail("problem deleting: " + e.getMessage());
639 // ==READ/VERIFY DELETE============================
642 readResult = dbProvider.readFaultCurrentList(readinput);
644 } catch (Exception e) {
645 fail("Fault log not read: " + e.getMessage());
648 data = readResult.getData();
651 assertEquals(0, data.size());
655 public void testConnectionLog() {
657 // ==CLEAR================================
658 System.out.println("Clear before test");
660 dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
661 } catch (Exception e) {
662 fail("problem deleting: " + e.getMessage());
665 // ==CREATE================================
667 System.out.println("Try create entry");
668 final String initialDbId = "1";
671 "\"timestamp\": \"2019-11-01T11:28:34.7Z\",\n" +
672 "\"status\": \"Connecting\",\n" +
673 "\"node-id\": \"sim2230\",\n" +
674 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateConnectionlogInput\"\n" +
677 dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
679 assertEquals(initialDbId, dbId);
681 // ==READ================================
682 System.out.println("Try read entry");
684 ReadConnectionlogListInput readinput = new ReadConnectionlogListInputBuilder()
685 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
686 .setPagination(getPagination(20, 1)).build();
688 ReadConnectionlogListOutputBuilder readResult = null;
690 readResult = dbProvider.readConnectionlogList(readinput);
692 } catch (Exception e) {
693 fail("Connection log not read: " + e.getMessage());
696 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.connectionlog.list.output.Data> data = readResult
700 assertEquals(1, data.size());
701 assertEquals("Connecting", data.get(0).getStatus().toString());
702 assertEquals("sim2230", data.get(0).getNodeId());
705 // ==UPDATE================================
706 System.out.println("Try update entry");
708 dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
710 // ==READ 2================================
711 System.out.println("Try read updated entry");
713 readinput = new ReadConnectionlogListInputBuilder()
714 .setFilter(Arrays.asList(new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
715 .setPagination(getPagination(20, 1)).build();
718 readResult = dbProvider.readConnectionlogList(readinput);
720 } catch (Exception e) {
721 fail("Connection log not read: " + e.getMessage());
724 data = readResult.getData();
727 assertEquals(1, data.size());
728 assertEquals("Connected", data.get(0).getStatus().toString());
729 assertEquals("sim2230", data.get(0).getNodeId());
731 //== DELETE ================================
733 System.out.println("try to clear entry");
735 dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
736 } catch (Exception e) {
737 fail("problem deleting entry: " + e.getMessage());
740 //== VERIFY DELETE ===========================
741 System.out.println("verify entries deleted");
742 readResult = dbProvider.readConnectionlogList(new ReadConnectionlogListInputBuilder().setPagination(getPagination(20, 1)).build());
743 data = readResult.getData();
744 assertEquals(0, data.size());
749 public void testEventLog() {
750 System.out.println("Test event log starting...");
752 // ==CLEAR================================
753 System.out.println("Clear before test");
755 dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
756 } catch (Exception e) {
757 fail("problem deleting: " + e.getMessage());
759 // ==CREATE============================
762 String json = " {\n" +
763 "\"timestamp\": \"2019-11-08T16:39:23.0Z\",\n" +
764 "\"new-value\": \"done\",\n" +
765 "\"object-id\": \"SDN-Controller-0\",\n" +
766 "\"attribute-name\": \"startup\",\n" +
767 "\"counter\": 0,\n" +
768 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Eventlog\",\n" +
769 "\"node-id\": \"SDN-Controller-0\"\n" +
772 dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
775 // ==READ===========================
777 ReadEventlogListInput readinput = new ReadEventlogListInputBuilder()
778 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
779 .setPagination(getPagination(20, 1)).build();
780 ReadEventlogListOutputBuilder readResult = null;
782 readResult = dbProvider.readEventlogList(readinput);
784 } catch (Exception e) {
785 fail("problem reading eventlog");
788 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.eventlog.list.output.Data> data = readResult.getData();
789 assertEquals(1,data.size());
791 //== DELETE ================================
793 System.out.println("try to clear entry");
795 dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
796 } catch (Exception e) {
797 fail("problem deleting entry: " + e.getMessage());
800 //== VERIFY DELETE ===========================
801 System.out.println("verify entries deleted");
803 readResult = dbProvider.readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
804 } catch (IOException e) {
805 fail("problem reading eventlog");
807 data = readResult.getData();
808 assertEquals(0, data.size());
813 public void testInventory() {
815 System.out.println("Test inventory starting...");
817 // ==CLEAR================================
818 System.out.println("Clear before test");
820 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
821 } catch (Exception e) {
822 fail("problem deleting: " + e.getMessage());
826 // ==CREATE============================
829 String json = " {\"tree-level\": 1,\n" +
830 " \"parent-uuid\": \"SHELF-1.1.0.0\",\n" +
831 " \"node-id\": \"sim2\",\n" +
832 " \"uuid\": \"CARD-1.1.8.0\",\n" +
833 " \"contained-holder\": [ ],\n" +
834 " \"manufacturer-name\": \"Lorem Ipsum\",\n" +
835 " \"manufacturer-identifier\": \"ONF-Wireless-Transport\",\n" +
836 " \"serial\": \"sd-dsa-eqw\",\n" +
837 " \"date\": \"2008-10-21T00:00:00.0Z\",\n" +
838 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Inventory\",\n" +
839 " \"version\": \"unknown\",\n" +
840 " \"description\": \"WS/DS3\",\n" +
841 " \"part-type-id\": \"unknown\",\n" +
842 " \"model-identifier\": \"model-id-s3s\",\n" +
843 " \"type-name\": \"p4.module\"}";
845 dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
848 // ==READ===========================
849 ReadInventoryListInput readinput = new ReadInventoryListInputBuilder()
850 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
851 .setPagination(getPagination(20, 1)).build();
852 ReadInventoryListOutputBuilder readResult = null;
854 readResult = dbProvider.readInventoryList(readinput);
856 } catch (Exception e) {
857 fail("Problem reading inventory list"+e.getMessage());
860 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.Data> data = readResult.getData();
861 assertEquals(1,data.size());
862 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
863 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
864 assertEquals("sim2", data.get(0).getNodeId());
865 assertEquals("unknown", data.get(0).getVersion());
866 assertEquals("WS/DS3", data.get(0).getDescription());
867 assertEquals("2008-10-21T00:00:00.0Z", data.get(0).getDate());
868 assertEquals("sd-dsa-eqw", data.get(0).getSerial());
869 System.out.println(data.get(0).getDate());
871 // ==UPDATE============================
872 String updatedDbId=null;
873 final String[] holderArray = {"Lorem Ipsum 1", "Lorem Ipsum 2", "Lorem Ipsum &%/$_2"};
874 String updatejson = " {" +
875 " \"node-id\": \"sim5\",\n" +
876 " \"contained-holder\": [ \"Lorem Ipsum 1\", \"Lorem Ipsum 2\", \"Lorem Ipsum &%/$_2\" ],\n" +
877 " \"serial\": \"sd-dsa-eww\",\n" +
878 " \"date\": \"2008-11-21T00:00:00.0Z\",\n" +
879 " \"part-type-id\": \"not unknown\",\n" +
882 updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
883 assertEquals(dbId, updatedDbId);
886 readResult = dbProvider.readInventoryList(readinput);
888 } catch (Exception e) {
889 fail("Problem reading inventory list"+e.getMessage());
892 data = readResult.getData();
894 assertEquals(1,data.size());
895 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
896 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
897 assertEquals("sim5", data.get(0).getNodeId());
898 assertEquals("not unknown", data.get(0).getPartTypeId());
899 assertEquals("WS/DS3", data.get(0).getDescription());
900 assertEquals("2008-11-21T00:00:00.0Z", data.get(0).getDate());
901 assertEquals("sd-dsa-eww", data.get(0).getSerial());
902 assertEquals(holderArray.length,data.get(0).getContainedHolder().size());
903 assertEquals(holderArray[0],data.get(0).getContainedHolder().get(0));
904 assertEquals(holderArray[1],data.get(0).getContainedHolder().get(1));
905 assertEquals(holderArray[2],data.get(0).getContainedHolder().get(2));
907 // ==DELETE============================
909 System.out.println("delete after test");
911 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
912 } catch (Exception e) {
913 fail("problem deleting: " + e.getMessage());
916 // ==VERIFY DELETE ============================
919 readResult = dbProvider.readInventoryList(readinput);
921 } catch (Exception e) {
922 fail("Problem reading inventory list"+e.getMessage());
925 data = readResult.getData();
926 assertEquals(0,data.size());
931 public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
933 System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
936 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
937 } catch (Exception e) {
938 fail("problem deleting: " + e.getMessage());
941 System.out.println("create entries...");
943 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
944 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
946 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
947 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
948 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
949 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
951 System.out.println("trying to read, should throw exception...");
954 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
955 .setPagination(getPagination(20, 1)).build();
957 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
960 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
961 fail("No exception thrown!");
962 } catch (Exception e) {
963 System.out.println(e);
964 assertTrue(e instanceof IllegalArgumentException);
965 assertEquals("no nodename in filter found ", e.getMessage());
968 assertNull(readltpResult);
970 //== DELETE ================================
972 System.out.println("try to clear entry");
974 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
975 } catch (Exception e) {
976 fail("problem deleting entry: " + e.getMessage());
979 //== VERIFY DELETE ===========================
980 System.out.println("verify entries deleted");
981 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data> data = dbProvider.readPmdata15mList(new ReadPmdata15mListInputBuilder()
982 .setPagination(getPagination(20, 1)).build()).getData();
984 assertEquals(0, data.size());
988 public void test15MinPerformanceData() {
989 // == CLEAR BEFORE TESTS ============================
990 System.out.println("Test 15 min performance...");
993 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
994 } catch (Exception e) {
995 fail("problem deleting: " + e.getMessage());
998 // == CREATE ============================
1000 System.out.println("create entries...");
1002 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1003 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1005 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1006 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1007 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1008 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1010 // == READ ============================
1011 System.out.println("read list entries...");
1013 ReadPmdata15mListInput read = new ReadPmdata15mListInputBuilder()
1014 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1015 .setPagination(getPagination(20, 1)).build();
1017 ReadPmdata15mListOutputBuilder readResult = null;
1020 readResult = dbProvider.readPmdata15mList(read);
1021 } catch (Exception e) {
1022 fail("Problem reading 15m data");
1025 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data> data = readResult
1028 assertNotNull(data);
1029 assertEquals(2, data.size());
1031 System.out.println("read ltp entries with node name set...");
1033 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
1034 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1035 .setPagination(getPagination(20, 1)).build();
1037 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1040 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1041 } catch (Exception e) {
1042 fail("Problem reading 15m ltp data");
1045 List<String> dataLtp = readltpResult.getData();
1047 assertNotNull(dataLtp);
1048 assertEquals(2, dataLtp.size());
1049 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1050 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1052 System.out.println("read device entries...");
1054 ReadPmdata15mDeviceListInput readDevices = new ReadPmdata15mDeviceListInputBuilder()
1055 .setPagination(getPagination(20, 1)).build();
1057 ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
1060 readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
1061 } catch (Exception e) {
1062 fail("Problem reading 15m device data");
1065 List<String> dataDevice = readDeviceResult.getData();
1067 assertNotNull(dataDevice);
1068 assertEquals(2, dataDevice.size());
1069 assertTrue(dataDevice.contains("a2"));
1070 assertTrue(dataDevice.contains("a3"));
1072 //== DELETE ================================
1074 System.out.println("try to clear entry");
1076 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1077 } catch (Exception e) {
1078 fail("problem deleting entry: " + e.getMessage());
1081 //== VERIFY DELETE ===========================
1082 System.out.println("verify entries deleted");
1083 readResult = dbProvider.readPmdata15mList(new ReadPmdata15mListInputBuilder()
1084 .setPagination(getPagination(20, 1)).build());
1085 data = readResult.getData();
1086 assertEquals(0, data.size());
1091 public void test24hPerformanceData() {
1092 System.out.println("Test 24h performance...");
1095 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1096 } catch (Exception e) {
1097 fail("problem deleting: " + e.getMessage());
1100 System.out.println("create entries...");
1101 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1102 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1103 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1104 String aDbId = createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-06", "a2");
1106 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1107 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1108 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1110 System.out.println("read all list entries...");
1112 ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder()
1113 .setPagination(getPagination(20, 1)).build();
1115 ReadPmdata24hListOutputBuilder readResult = null;
1118 readResult = dbProvider.readPmdata24hList(read);
1119 } catch (Exception e) {
1120 fail("Problem reading 24h data");
1123 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.list.output.Data> data = readResult
1126 assertNotNull(data);
1127 assertEquals(6, data.size());
1130 System.out.println("filter list entries...");
1132 read = new ReadPmdata24hListInputBuilder()
1133 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1134 .setPagination(getPagination(20, 1)).build();
1139 readResult = dbProvider.readPmdata24hList(read);
1140 } catch (Exception e) {
1141 fail("Problem reading 24h data");
1144 data = readResult.getData();
1146 assertNotNull(data);
1147 assertEquals(3, data.size());
1149 System.out.println("read ltp entries with node name set...");
1151 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1152 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1153 .setPagination(getPagination(20, 1)).build();
1155 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1158 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1159 } catch (Exception e) {
1160 fail("Problem reading 24h ltp data");
1163 List<String> dataLtp = readltpResult.getData();
1165 assertNotNull(dataLtp);
1166 assertEquals(3, dataLtp.size());
1167 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1168 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1169 assertTrue(dataLtp.contains("LP-MWPS-TTP-06"));
1172 System.out.println("read device entries...");
1174 ReadPmdata24hDeviceListInput readDevices = new ReadPmdata24hDeviceListInputBuilder()
1175 .setPagination(getPagination(20, 1)).build();
1177 ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
1180 readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
1181 } catch (Exception e) {
1182 fail("Problem reading 24h device data");
1185 List<String> dataDevice = readDeviceResult.getData();
1187 assertNotNull(dataDevice);
1188 assertEquals(2, dataDevice.size());
1189 assertTrue(dataDevice.contains("a2"));
1190 assertTrue(dataDevice.contains("a3"));
1192 // == UPDATE ==============================
1194 boolean success = dbRawProvider.doUpdate(Entity.Historicalperformance24h.getName(), "{'uuid-interface':'LTP-TEST-MWP-097'}", QueryBuilders.termQuery("_id", aDbId));
1195 assertTrue("update dbentry not succeeded",success);
1197 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1198 } catch (Exception e) {
1199 fail("Problem reading 24h ltp data");
1202 // == VERIFY UPDATE ==============================
1204 dataLtp = readltpResult.getData();
1206 assertNotNull(dataLtp);
1207 assertEquals(3, dataLtp.size());
1208 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1209 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1210 assertTrue(dataLtp.contains("LTP-TEST-MWP-097"));
1214 //== DELETE ===========================
1216 System.out.println("try to clear entries");
1218 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1219 } catch (Exception e) {
1220 fail("problem deleting entry: " + e.getMessage());
1223 //== VERIFY DELETE ===========================
1224 System.out.println("verify entries deleted");
1225 readResult = dbProvider.readPmdata24hList(new ReadPmdata24hListInputBuilder()
1226 .setPagination(getPagination(20, 1)).build());
1227 data = readResult.getData();
1228 assertEquals(0, data.size());
1232 public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
1233 System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
1236 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1237 } catch (Exception e) {
1238 fail("problem deleting: " + e.getMessage());
1241 System.out.println("create entries...");
1243 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1244 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1245 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1247 createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1248 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1249 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1250 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1252 System.out.println("trying to read, should throw exception...");
1255 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1256 .setPagination(getPagination(20, 1)).build();
1258 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1261 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1262 fail("No exception thrown!");
1263 } catch (Exception e) {
1264 System.out.println(e);
1265 assertTrue(e instanceof IllegalArgumentException);
1266 assertEquals("no nodename in filter found ", e.getMessage());
1269 assertNull(readltpResult);
1272 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1273 } catch (Exception e) {
1274 fail("problem deleting: " + e.getMessage());
1279 public void testUrlEncoding() {
1280 System.out.println("Testing url encding");
1282 final String test = "Lorem Ipsum";
1283 final String test1 = "Lorem/Ipsum";
1284 final String test2 = "Lorem_Ipsum";
1285 final String test3 = "Lorem%Ipsum";
1287 assertEquals("Lorem%20Ipsum", BaseRequest.urlEncodeValue(test));
1288 assertEquals("Lorem%2FIpsum", BaseRequest.urlEncodeValue(test1));
1289 assertEquals("Lorem_Ipsum", BaseRequest.urlEncodeValue(test2));
1290 assertEquals("Lorem%25Ipsum", BaseRequest.urlEncodeValue(test3));
1294 public void testDoUpdateOrCreateWithNullId() {
1295 System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
1297 String dbId = clearAndCreatefaultEntity(null, Entity.Faultlog.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultlogInput", SeverityType.Critical);
1302 public void readTestFaultCurrentViaRawDbProvider() {
1303 System.out.println("Starting faultCurrent test...");
1305 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Critical);
1306 assertEquals("1", dbId);
1308 // ==READ===========================
1309 System.out.println("Trying to read...");
1311 String readResult = null;
1313 readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
1315 } catch (Exception e) {
1316 fail("Fault log not read: " + e.getMessage());
1320 String expectedDbResult ="{\"severity\":\"Critical\",\"node-id\":\"s1\",\"problem\":\"signalIsLost\",\"counter\":4340,\"object-id\":\"LP-MWPS-RADIO\",\"implemented-interface\":\"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput\",\"type\":\"ProblemNotificationXml\",\"timestamp\":\"2019-10-28T11:55:58.3Z\"}";
1322 System.out.println(readResult);
1323 assertNotNull(readResult);
1324 assertEquals(expectedDbResult, readResult);
1326 SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1327 assertNotNull(searchResult);
1329 List<SearchHit> hits = searchResult.getHits();
1331 assertNotNull(hits);
1332 assertEquals(1, searchResult.getTotal());
1333 assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
1335 //== DELETE ==============================
1337 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
1338 } catch (Exception e) {
1339 fail("problem deleting: " + e.getMessage());
1341 //== VERIFY DELETE ========================
1342 searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1343 hits = searchResult.getHits();
1344 assertNotNull(hits);
1345 assertEquals(0, searchResult.getTotal());
1350 public void testOutputCamelCase() {
1352 String jsonString="{\n" +
1353 "\"timestamp\": \"2020-02-20T09:31:22.3Z\",\n" +
1354 "\"object-id\": \"LP-MWPS-RADIO\",\n" +
1355 "\"severity\": \"Critical\",\n" +
1356 "\"counter\": 10,\n" +
1357 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Faultlog\",\n" +
1358 "\"source-type\": \"Netconf\",\n" +
1359 "\"node-id\": \"sim4\",\n" +
1360 "\"problem\": \"signalIsLost\"\n" +
1362 YangToolsMapper yangtoolsMapper = new YangToolsMapper();
1363 FaultlogEntity log = yangtoolsMapper.readValue( jsonString, Faultlog.class );
1364 System.out.println(log );
1365 System.out.println(yangtoolsMapper.writeValueAsString(log));
1366 } catch (IOException e) {
1367 fail(e.getMessage());
1372 private Pagination getPagination(long pageSize, int page) {
1373 return new PaginationBuilder().setPage(BigInteger.valueOf(page)).setSize(pageSize).build();
1377 private String clearAndCreatefaultEntity(String initialDbId, String entityType, String implementedInterface, SeverityType severity) {
1378 // ==CLEAR BEFORE TEST============================
1379 System.out.println("try to clear entry");
1381 dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1382 } catch (Exception e) {
1383 fail("problem deleting: " + e.getMessage());
1387 return createFaultEntity(initialDbId, entityType, implementedInterface, severity);
1390 private String createFaultEntity(String initialDbId, String entityType, String implementedInterface, SeverityType severity) {
1391 // ==CREATE============================
1392 System.out.println("try to create entry");
1397 dbId = dbRawProvider.doUpdateOrCreate(entityType, initialDbId,"{\n" +
1398 "\"timestamp\": \"2019-10-28T11:55:58.3Z\",\n" +
1399 "\"object-id\": \"LP-MWPS-RADIO\",\n" +
1400 "\"severity\": \""+severity.toString()+"\",\n" +
1401 "\"node-id\": \"s1\",\n" +
1402 "\"implemented-interface\": \""+implementedInterface+"\",\n" +
1403 "\"counter\": 4340,\n" +
1404 "\"problem\": \"signalIsLost\",\n" +
1405 "\"type\": \"ProblemNotificationXml\"\n" +
1410 } catch (Exception e) {
1411 fail("Problem creating fault log entry" + e.getMessage());
1417 private String createPerformanceData(String initialDbId, GranularityPeriodType timeInterval, String scannerId, String uuidInterface, String nodename) {
1419 String json = "{\n" +
1420 "\"node-name\": \""+nodename+"\",\n" +
1421 "\"uuid-interface\": \""+uuidInterface+"\",\n" +
1422 "\"layer-protocol-name\": \"MWPS\",\n" +
1423 "\"radio-signal-id\": \"Test8\",\n" +
1424 "\"time-stamp\": \"2017-03-01T06:15:00.0Z\",\n" +
1425 "\"granularity-period\": \""+timeInterval.toString()+"\",\n" +
1426 "\"scanner-id\": \""+scannerId+"\",\n" +
1427 "\"performance-data\": {\n" +
1431 "\"tx-level-max\": 3,\n" +
1432 "\"tx-level-avg\": 3,\n" +
1433 "\"rx-level-min\": -44,\n" +
1434 "\"rx-level-max\": -45,\n" +
1435 "\"rx-level-avg\": -44,\n" +
1436 "\"time2-states\": 0,\n" +
1437 "\"time4-states-s\": 0,\n" +
1438 "\"time4-states\": 0,\n" +
1439 "\"time8-states\": -1,\n" +
1440 "\"time16-states-s\": -1,\n" +
1441 "\"time16-states\": 0,\n" +
1442 "\"time32-states\": -1,\n" +
1443 "\"time64-states\": 900,\n" +
1444 "\"time128-states\": -1,\n" +
1445 "\"time256-states\": -1,\n" +
1446 "\"time512-states\": -1,\n" +
1447 "\"time512-states-l\": -1,\n" +
1448 "\"unavailability\": 0,\n" +
1449 "\"tx-level-min\": 3,\n" +
1450 "\"time1024-states\": -1,\n" +
1451 "\"time1024-states-l\": -1,\n" +
1452 "\"time2048-states\": -1,\n" +
1453 "\"time2048-states-l\": -1,\n" +
1454 "\"time4096-states\": -1,\n" +
1455 "\"time4096-states-l\": -1,\n" +
1456 "\"time8192-states\": -1,\n" +
1457 "\"time8192-states-l\": -1,\n" +
1458 "\"snir-min\": -99,\n" +
1459 "\"snir-max\": -99,\n" +
1460 "\"snir-avg\": -99,\n" +
1461 "\"xpd-min\": -99,\n" +
1462 "\"xpd-max\": -99,\n" +
1463 "\"xpd-avg\": -99,\n" +
1464 "\"rf-temp-min\": -99,\n" +
1465 "\"rf-temp-max\": -99,\n" +
1466 "\"rf-temp-avg\": -99,\n" +
1467 "\"defect-blocks-sum\": -1,\n" +
1468 "\"time-period\": 900\n" +
1470 "\"suspect-interval-flag\": false\n" +
1473 if(timeInterval.equals(GranularityPeriodType.Period15Min)) {
1474 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
1476 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);