1 /*******************************************************************************
2 * ============LICENSE_START========================================================================
3 * ONAP : ccsdk feature sdnr wt
4 * =================================================================================================
5 * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6 * =================================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8 * in compliance with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software distributed under the License
13 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14 * or implied. See the License for the specific language governing permissions and limitations under
16 * ============LICENSE_END==========================================================================
17 ******************************************************************************/
19 package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
21 import static org.junit.Assert.*;
23 import java.io.IOException;
24 import java.math.BigInteger;
25 import java.util.Arrays;
26 import java.util.List;
27 import java.util.concurrent.TimeUnit;
29 import org.junit.BeforeClass;
30 import org.junit.Test;
31 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
32 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchHit;
33 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchResult;
34 import org.onap.ccsdk.features.sdnr.wt.common.database.config.HostInfo;
35 import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilders;
36 import org.onap.ccsdk.features.sdnr.wt.common.database.requests.BaseRequest;
37 import org.onap.ccsdk.features.sdnr.wt.dataprovider.data.ElasticSearchDataProvider;
38 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceInput;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceInputBuilder;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceOutputBuilder;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerInput;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerInputBuilder;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerOutputBuilder;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionInput;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionInputBuilder;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionOutputBuilder;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMaintenanceInput;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMaintenanceInputBuilder;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMediatorServerInput;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMediatorServerInputBuilder;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteNetworkElementConnectionInput;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteNetworkElementConnectionInputBuilder;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Entity;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.GranularityPeriodType;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListInput;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListInputBuilder;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListOutputBuilder;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListInput;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListInputBuilder;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListOutputBuilder;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListInput;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListInputBuilder;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListOutputBuilder;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListInput;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListInputBuilder;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListOutputBuilder;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListInput;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListInputBuilder;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListOutputBuilder;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListInput;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListInputBuilder;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListOutputBuilder;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListInput;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListInputBuilder;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListOutputBuilder;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListInput;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListInputBuilder;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListOutputBuilder;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListInput;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListInputBuilder;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListOutputBuilder;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListInput;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListInputBuilder;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListOutputBuilder;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListInput;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListInputBuilder;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListOutputBuilder;
89 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListInput;
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListInputBuilder;
91 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListOutputBuilder;
92 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListInput;
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListInputBuilder;
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListOutputBuilder;
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListInput;
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListInputBuilder;
97 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListOutputBuilder;
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.SeverityType;
99 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceInput;
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceInputBuilder;
101 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceOutputBuilder;
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerInput;
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerInputBuilder;
104 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerOutputBuilder;
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionInput;
106 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionInputBuilder;
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionOutputBuilder;
108 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.FilterBuilder;
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.Pagination;
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.PaginationBuilder;
111 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.mediator.server.list.output.Data;
113 public class TestCRUDforDatabase {
115 private static ElasticSearchDataProvider dbProvider;
116 private static HtDatabaseClient dbRawProvider;
117 private static HostInfo[] hosts = new HostInfo[] { new HostInfo("localhost", Integer
118 .valueOf(System.getProperty("databaseport") != null ? System.getProperty("databaseport") : "49200")) };
121 public static void init() throws Exception {
123 dbProvider = new ElasticSearchDataProvider(hosts);
124 dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
125 dbRawProvider = new HtDatabaseClient(hosts);
128 private static void trySleep(long ms) {
131 } catch (Exception e) {
132 Thread.currentThread().interrupt();
136 private static void trySleep() {
141 public void testStatus() throws IOException {
143 //== CLEAR AND CREATE ================================
144 clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Critical);
145 createFaultEntity("Lorem Ipsum", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Major);
146 createFaultEntity("3", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Minor);
147 createFaultEntity("4", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Warning);
149 //== READ ================================
151 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.status.output.Data> readOutput = dbProvider.readStatus().getData();
152 System.out.println(readOutput);
154 assertEquals(1,readOutput.get(0).getFaults().getMajors().intValue());
155 assertEquals(1,readOutput.get(0).getFaults().getMinors().intValue());
156 assertEquals(1,readOutput.get(0).getFaults().getWarnings().intValue());
157 assertEquals(1,readOutput.get(0).getFaults().getCriticals().intValue());
159 //== DELETE ================================
161 System.out.println("try to delete entries");
163 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
164 } catch (Exception e) {
165 fail("problem deleting entry: " + e.getMessage());
168 //== VERIFY DELETE ===========================
169 System.out.println("verify entries were deleted");
170 readOutput = dbProvider.readStatus().getData();
171 assertEquals(0,readOutput.get(0).getFaults().getMajors().intValue());
172 assertEquals(0,readOutput.get(0).getFaults().getMinors().intValue());
173 assertEquals(0,readOutput.get(0).getFaults().getWarnings().intValue());
174 assertEquals(0,readOutput.get(0).getFaults().getCriticals().intValue());
178 public void testMediatorServer() {
179 final String NAME = "ms1";
180 final String URL = "http://11.23.45.55:4599";
181 final String NAME2 = "ms1-nu";
182 final String URL2 = "http://11.23.45.56:4599";
184 // ==CLEAR BEFORE TEST============================
185 System.out.println("try to clear entry");
187 dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
188 } catch (Exception e) {
189 fail("problem deleting entry: " + e.getMessage());
192 // ==CREATE============================
193 System.out.println("try to create entry");
194 CreateMediatorServerOutputBuilder createOutput = null;
195 CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
199 createOutput = dbProvider.createMediatorServer(input);
200 dbId = createOutput.getId();
201 System.out.println(createOutput);
202 } catch (Exception e) {
203 fail("failed to create " + input.toString() + ":" + e.getMessage());
205 assertNotNull(createOutput);
208 // ==READ===========================
209 System.out.println("try to read entry");
210 ReadMediatorServerListInput readinput = new ReadMediatorServerListInputBuilder()
211 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
212 .setPagination(getPagination(20, 1)).build();
213 ReadMediatorServerListOutputBuilder readoutput = dbProvider.readMediatorServerList(readinput);
214 List<Data> data = readoutput.getData();
216 assertEquals("no entry found", 1, data.size());
217 assertEquals(NAME, data.get(0).getName());
218 assertEquals(URL, data.get(0).getUrl());
219 String dbId2 = data.get(0).getId();
220 assertEquals(dbId, dbId2);
221 System.out.println(data);
222 // ==UPDATE============================
223 System.out.println("try to update entry");
224 UpdateMediatorServerInput updateInput = new UpdateMediatorServerInputBuilder().setId(dbId2).setName(NAME2)
225 .setUrl(URL2).build();
226 UpdateMediatorServerOutputBuilder updateOutput = null;
228 updateOutput = dbProvider.updateMediatorServer(updateInput);
229 System.out.println(updateOutput);
230 } catch (Exception e) {
231 fail("problem updating entry:" + e.getMessage());
233 assertNotNull(updateOutput);
235 // ==READ============================
236 System.out.println("try to read entry");
237 readinput = new ReadMediatorServerListInputBuilder()
238 .setFilter(Arrays.asList(new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
239 .setPagination(getPagination(20, 1)).build();
240 readoutput = dbProvider.readMediatorServerList(readinput);
241 data = readoutput.getData();
242 System.out.println(data);
243 assertNotNull("no update response", data);
244 assertEquals("update not verifiied", 1, data.size());
245 assertEquals("update not verifiied", NAME2, data.get(0).getName());
246 assertEquals("update not verifiied", URL2, data.get(0).getUrl());
247 assertEquals("update not verifiied", dbId, data.get(0).getId());
248 // ==DELETE============================
249 System.out.println("try to delete entry");
250 DeleteMediatorServerInput deleteInput = new DeleteMediatorServerInputBuilder().setId(dbId).build();
252 dbProvider.deleteMediatorServer(deleteInput);
253 } catch (Exception e) {
254 fail("problem deleting entry: " + e.getMessage());
258 // ==READ/VERIFY DELETE============================
259 System.out.println("try to read entry");
260 readinput = new ReadMediatorServerListInputBuilder()
261 .setFilter(Arrays.asList(new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
262 .setPagination(getPagination(20, 1)).build();
263 readoutput = dbProvider.readMediatorServerList(readinput);
264 data = readoutput.getData();
265 assertNotNull("delete not verifiied", data);
266 assertEquals("delete not verifiied", 0, data.size());
270 public void testNetworkElementConnectionCurrent() {
272 System.out.println("networkElementConnection test start");
274 // ==CLEAR BEFORE TEST============================
275 System.out.println("try to clear entry");
277 dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
278 } catch (Exception e) {
279 fail("problem deleting entry: " + e.getMessage());
282 // ==CREATE============================
283 System.out.println("try to create");
284 final String name = "sim87";
285 final String url = "10.5.10.1";
286 final long port = 5959;
288 CreateNetworkElementConnectionOutputBuilder create = null;
289 CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
290 .setIsRequired(true).setHost(url).setPort(port).build();
294 create = dbProvider.createNetworkElementConnection(input);
295 dbId = create.getId();
296 } catch (Exception e) {
297 fail("networkElementConnection create failed" + e.getMessage());
301 assertNotNull(create);
303 // ==READ===========================
305 ReadNetworkElementConnectionListInput readInput = new ReadNetworkElementConnectionListInputBuilder()
306 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
307 .setPagination(getPagination(20, 1)).build();
309 ReadNetworkElementConnectionListOutputBuilder readOperation = dbProvider
310 .readNetworkElementConnectionList(readInput);
311 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.network.element.connection.list.output.Data> data = readOperation
315 assertEquals(dbId, data.get(0).getId());
316 assertEquals(name, data.get(0).getNodeId());
317 assertEquals(url, data.get(0).getHost());
318 assertEquals(port, data.get(0).getPort().longValue());
320 // ==UPDATE============================
321 System.out.println("Trying to update...");
322 final String name2 = "sim88";
323 final String url2 = "10.5.10.2";
324 final long port2 = 5960;
326 UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setHost(url2).setPort(port2).setIsRequired(false).build();
327 UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
329 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
330 } catch (Exception e) {
331 fail("update failed: " + e.getMessage());
334 assertNotNull(updateOutput);
336 // == Verify UPDATE============================
337 System.out.println("Verfiying update...");
339 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
340 data = readOperation.getData();
343 assertEquals(url2, data.get(0).getHost());
344 assertEquals(port2, data.get(0).getPort().longValue());
346 // ==PARTIAL UPDATE============================
347 System.out.println("Try partial update...");
348 assertEquals(false, data.get(0).isIsRequired());
349 updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build();
351 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
352 } catch (Exception e) {
353 fail("update failed: " + e.getMessage());
356 assertNotNull(updateOutput);
358 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
359 data = readOperation.getData();
361 assertEquals(true, data.get(0).isIsRequired());
362 assertEquals(url2, data.get(0).getHost());
363 assertEquals(port2, data.get(0).getPort().longValue());
365 // ==DELETE============================
366 System.out.println("Try delete...");
368 DeleteNetworkElementConnectionInput deleteInput = new DeleteNetworkElementConnectionInputBuilder().setId(dbId)
371 dbProvider.deleteNetworkElementConnection(deleteInput);
372 } catch (Exception e) {
373 fail("problem deleting "+e.getMessage());
376 readInput = new ReadNetworkElementConnectionListInputBuilder()
377 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
378 .setPagination(getPagination(20, 1)).build();
379 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
380 data = readOperation.getData();
381 assertEquals(0, data.size());
386 public void testMaintenance() {
387 System.out.println("Starting Maintenance tests...");
389 // ==CLEAR BEFORE TEST============================
390 System.out.println("try to clear entry");
392 dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
393 } catch (Exception e) {
394 fail("problem deleting entry: " + e.getMessage());
397 // ==CREATE============================
399 final String nodeId = "Lorem Ipsum";
400 final boolean isActive = true;
402 CreateMaintenanceOutputBuilder create = null;
403 CreateMaintenanceInput input = new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive)
407 create = dbProvider.createMaintenance(input);
408 dbId = create.getId();
409 } catch (Exception e) {
410 fail("Failed to create:" + e.getMessage());
413 System.out.println(dbId);
414 assertNotNull(create);
417 // ==READ===========================
418 System.out.println("Try read...");
420 ReadMaintenanceListInput readinput = new ReadMaintenanceListInputBuilder()
421 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
422 .setPagination(getPagination(20, 1)).build();
423 ReadMaintenanceListOutputBuilder readResult = dbProvider.readMaintenanceList(readinput);
424 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.maintenance.list.output.Data> data = readResult
427 assertNotEquals(0, data.size());
429 assertEquals(nodeId, data.get(0).getNodeId());
430 assertEquals(isActive, data.get(0).isActive());
432 // ==UPDATE============================
434 System.out.println("Trying to update...");
435 final String nodeId2 = "Name2";
436 final boolean isActive2 = false;
438 UpdateMaintenanceInput updateInput = new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2)
439 .setActive(isActive2).build();
440 UpdateMaintenanceOutputBuilder updateResult = null;
442 updateResult = dbProvider.updateMaintenance(updateInput);
443 } catch (Exception e) {
444 fail("maintenance update failed..." + e.getMessage());
447 assertNotNull(updateResult);
449 // == VERIFY UPDATE============================
450 System.out.println("Verfify update...");
451 readResult = dbProvider.readMaintenanceList(readinput);
452 data = readResult.getData();
455 assertEquals(nodeId2, data.get(0).getNodeId());
456 assertEquals(isActive2, data.get(0).isActive());
458 // ==DELETE================================
459 System.out.println("Trying to delete...");
461 DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
463 dbProvider.deleteMaintenance(deleteInput);
464 } catch (Exception e) {
465 fail("Maintenance entry couldn't be deleted" + e.getMessage());
468 readResult = dbProvider.readMaintenanceList(readinput);
469 data = readResult.getData();
471 assertEquals(0, data.size());
475 public void testFaultLog() {
477 System.out.println("Starting fault log tests...");
478 String dbId = clearAndCreatefaultEntity("1", Entity.Faultlog.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultlogInput", SeverityType.Critical);
480 // ==READ===========================
481 System.out.println("try to read entry");
483 ReadFaultlogListInput readinput = new ReadFaultlogListInputBuilder()
484 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
485 .setPagination(getPagination(20, 1)).build();
487 ReadFaultlogListOutputBuilder readResult = null;
489 readResult = dbProvider.readFaultLogList(readinput);
491 } catch (Exception e) {
492 fail("Fault log not read: " + e.getMessage());
495 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultlog.list.output.Data> data = readResult
499 assertEquals(1, data.size());
500 assertEquals("signalIsLost", data.get(0).getProblem());
501 assertEquals("Critical", data.get(0).getSeverity().toString());
502 assertEquals("s1", data.get(0).getNodeId());
504 //== UPDATE ================================
505 System.out.println("try to update entry");
507 dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1", "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
509 System.out.println("try to search entry 1");
510 readinput = new ReadFaultlogListInputBuilder()
511 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-id").setFiltervalue("test").build()))
512 .setPagination(getPagination(20, 1)).build();
514 //== VERIFY UPDATE ================================
515 readResult = dbProvider.readFaultLogList(readinput);
516 data = readResult.getData();
520 System.out.println(data);
521 assertEquals(0, data.size());
523 System.out.println("try to search entry 2");
525 readinput = new ReadFaultlogListInputBuilder()
526 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-id").setFiltervalue("test*").build()))
527 .setPagination(getPagination(20, 1)).build();
529 readResult = dbProvider.readFaultLogList(readinput);
530 data = readResult.getData();
534 assertEquals(1, data.size());
535 assertEquals("CableLOS", data.get(0).getProblem());
536 assertEquals("Major", data.get(0).getSeverity().toString());
537 assertEquals("test4657-78", data.get(0).getNodeId());
539 //== DELETE ================================
541 System.out.println("try to clear entry");
543 dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
544 } catch (Exception e) {
545 fail("problem deleting entry: " + e.getMessage());
548 //== VERIFY DELETE ===========================
549 System.out.println("verify entries deleted");
550 readResult = dbProvider.readFaultLogList(new ReadFaultlogListInputBuilder().setPagination(getPagination(20, 1)).build());
551 data = readResult.getData();
552 assertEquals(0, data.size());
556 public void testFaultCurrent() {
557 System.out.println("Starting faultCurrent test...");
559 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.NonAlarmed);
560 assertEquals("1", dbId);
562 // ==READ===========================
563 System.out.println("Trying to read...");
566 ReadFaultcurrentListInput readinput = new ReadFaultcurrentListInputBuilder()
567 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
568 .setPagination(getPagination(20, 1)).build();
570 ReadFaultcurrentListOutputBuilder readResult = null;
572 readResult = dbProvider.readFaultCurrentList(readinput);
574 } catch (Exception e) {
575 fail("Fault log not read: " + e.getMessage());
578 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultcurrent.list.output.Data> data = readResult
583 assertEquals(1, data.size());
584 assertEquals("signalIsLost", data.get(0).getProblem());
585 assertEquals("NonAlarmed", data.get(0).getSeverity().toString());
586 assertEquals("s1", data.get(0).getNodeId());
587 assertEquals(4340, data.get(0).getCounter().intValue());
588 assertEquals(new DateAndTime("2019-10-28T11:55:58.3Z"), data.get(0).getTimestamp());
589 assertEquals(4340, data.get(0).getCounter().intValue());
590 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
593 // ==UPDATE============================
594 System.out.println("Trying to update...");
596 String json = "{\n" +
597 "\"timestamp\": \"2019-12-28T11:55:58.3Z\",\n" +
598 "\"node-id\": \"SDN-Controller-0\",\n" +
599 "\"counter\": 75,\n" +
600 "\"problem\": \"connectionLossNeOAM\",\n" +
603 String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
604 assertEquals(dbId, updatedDbId);
606 // ==READ============================
609 readResult = dbProvider.readFaultCurrentList(readinput);
611 } catch (Exception e) {
612 fail("Fault log not read: " + e.getMessage());
615 data = readResult.getData();
618 assertEquals(1, data.size());
619 assertEquals("connectionLossNeOAM", data.get(0).getProblem());
620 assertEquals("SDN-Controller-0", data.get(0).getNodeId());
621 assertEquals(75, data.get(0).getCounter().intValue());
622 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
624 // ==DELETE============================
626 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
627 } catch (Exception e) {
628 fail("problem deleting: " + e.getMessage());
631 // ==READ/VERIFY DELETE============================
634 readResult = dbProvider.readFaultCurrentList(readinput);
636 } catch (Exception e) {
637 fail("Fault log not read: " + e.getMessage());
640 data = readResult.getData();
643 assertEquals(0, data.size());
647 public void testConnectionLog() {
649 // ==CLEAR================================
650 System.out.println("Clear before test");
652 dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
653 } catch (Exception e) {
654 fail("problem deleting: " + e.getMessage());
657 // ==CREATE================================
659 System.out.println("Try create entry");
660 final String initialDbId = "1";
663 "\"timestamp\": \"2019-11-01T11:28:34.7Z\",\n" +
664 "\"status\": \"Connecting\",\n" +
665 "\"node-id\": \"sim2230\",\n" +
666 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateConnectionlogInput\"\n" +
669 dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
671 assertEquals(initialDbId, dbId);
673 // ==READ================================
674 System.out.println("Try read entry");
676 ReadConnectionlogListInput readinput = new ReadConnectionlogListInputBuilder()
677 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
678 .setPagination(getPagination(20, 1)).build();
680 ReadConnectionlogListOutputBuilder readResult = null;
682 readResult = dbProvider.readConnectionlogList(readinput);
684 } catch (Exception e) {
685 fail("Connection log not read: " + e.getMessage());
688 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.connectionlog.list.output.Data> data = readResult
692 assertEquals(1, data.size());
693 assertEquals("Connecting", data.get(0).getStatus().toString());
694 assertEquals("sim2230", data.get(0).getNodeId());
697 // ==UPDATE================================
698 System.out.println("Try update entry");
700 dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
702 // ==READ 2================================
703 System.out.println("Try read updated entry");
705 readinput = new ReadConnectionlogListInputBuilder()
706 .setFilter(Arrays.asList(new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
707 .setPagination(getPagination(20, 1)).build();
710 readResult = dbProvider.readConnectionlogList(readinput);
712 } catch (Exception e) {
713 fail("Connection log not read: " + e.getMessage());
716 data = readResult.getData();
719 assertEquals(1, data.size());
720 assertEquals("Connected", data.get(0).getStatus().toString());
721 assertEquals("sim2230", data.get(0).getNodeId());
723 //== DELETE ================================
725 System.out.println("try to clear entry");
727 dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
728 } catch (Exception e) {
729 fail("problem deleting entry: " + e.getMessage());
732 //== VERIFY DELETE ===========================
733 System.out.println("verify entries deleted");
734 readResult = dbProvider.readConnectionlogList(new ReadConnectionlogListInputBuilder().setPagination(getPagination(20, 1)).build());
735 data = readResult.getData();
736 assertEquals(0, data.size());
741 public void testEventLog() {
742 System.out.println("Test event log starting...");
744 // ==CLEAR================================
745 System.out.println("Clear before test");
747 dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
748 } catch (Exception e) {
749 fail("problem deleting: " + e.getMessage());
751 // ==CREATE============================
754 String json = " {\n" +
755 "\"timestamp\": \"2019-11-08T16:39:23.0Z\",\n" +
756 "\"new-value\": \"done\",\n" +
757 "\"object-id\": \"SDN-Controller-0\",\n" +
758 "\"attribute-name\": \"startup\",\n" +
759 "\"counter\": 0,\n" +
760 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Eventlog\",\n" +
761 "\"node-id\": \"SDN-Controller-0\"\n" +
764 dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
767 // ==READ===========================
769 ReadEventlogListInput readinput = new ReadEventlogListInputBuilder()
770 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
771 .setPagination(getPagination(20, 1)).build();
772 ReadEventlogListOutputBuilder readResult = null;
774 readResult = dbProvider.readEventlogList(readinput);
776 } catch (Exception e) {
777 fail("problem reading eventlog");
780 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.eventlog.list.output.Data> data = readResult.getData();
781 assertEquals(1,data.size());
783 //== DELETE ================================
785 System.out.println("try to clear entry");
787 dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
788 } catch (Exception e) {
789 fail("problem deleting entry: " + e.getMessage());
792 //== VERIFY DELETE ===========================
793 System.out.println("verify entries deleted");
795 readResult = dbProvider.readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
796 } catch (IOException e) {
797 fail("problem reading eventlog");
799 data = readResult.getData();
800 assertEquals(0, data.size());
805 public void testInventory() {
807 System.out.println("Test inventory starting...");
809 // ==CLEAR================================
810 System.out.println("Clear before test");
812 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
813 } catch (Exception e) {
814 fail("problem deleting: " + e.getMessage());
818 // ==CREATE============================
821 String json = " {\"tree-level\": 1,\n" +
822 " \"parent-uuid\": \"SHELF-1.1.0.0\",\n" +
823 " \"node-id\": \"sim2\",\n" +
824 " \"uuid\": \"CARD-1.1.8.0\",\n" +
825 " \"contained-holder\": [ ],\n" +
826 " \"manufacturer-name\": \"Lorem Ipsum\",\n" +
827 " \"manufacturer-identifier\": \"ONF-Wireless-Transport\",\n" +
828 " \"serial\": \"sd-dsa-eqw\",\n" +
829 " \"date\": \"2008-10-21T00:00:00.0Z\",\n" +
830 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Inventory\",\n" +
831 " \"version\": \"unknown\",\n" +
832 " \"description\": \"WS/DS3\",\n" +
833 " \"part-type-id\": \"unknown\",\n" +
834 " \"model-identifier\": \"model-id-s3s\",\n" +
835 " \"type-name\": \"p4.module\"}";
837 dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
840 // ==READ===========================
841 ReadInventoryListInput readinput = new ReadInventoryListInputBuilder()
842 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
843 .setPagination(getPagination(20, 1)).build();
844 ReadInventoryListOutputBuilder readResult = null;
846 readResult = dbProvider.readInventoryList(readinput);
848 } catch (Exception e) {
849 fail("Problem reading inventory list"+e.getMessage());
852 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.Data> data = readResult.getData();
853 assertEquals(1,data.size());
854 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
855 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
856 assertEquals("sim2", data.get(0).getNodeId());
857 assertEquals("unknown", data.get(0).getVersion());
858 assertEquals("WS/DS3", data.get(0).getDescription());
859 assertEquals("2008-10-21T00:00:00.0Z", data.get(0).getDate());
860 assertEquals("sd-dsa-eqw", data.get(0).getSerial());
861 System.out.println(data.get(0).getDate());
863 // ==UPDATE============================
864 String updatedDbId=null;
865 final String[] holderArray = {"Lorem Ipsum 1", "Lorem Ipsum 2", "Lorem Ipsum &%/$_2"};
866 String updatejson = " {" +
867 " \"node-id\": \"sim5\",\n" +
868 " \"contained-holder\": [ \"Lorem Ipsum 1\", \"Lorem Ipsum 2\", \"Lorem Ipsum &%/$_2\" ],\n" +
869 " \"serial\": \"sd-dsa-eww\",\n" +
870 " \"date\": \"2008-11-21T00:00:00.0Z\",\n" +
871 " \"part-type-id\": \"not unknown\",\n" +
874 updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
875 assertEquals(dbId, updatedDbId);
878 readResult = dbProvider.readInventoryList(readinput);
880 } catch (Exception e) {
881 fail("Problem reading inventory list"+e.getMessage());
884 data = readResult.getData();
886 assertEquals(1,data.size());
887 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
888 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
889 assertEquals("sim5", data.get(0).getNodeId());
890 assertEquals("not unknown", data.get(0).getPartTypeId());
891 assertEquals("WS/DS3", data.get(0).getDescription());
892 assertEquals("2008-11-21T00:00:00.0Z", data.get(0).getDate());
893 assertEquals("sd-dsa-eww", data.get(0).getSerial());
894 assertEquals(holderArray.length,data.get(0).getContainedHolder().size());
895 assertEquals(holderArray[0],data.get(0).getContainedHolder().get(0));
896 assertEquals(holderArray[1],data.get(0).getContainedHolder().get(1));
897 assertEquals(holderArray[2],data.get(0).getContainedHolder().get(2));
899 // ==DELETE============================
901 System.out.println("delete after test");
903 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
904 } catch (Exception e) {
905 fail("problem deleting: " + e.getMessage());
908 // ==VERIFY DELETE ============================
911 readResult = dbProvider.readInventoryList(readinput);
913 } catch (Exception e) {
914 fail("Problem reading inventory list"+e.getMessage());
917 data = readResult.getData();
918 assertEquals(0,data.size());
923 public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
925 System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
928 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
929 } catch (Exception e) {
930 fail("problem deleting: " + e.getMessage());
933 System.out.println("create entries...");
935 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
936 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
938 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
939 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
940 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
941 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
943 System.out.println("trying to read, should throw exception...");
946 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
947 .setPagination(getPagination(20, 1)).build();
949 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
952 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
953 fail("No exception thrown!");
954 } catch (Exception e) {
955 System.out.println(e);
956 assertTrue(e instanceof IllegalArgumentException);
957 assertEquals("no nodename in filter found ", e.getMessage());
960 assertNull(readltpResult);
962 //== DELETE ================================
964 System.out.println("try to clear entry");
966 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
967 } catch (Exception e) {
968 fail("problem deleting entry: " + e.getMessage());
971 //== VERIFY DELETE ===========================
972 System.out.println("verify entries deleted");
973 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()
974 .setPagination(getPagination(20, 1)).build()).getData();
976 assertEquals(0, data.size());
980 public void test15MinPerformanceData() {
981 // == CLEAR BEFORE TESTS ============================
982 System.out.println("Test 15 min performance...");
985 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
986 } catch (Exception e) {
987 fail("problem deleting: " + e.getMessage());
990 // == CREATE ============================
992 System.out.println("create entries...");
994 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
995 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
997 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
998 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
999 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1000 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1002 // == READ ============================
1003 System.out.println("read list entries...");
1005 ReadPmdata15mListInput read = new ReadPmdata15mListInputBuilder()
1006 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1007 .setPagination(getPagination(20, 1)).build();
1009 ReadPmdata15mListOutputBuilder readResult = null;
1012 readResult = dbProvider.readPmdata15mList(read);
1013 } catch (Exception e) {
1014 fail("Problem reading 15m data");
1017 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data> data = readResult
1020 assertNotNull(data);
1021 assertEquals(2, data.size());
1023 System.out.println("read ltp entries with node name set...");
1025 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
1026 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1027 .setPagination(getPagination(20, 1)).build();
1029 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1032 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1033 } catch (Exception e) {
1034 fail("Problem reading 15m ltp data");
1037 List<String> dataLtp = readltpResult.getData();
1039 assertNotNull(dataLtp);
1040 assertEquals(2, dataLtp.size());
1041 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1042 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1044 System.out.println("read device entries...");
1046 ReadPmdata15mDeviceListInput readDevices = new ReadPmdata15mDeviceListInputBuilder()
1047 .setPagination(getPagination(20, 1)).build();
1049 ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
1052 readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
1053 } catch (Exception e) {
1054 fail("Problem reading 15m device data");
1057 List<String> dataDevice = readDeviceResult.getData();
1059 assertNotNull(dataDevice);
1060 assertEquals(2, dataDevice.size());
1061 assertTrue(dataDevice.contains("a2"));
1062 assertTrue(dataDevice.contains("a3"));
1064 //== DELETE ================================
1066 System.out.println("try to clear entry");
1068 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1069 } catch (Exception e) {
1070 fail("problem deleting entry: " + e.getMessage());
1073 //== VERIFY DELETE ===========================
1074 System.out.println("verify entries deleted");
1075 readResult = dbProvider.readPmdata15mList(new ReadPmdata15mListInputBuilder()
1076 .setPagination(getPagination(20, 1)).build());
1077 data = readResult.getData();
1078 assertEquals(0, data.size());
1083 public void test24hPerformanceData() {
1084 System.out.println("Test 24h performance...");
1087 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1088 } catch (Exception e) {
1089 fail("problem deleting: " + e.getMessage());
1092 System.out.println("create entries...");
1093 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1094 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1095 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1096 String aDbId = createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-06", "a2");
1098 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1099 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1100 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1102 System.out.println("read all list entries...");
1104 ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder()
1105 .setPagination(getPagination(20, 1)).build();
1107 ReadPmdata24hListOutputBuilder readResult = null;
1110 readResult = dbProvider.readPmdata24hList(read);
1111 } catch (Exception e) {
1112 fail("Problem reading 24h data");
1115 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.list.output.Data> data = readResult
1118 assertNotNull(data);
1119 assertEquals(6, data.size());
1122 System.out.println("filter list entries...");
1124 read = new ReadPmdata24hListInputBuilder()
1125 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1126 .setPagination(getPagination(20, 1)).build();
1131 readResult = dbProvider.readPmdata24hList(read);
1132 } catch (Exception e) {
1133 fail("Problem reading 24h data");
1136 data = readResult.getData();
1138 assertNotNull(data);
1139 assertEquals(3, data.size());
1141 System.out.println("read ltp entries with node name set...");
1143 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1144 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1145 .setPagination(getPagination(20, 1)).build();
1147 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1150 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1151 } catch (Exception e) {
1152 fail("Problem reading 24h ltp data");
1155 List<String> dataLtp = readltpResult.getData();
1157 assertNotNull(dataLtp);
1158 assertEquals(3, dataLtp.size());
1159 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1160 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1161 assertTrue(dataLtp.contains("LP-MWPS-TTP-06"));
1164 System.out.println("read device entries...");
1166 ReadPmdata24hDeviceListInput readDevices = new ReadPmdata24hDeviceListInputBuilder()
1167 .setPagination(getPagination(20, 1)).build();
1169 ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
1172 readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
1173 } catch (Exception e) {
1174 fail("Problem reading 24h device data");
1177 List<String> dataDevice = readDeviceResult.getData();
1179 assertNotNull(dataDevice);
1180 assertEquals(2, dataDevice.size());
1181 assertTrue(dataDevice.contains("a2"));
1182 assertTrue(dataDevice.contains("a3"));
1184 // == UPDATE ==============================
1186 String shouldbeEmpty = dbRawProvider.doUpdate(Entity.Historicalperformance24h.getName(), "{'uuid-interface':'LTP-TEST-MWP-097'}", QueryBuilders.termQuery("_id", aDbId));
1187 assertEquals("",shouldbeEmpty);
1189 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1190 } catch (Exception e) {
1191 fail("Problem reading 24h ltp data");
1194 // == VERIFY UPDATE ==============================
1196 dataLtp = readltpResult.getData();
1198 assertNotNull(dataLtp);
1199 assertEquals(3, dataLtp.size());
1200 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1201 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1202 assertTrue(dataLtp.contains("LTP-TEST-MWP-097"));
1206 //== DELETE ===========================
1208 System.out.println("try to clear entries");
1210 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1211 } catch (Exception e) {
1212 fail("problem deleting entry: " + e.getMessage());
1215 //== VERIFY DELETE ===========================
1216 System.out.println("verify entries deleted");
1217 readResult = dbProvider.readPmdata24hList(new ReadPmdata24hListInputBuilder()
1218 .setPagination(getPagination(20, 1)).build());
1219 data = readResult.getData();
1220 assertEquals(0, data.size());
1224 public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
1225 System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
1228 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1229 } catch (Exception e) {
1230 fail("problem deleting: " + e.getMessage());
1233 System.out.println("create entries...");
1235 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1236 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1237 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1239 createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1240 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1241 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1242 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1244 System.out.println("trying to read, should throw exception...");
1247 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1248 .setPagination(getPagination(20, 1)).build();
1250 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1253 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1254 fail("No exception thrown!");
1255 } catch (Exception e) {
1256 System.out.println(e);
1257 assertTrue(e instanceof IllegalArgumentException);
1258 assertEquals("no nodename in filter found ", e.getMessage());
1261 assertNull(readltpResult);
1264 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1265 } catch (Exception e) {
1266 fail("problem deleting: " + e.getMessage());
1271 public void testUrlEncoding() {
1272 System.out.println("Testing url encding");
1274 final String test = "Lorem Ipsum";
1275 final String test1 = "Lorem/Ipsum";
1276 final String test2 = "Lorem_Ipsum";
1277 final String test3 = "Lorem%Ipsum";
1279 assertEquals("Lorem%20Ipsum", BaseRequest.urlEncodeValue(test));
1280 assertEquals("Lorem%2FIpsum", BaseRequest.urlEncodeValue(test1));
1281 assertEquals("Lorem_Ipsum", BaseRequest.urlEncodeValue(test2));
1282 assertEquals("Lorem%25Ipsum", BaseRequest.urlEncodeValue(test3));
1286 public void testDoUpdateOrCreateWithNullId() {
1287 System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
1289 String dbId = clearAndCreatefaultEntity(null, Entity.Faultlog.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultlogInput", SeverityType.Critical);
1294 public void readTestFaultCurrentViaRawDbProvider() {
1295 System.out.println("Starting faultCurrent test...");
1297 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Critical);
1298 assertEquals("1", dbId);
1300 // ==READ===========================
1301 System.out.println("Trying to read...");
1303 String readResult = null;
1305 readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
1307 } catch (Exception e) {
1308 fail("Fault log not read: " + e.getMessage());
1312 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\"}";
1314 System.out.println(readResult);
1315 assertNotNull(readResult);
1316 assertEquals(expectedDbResult, readResult);
1318 SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1319 assertNotNull(searchResult);
1321 List<SearchHit> hits = searchResult.getHits();
1323 assertNotNull(hits);
1324 assertEquals(1, searchResult.getTotal());
1325 assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
1327 //== DELETE ==============================
1329 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
1330 } catch (Exception e) {
1331 fail("problem deleting: " + e.getMessage());
1333 //== VERIFY DELETE ========================
1334 searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1335 hits = searchResult.getHits();
1336 assertNotNull(hits);
1337 assertEquals(0, searchResult.getTotal());
1342 private Pagination getPagination(long pageSize, int page) {
1343 return new PaginationBuilder().setPage(BigInteger.valueOf(page)).setSize(pageSize).build();
1347 private String clearAndCreatefaultEntity(String initialDbId, String entityType, String implementedInterface, SeverityType severity) {
1348 // ==CLEAR BEFORE TEST============================
1349 System.out.println("try to clear entry");
1351 dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1352 } catch (Exception e) {
1353 fail("problem deleting: " + e.getMessage());
1357 return createFaultEntity(initialDbId, entityType, implementedInterface, severity);
1360 private String createFaultEntity(String initialDbId, String entityType, String implementedInterface, SeverityType severity) {
1361 // ==CREATE============================
1362 System.out.println("try to create entry");
1367 dbId = dbRawProvider.doUpdateOrCreate(entityType, initialDbId,"{\n" +
1368 "\"timestamp\": \"2019-10-28T11:55:58.3Z\",\n" +
1369 "\"object-id\": \"LP-MWPS-RADIO\",\n" +
1370 "\"severity\": \""+severity.toString()+"\",\n" +
1371 "\"node-id\": \"s1\",\n" +
1372 "\"implemented-interface\": \""+implementedInterface+"\",\n" +
1373 "\"counter\": 4340,\n" +
1374 "\"problem\": \"signalIsLost\",\n" +
1375 "\"type\": \"ProblemNotificationXml\"\n" +
1380 } catch (Exception e) {
1381 fail("Problem creating fault log entry" + e.getMessage());
1387 private String createPerformanceData(String initialDbId, GranularityPeriodType timeInterval, String scannerId, String uuidInterface, String nodename) {
1389 String json = "{\n" +
1390 "\"node-name\": \""+nodename+"\",\n" +
1391 "\"uuid-interface\": \""+uuidInterface+"\",\n" +
1392 "\"layer-protocol-name\": \"MWPS\",\n" +
1393 "\"radio-signal-id\": \"Test8\",\n" +
1394 "\"time-stamp\": \"2017-03-01T06:15:00.0Z\",\n" +
1395 "\"granularity-period\": \""+timeInterval.toString()+"\",\n" +
1396 "\"scanner-id\": \""+scannerId+"\",\n" +
1397 "\"performance-data\": {\n" +
1401 "\"tx-level-max\": 3,\n" +
1402 "\"tx-level-avg\": 3,\n" +
1403 "\"rx-level-min\": -44,\n" +
1404 "\"rx-level-max\": -45,\n" +
1405 "\"rx-level-avg\": -44,\n" +
1406 "\"time2-states\": 0,\n" +
1407 "\"time4-states-s\": 0,\n" +
1408 "\"time4-states\": 0,\n" +
1409 "\"time8-states\": -1,\n" +
1410 "\"time16-states-s\": -1,\n" +
1411 "\"time16-states\": 0,\n" +
1412 "\"time32-states\": -1,\n" +
1413 "\"time64-states\": 900,\n" +
1414 "\"time128-states\": -1,\n" +
1415 "\"time256-states\": -1,\n" +
1416 "\"time512-states\": -1,\n" +
1417 "\"time512-states-l\": -1,\n" +
1418 "\"unavailability\": 0,\n" +
1419 "\"tx-level-min\": 3,\n" +
1420 "\"time1024-states\": -1,\n" +
1421 "\"time1024-states-l\": -1,\n" +
1422 "\"time2048-states\": -1,\n" +
1423 "\"time2048-states-l\": -1,\n" +
1424 "\"time4096-states\": -1,\n" +
1425 "\"time4096-states-l\": -1,\n" +
1426 "\"time8192-states\": -1,\n" +
1427 "\"time8192-states-l\": -1,\n" +
1428 "\"snir-min\": -99,\n" +
1429 "\"snir-max\": -99,\n" +
1430 "\"snir-avg\": -99,\n" +
1431 "\"xpd-min\": -99,\n" +
1432 "\"xpd-max\": -99,\n" +
1433 "\"xpd-avg\": -99,\n" +
1434 "\"rf-temp-min\": -99,\n" +
1435 "\"rf-temp-max\": -99,\n" +
1436 "\"rf-temp-avg\": -99,\n" +
1437 "\"defect-blocks-sum\": -1,\n" +
1438 "\"time-period\": 900\n" +
1440 "\"suspect-interval-flag\": false\n" +
1443 if(timeInterval.equals(GranularityPeriodType.Period15Min)) {
1444 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
1446 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);