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.ReadConnectionlogListInput;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListInputBuilder;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListOutputBuilder;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListInput;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListInputBuilder;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListOutputBuilder;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListInput;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListInputBuilder;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListOutputBuilder;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListInput;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListInputBuilder;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListOutputBuilder;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListInput;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListInputBuilder;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListOutputBuilder;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListInput;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListInputBuilder;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListOutputBuilder;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListInput;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListInputBuilder;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListOutputBuilder;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListInput;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListInputBuilder;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListOutputBuilder;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListInput;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListInputBuilder;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListOutputBuilder;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListInput;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListInputBuilder;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListOutputBuilder;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListInput;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListInputBuilder;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListOutputBuilder;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListInput;
89 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListInputBuilder;
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListOutputBuilder;
91 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListInput;
92 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListInputBuilder;
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListOutputBuilder;
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListInput;
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListInputBuilder;
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListOutputBuilder;
97 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.SeverityType;
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceInput;
99 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceInputBuilder;
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceOutputBuilder;
101 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerInput;
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerInputBuilder;
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerOutputBuilder;
104 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionInput;
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionInputBuilder;
106 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionOutputBuilder;
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.FilterBuilder;
108 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.Pagination;
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.PaginationBuilder;
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.mediator.server.list.output.Data;
112 public class TestCRUDforDatabase {
114 private static ElasticSearchDataProvider dbProvider;
115 private static HtDatabaseClient dbRawProvider;
116 private static HostInfo[] hosts = new HostInfo[] { new HostInfo("localhost", Integer
117 .valueOf(System.getProperty("databaseport") != null ? System.getProperty("databaseport") : "49200")) };
120 public static void init() throws Exception {
122 dbProvider = new ElasticSearchDataProvider(hosts);
123 dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
124 dbRawProvider = new HtDatabaseClient(hosts);
127 private static void trySleep(long ms) {
130 } catch (Exception e) {
131 Thread.interrupted();
135 private static void trySleep() {
140 public void testStatus() throws IOException {
142 //== CLEAR AND CREATE ================================
143 clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Critical);
144 createFaultEntity("Lorem Ipsum", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Major);
145 createFaultEntity("3", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Minor);
146 createFaultEntity("4", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Warning);
148 //== READ ================================
150 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.status.output.Data> readOutput = dbProvider.readStatus().getData();
151 System.out.println(readOutput);
153 assertEquals(1,readOutput.get(0).getFaults().getMajors().intValue());
154 assertEquals(1,readOutput.get(0).getFaults().getMinors().intValue());
155 assertEquals(1,readOutput.get(0).getFaults().getWarnings().intValue());
156 assertEquals(1,readOutput.get(0).getFaults().getCriticals().intValue());
158 //== DELETE ================================
160 System.out.println("try to delete entries");
162 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
163 } catch (Exception e) {
164 fail("problem deleting entry: " + e.getMessage());
167 //== VERIFY DELETE ===========================
168 System.out.println("verify entries were deleted");
169 readOutput = dbProvider.readStatus().getData();
170 assertEquals(0,readOutput.get(0).getFaults().getMajors().intValue());
171 assertEquals(0,readOutput.get(0).getFaults().getMinors().intValue());
172 assertEquals(0,readOutput.get(0).getFaults().getWarnings().intValue());
173 assertEquals(0,readOutput.get(0).getFaults().getCriticals().intValue());
177 public void testMediatorServer() {
178 final String NAME = "ms1";
179 final String URL = "http://11.23.45.55:4599";
180 final String NAME2 = "ms1-nu";
181 final String URL2 = "http://11.23.45.56:4599";
183 // ==CLEAR BEFORE TEST============================
184 System.out.println("try to clear entry");
186 dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
187 } catch (Exception e) {
188 fail("problem deleting entry: " + e.getMessage());
191 // ==CREATE============================
192 System.out.println("try to create entry");
193 CreateMediatorServerOutputBuilder createOutput = null;
194 CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
198 createOutput = dbProvider.createMediatorServer(input);
199 dbId = createOutput.getId();
200 System.out.println(createOutput);
201 } catch (Exception e) {
202 fail("failed to create " + input.toString() + ":" + e.getMessage());
204 assertNotNull(createOutput);
207 // ==READ===========================
208 System.out.println("try to read entry");
209 ReadMediatorServerListInput readinput = new ReadMediatorServerListInputBuilder()
210 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
211 .setPagination(getPagination(20, 1)).build();
212 ReadMediatorServerListOutputBuilder readoutput = dbProvider.readMediatorServerList(readinput);
213 List<Data> data = readoutput.getData();
215 assertEquals("no entry found", 1, data.size());
216 assertEquals(NAME, data.get(0).getName());
217 assertEquals(URL, data.get(0).getUrl());
218 String dbId2 = data.get(0).getId();
219 assertEquals(dbId, dbId2);
220 System.out.println(data);
221 // ==UPDATE============================
222 System.out.println("try to update entry");
223 UpdateMediatorServerInput updateInput = new UpdateMediatorServerInputBuilder().setId(dbId2).setName(NAME2)
224 .setUrl(URL2).build();
225 UpdateMediatorServerOutputBuilder updateOutput = null;
227 updateOutput = dbProvider.updateMediatorServer(updateInput);
228 System.out.println(updateOutput);
229 } catch (Exception e) {
230 fail("problem updating entry:" + e.getMessage());
232 assertNotNull(updateOutput);
234 // ==READ============================
235 System.out.println("try to read entry");
236 readinput = new ReadMediatorServerListInputBuilder()
237 .setFilter(Arrays.asList(new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
238 .setPagination(getPagination(20, 1)).build();
239 readoutput = dbProvider.readMediatorServerList(readinput);
240 data = readoutput.getData();
241 System.out.println(data);
242 assertNotNull("no update response", data);
243 assertEquals("update not verifiied", 1, data.size());
244 assertEquals("update not verifiied", NAME2, data.get(0).getName());
245 assertEquals("update not verifiied", URL2, data.get(0).getUrl());
246 assertEquals("update not verifiied", dbId, data.get(0).getId());
247 // ==DELETE============================
248 System.out.println("try to delete entry");
249 DeleteMediatorServerInput deleteInput = new DeleteMediatorServerInputBuilder().setId(dbId).build();
251 dbProvider.deleteMediatorServer(deleteInput);
252 } catch (Exception e) {
253 fail("problem deleting entry: " + e.getMessage());
257 // ==READ/VERIFY DELETE============================
258 System.out.println("try to read entry");
259 readinput = new ReadMediatorServerListInputBuilder()
260 .setFilter(Arrays.asList(new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
261 .setPagination(getPagination(20, 1)).build();
262 readoutput = dbProvider.readMediatorServerList(readinput);
263 data = readoutput.getData();
264 assertNotNull("delete not verifiied", data);
265 assertEquals("delete not verifiied", 0, data.size());
269 public void testNetworkElementConnectionCurrent() {
271 System.out.println("networkElementConnection test start");
273 // ==CLEAR BEFORE TEST============================
274 System.out.println("try to clear entry");
276 dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
277 } catch (Exception e) {
278 fail("problem deleting entry: " + e.getMessage());
281 // ==CREATE============================
282 System.out.println("try to create");
283 final String name = "sim87";
284 final String url = "10.5.10.1";
285 final long port = 5959;
287 CreateNetworkElementConnectionOutputBuilder create = null;
288 CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
289 .setIsRequired(true).setHost(url).setPort(port).build();
293 create = dbProvider.createNetworkElementConnection(input);
294 dbId = create.getId();
295 } catch (Exception e) {
296 fail("networkElementConnection create failed" + e.getMessage());
300 assertNotNull(create);
302 // ==READ===========================
304 ReadNetworkElementConnectionListInput readInput = new ReadNetworkElementConnectionListInputBuilder()
305 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
306 .setPagination(getPagination(20, 1)).build();
308 ReadNetworkElementConnectionListOutputBuilder readOperation = dbProvider
309 .readNetworkElementConnectionList(readInput);
310 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.network.element.connection.list.output.Data> data = readOperation
314 assertEquals(dbId, data.get(0).getId());
315 assertEquals(name, data.get(0).getNodeId());
316 assertEquals(url, data.get(0).getHost());
317 assertEquals(port, data.get(0).getPort().longValue());
319 // ==UPDATE============================
320 System.out.println("Trying to update...");
321 final String name2 = "sim88";
322 final String url2 = "10.5.10.2";
323 final long port2 = 5960;
325 UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setHost(url2).setPort(port2).setIsRequired(false).build();
326 UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
328 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
329 } catch (Exception e) {
330 fail("update failed: " + e.getMessage());
333 assertNotNull(updateOutput);
335 // == Verify UPDATE============================
336 System.out.println("Verfiying update...");
338 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
339 data = readOperation.getData();
342 assertEquals(url2, data.get(0).getHost());
343 assertEquals(port2, data.get(0).getPort().longValue());
345 // ==PARTIAL UPDATE============================
346 System.out.println("Try partial update...");
347 assertEquals(false, data.get(0).isIsRequired());
348 updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build();
350 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
351 } catch (Exception e) {
352 fail("update failed: " + e.getMessage());
355 assertNotNull(updateOutput);
357 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
358 data = readOperation.getData();
360 assertEquals(true, data.get(0).isIsRequired());
361 assertEquals(url2, data.get(0).getHost());
362 assertEquals(port2, data.get(0).getPort().longValue());
364 // ==DELETE============================
365 System.out.println("Try delete...");
367 DeleteNetworkElementConnectionInput deleteInput = new DeleteNetworkElementConnectionInputBuilder().setId(dbId)
370 dbProvider.deleteNetworkElementConnection(deleteInput);
371 } catch (Exception e) {
372 fail("problem deleting "+e.getMessage());
375 readInput = new ReadNetworkElementConnectionListInputBuilder()
376 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
377 .setPagination(getPagination(20, 1)).build();
378 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
379 data = readOperation.getData();
380 assertEquals(0, data.size());
385 public void testMaintenance() {
386 System.out.println("Starting Maintenance tests...");
388 // ==CLEAR BEFORE TEST============================
389 System.out.println("try to clear entry");
391 dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
392 } catch (Exception e) {
393 fail("problem deleting entry: " + e.getMessage());
396 // ==CREATE============================
398 final String nodeId = "Lorem Ipsum";
399 final boolean isActive = true;
401 CreateMaintenanceOutputBuilder create = null;
402 CreateMaintenanceInput input = new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive)
406 create = dbProvider.createMaintenance(input);
407 dbId = create.getId();
408 } catch (Exception e) {
409 fail("Failed to create:" + e.getMessage());
412 System.out.println(dbId);
413 assertNotNull(create);
416 // ==READ===========================
417 System.out.println("Try read...");
419 ReadMaintenanceListInput readinput = new ReadMaintenanceListInputBuilder()
420 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
421 .setPagination(getPagination(20, 1)).build();
422 ReadMaintenanceListOutputBuilder readResult = dbProvider.readMaintenanceList(readinput);
423 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.maintenance.list.output.Data> data = readResult
426 assertNotEquals(0, data.size());
428 assertEquals(nodeId, data.get(0).getNodeId());
429 assertEquals(isActive, data.get(0).isActive());
431 // ==UPDATE============================
433 System.out.println("Trying to update...");
434 final String nodeId2 = "Name2";
435 final boolean isActive2 = false;
437 UpdateMaintenanceInput updateInput = new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2)
438 .setActive(isActive2).build();
439 UpdateMaintenanceOutputBuilder updateResult = null;
441 updateResult = dbProvider.updateMaintenance(updateInput);
442 } catch (Exception e) {
443 fail("maintenance update failed..." + e.getMessage());
446 assertNotNull(updateResult);
448 // == VERIFY UPDATE============================
449 System.out.println("Verfify update...");
450 readResult = dbProvider.readMaintenanceList(readinput);
451 data = readResult.getData();
454 assertEquals(nodeId2, data.get(0).getNodeId());
455 assertEquals(isActive2, data.get(0).isActive());
457 // ==DELETE================================
458 System.out.println("Trying to delete...");
460 DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
462 dbProvider.deleteMaintenance(deleteInput);
463 } catch (Exception e) {
464 fail("Maintenance entry couldn't be deleted" + e.getMessage());
467 readResult = dbProvider.readMaintenanceList(readinput);
468 data = readResult.getData();
470 assertEquals(0, data.size());
474 public void testFaultLog() {
476 System.out.println("Starting fault log tests...");
477 String dbId = clearAndCreatefaultEntity("1", Entity.Faultlog.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultlogInput", SeverityType.Critical);
479 // ==READ===========================
480 System.out.println("try to read entry");
482 ReadFaultlogListInput readinput = new ReadFaultlogListInputBuilder()
483 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
484 .setPagination(getPagination(20, 1)).build();
486 ReadFaultlogListOutputBuilder readResult = null;
488 readResult = dbProvider.readFaultLogList(readinput);
490 } catch (Exception e) {
491 fail("Fault log not read: " + e.getMessage());
494 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultlog.list.output.Data> data = readResult
498 assertEquals(1, data.size());
499 assertEquals("signalIsLost", data.get(0).getProblem());
500 assertEquals("Critical", data.get(0).getSeverity().toString());
501 assertEquals("s1", data.get(0).getNodeId());
503 //== UPDATE ================================
504 System.out.println("try to update entry");
506 dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1", "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
508 System.out.println("try to search entry 1");
509 readinput = new ReadFaultlogListInputBuilder()
510 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-id").setFiltervalue("test").build()))
511 .setPagination(getPagination(20, 1)).build();
513 //== VERIFY UPDATE ================================
514 readResult = dbProvider.readFaultLogList(readinput);
515 data = readResult.getData();
519 System.out.println(data);
520 assertEquals(0, data.size());
522 System.out.println("try to search entry 2");
524 readinput = new ReadFaultlogListInputBuilder()
525 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-id").setFiltervalue("test*").build()))
526 .setPagination(getPagination(20, 1)).build();
528 readResult = dbProvider.readFaultLogList(readinput);
529 data = readResult.getData();
533 assertEquals(1, data.size());
534 assertEquals("CableLOS", data.get(0).getProblem());
535 assertEquals("Major", data.get(0).getSeverity().toString());
536 assertEquals("test4657-78", data.get(0).getNodeId());
538 //== DELETE ================================
540 System.out.println("try to clear entry");
542 dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
543 } catch (Exception e) {
544 fail("problem deleting entry: " + e.getMessage());
547 //== VERIFY DELETE ===========================
548 System.out.println("verify entries deleted");
549 readResult = dbProvider.readFaultLogList(new ReadFaultlogListInputBuilder().setPagination(getPagination(20, 1)).build());
550 data = readResult.getData();
551 assertEquals(0, data.size());
555 public void testFaultCurrent() {
556 System.out.println("Starting faultCurrent test...");
558 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.NonAlarmed);
559 assertEquals("1", dbId);
561 // ==READ===========================
562 System.out.println("Trying to read...");
565 ReadFaultcurrentListInput readinput = new ReadFaultcurrentListInputBuilder()
566 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
567 .setPagination(getPagination(20, 1)).build();
569 ReadFaultcurrentListOutputBuilder readResult = null;
571 readResult = dbProvider.readFaultCurrentList(readinput);
573 } catch (Exception e) {
574 fail("Fault log not read: " + e.getMessage());
577 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultcurrent.list.output.Data> data = readResult
582 assertEquals(1, data.size());
583 assertEquals("signalIsLost", data.get(0).getProblem());
584 assertEquals("NonAlarmed", data.get(0).getSeverity().toString());
585 assertEquals("s1", data.get(0).getNodeId());
586 assertEquals(4340, data.get(0).getCounter().intValue());
587 assertEquals(new DateAndTime("2019-10-28T11:55:58.3Z"), data.get(0).getTimestamp());
588 assertEquals(4340, data.get(0).getCounter().intValue());
589 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
592 // ==UPDATE============================
593 System.out.println("Trying to update...");
595 String json = "{\n" +
596 "\"timestamp\": \"2019-12-28T11:55:58.3Z\",\n" +
597 "\"node-id\": \"SDN-Controller-0\",\n" +
598 "\"counter\": 75,\n" +
599 "\"problem\": \"connectionLossNeOAM\",\n" +
602 String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
603 assertEquals(dbId, updatedDbId);
605 // ==READ============================
608 readResult = dbProvider.readFaultCurrentList(readinput);
610 } catch (Exception e) {
611 fail("Fault log not read: " + e.getMessage());
614 data = readResult.getData();
617 assertEquals(1, data.size());
618 assertEquals("connectionLossNeOAM", data.get(0).getProblem());
619 assertEquals("SDN-Controller-0", data.get(0).getNodeId());
620 assertEquals(75, data.get(0).getCounter().intValue());
621 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
623 // ==DELETE============================
625 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
626 } catch (Exception e) {
627 fail("problem deleting: " + e.getMessage());
630 // ==READ/VERIFY DELETE============================
633 readResult = dbProvider.readFaultCurrentList(readinput);
635 } catch (Exception e) {
636 fail("Fault log not read: " + e.getMessage());
639 data = readResult.getData();
642 assertEquals(0, data.size());
646 public void testConnectionLog() {
648 // ==CLEAR================================
649 System.out.println("Clear before test");
651 dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
652 } catch (Exception e) {
653 fail("problem deleting: " + e.getMessage());
656 // ==CREATE================================
658 System.out.println("Try create entry");
659 final String initialDbId = "1";
662 "\"timestamp\": \"2019-11-01T11:28:34.7Z\",\n" +
663 "\"status\": \"Connecting\",\n" +
664 "\"node-id\": \"sim2230\",\n" +
665 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateConnectionlogInput\"\n" +
668 dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
670 assertEquals(initialDbId, dbId);
672 // ==READ================================
673 System.out.println("Try read entry");
675 ReadConnectionlogListInput readinput = new ReadConnectionlogListInputBuilder()
676 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
677 .setPagination(getPagination(20, 1)).build();
679 ReadConnectionlogListOutputBuilder readResult = null;
681 readResult = dbProvider.readConnectionlogList(readinput);
683 } catch (Exception e) {
684 fail("Connection log not read: " + e.getMessage());
687 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.connectionlog.list.output.Data> data = readResult
691 assertEquals(1, data.size());
692 assertEquals("Connecting", data.get(0).getStatus().toString());
693 assertEquals("sim2230", data.get(0).getNodeId());
696 // ==UPDATE================================
697 System.out.println("Try update entry");
699 dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
701 // ==READ 2================================
702 System.out.println("Try read updated entry");
704 readinput = new ReadConnectionlogListInputBuilder()
705 .setFilter(Arrays.asList(new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
706 .setPagination(getPagination(20, 1)).build();
709 readResult = dbProvider.readConnectionlogList(readinput);
711 } catch (Exception e) {
712 fail("Connection log not read: " + e.getMessage());
715 data = readResult.getData();
718 assertEquals(1, data.size());
719 assertEquals("Connected", data.get(0).getStatus().toString());
720 assertEquals("sim2230", data.get(0).getNodeId());
722 //== DELETE ================================
724 System.out.println("try to clear entry");
726 dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
727 } catch (Exception e) {
728 fail("problem deleting entry: " + e.getMessage());
731 //== VERIFY DELETE ===========================
732 System.out.println("verify entries deleted");
733 readResult = dbProvider.readConnectionlogList(new ReadConnectionlogListInputBuilder().setPagination(getPagination(20, 1)).build());
734 data = readResult.getData();
735 assertEquals(0, data.size());
740 public void testEventLog() {
741 System.out.println("Test event log starting...");
743 // ==CLEAR================================
744 System.out.println("Clear before test");
746 dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
747 } catch (Exception e) {
748 fail("problem deleting: " + e.getMessage());
750 // ==CREATE============================
753 String json = " {\n" +
754 "\"timestamp\": \"2019-11-08T16:39:23.0Z\",\n" +
755 "\"new-value\": \"done\",\n" +
756 "\"object-id\": \"SDN-Controller-0\",\n" +
757 "\"attribute-name\": \"startup\",\n" +
758 "\"counter\": 0,\n" +
759 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Eventlog\",\n" +
760 "\"node-id\": \"SDN-Controller-0\"\n" +
763 dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
766 // ==READ===========================
768 ReadEventlogListInput readinput = new ReadEventlogListInputBuilder()
769 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
770 .setPagination(getPagination(20, 1)).build();
771 ReadEventlogListOutputBuilder readResult = null;
773 readResult = dbProvider.readEventlogList(readinput);
775 } catch (Exception e) {
776 fail("problem reading eventlog");
779 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.eventlog.list.output.Data> data = readResult.getData();
780 assertEquals(1,data.size());
782 //== DELETE ================================
784 System.out.println("try to clear entry");
786 dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
787 } catch (Exception e) {
788 fail("problem deleting entry: " + e.getMessage());
791 //== VERIFY DELETE ===========================
792 System.out.println("verify entries deleted");
794 readResult = dbProvider.readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
795 } catch (IOException e) {
796 fail("problem reading eventlog");
798 data = readResult.getData();
799 assertEquals(0, data.size());
804 public void testInventory() {
806 System.out.println("Test inventory starting...");
808 // ==CLEAR================================
809 System.out.println("Clear before test");
811 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
812 } catch (Exception e) {
813 fail("problem deleting: " + e.getMessage());
817 // ==CREATE============================
820 String json = " {\"tree-level\": 1,\n" +
821 " \"parent-uuid\": \"SHELF-1.1.0.0\",\n" +
822 " \"node-id\": \"sim2\",\n" +
823 " \"uuid\": \"CARD-1.1.8.0\",\n" +
824 " \"contained-holder\": [ ],\n" +
825 " \"manufacturer-name\": \"Lorem Ipsum\",\n" +
826 " \"manufacturer-identifier\": \"ONF-Wireless-Transport\",\n" +
827 " \"serial\": \"sd-dsa-eqw\",\n" +
828 " \"date\": \"2008-10-21T00:00:00.0Z\",\n" +
829 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Inventory\",\n" +
830 " \"version\": \"unknown\",\n" +
831 " \"description\": \"WS/DS3\",\n" +
832 " \"part-type-id\": \"unknown\",\n" +
833 " \"model-identifier\": \"model-id-s3s\",\n" +
834 " \"type-name\": \"p4.module\"}";
836 dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
839 // ==READ===========================
840 ReadInventoryListInput readinput = new ReadInventoryListInputBuilder()
841 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
842 .setPagination(getPagination(20, 1)).build();
843 ReadInventoryListOutputBuilder readResult = null;
845 readResult = dbProvider.readInventoryList(readinput);
847 } catch (Exception e) {
848 fail("Problem reading inventory list"+e.getMessage());
851 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.Data> data = readResult.getData();
852 assertEquals(1,data.size());
853 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
854 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
855 assertEquals("sim2", data.get(0).getNodeId());
856 assertEquals("unknown", data.get(0).getVersion());
857 assertEquals("WS/DS3", data.get(0).getDescription());
858 assertEquals("2008-10-21T00:00:00.0Z", data.get(0).getDate());
859 assertEquals("sd-dsa-eqw", data.get(0).getSerial());
860 System.out.println(data.get(0).getDate());
862 // ==UPDATE============================
863 String updatedDbId=null;
864 final String[] holderArray = {"Lorem Ipsum 1", "Lorem Ipsum 2", "Lorem Ipsum &%/$_2"};
865 String updatejson = " {" +
866 " \"node-id\": \"sim5\",\n" +
867 " \"contained-holder\": [ \"Lorem Ipsum 1\", \"Lorem Ipsum 2\", \"Lorem Ipsum &%/$_2\" ],\n" +
868 " \"serial\": \"sd-dsa-eww\",\n" +
869 " \"date\": \"2008-11-21T00:00:00.0Z\",\n" +
870 " \"part-type-id\": \"not unknown\",\n" +
873 updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
874 assertEquals(dbId, updatedDbId);
877 readResult = dbProvider.readInventoryList(readinput);
879 } catch (Exception e) {
880 fail("Problem reading inventory list"+e.getMessage());
883 data = readResult.getData();
885 assertEquals(1,data.size());
886 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
887 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
888 assertEquals("sim5", data.get(0).getNodeId());
889 assertEquals("not unknown", data.get(0).getPartTypeId());
890 assertEquals("WS/DS3", data.get(0).getDescription());
891 assertEquals("2008-11-21T00:00:00.0Z", data.get(0).getDate());
892 assertEquals("sd-dsa-eww", data.get(0).getSerial());
893 assertEquals(holderArray.length,data.get(0).getContainedHolder().size());
894 assertEquals(holderArray[0],data.get(0).getContainedHolder().get(0));
895 assertEquals(holderArray[1],data.get(0).getContainedHolder().get(1));
896 assertEquals(holderArray[2],data.get(0).getContainedHolder().get(2));
898 // ==DELETE============================
900 System.out.println("delete after test");
902 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
903 } catch (Exception e) {
904 fail("problem deleting: " + e.getMessage());
907 // ==VERIFY DELETE ============================
910 readResult = dbProvider.readInventoryList(readinput);
912 } catch (Exception e) {
913 fail("Problem reading inventory list"+e.getMessage());
916 data = readResult.getData();
917 assertEquals(0,data.size());
922 public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
924 System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
927 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
928 } catch (Exception e) {
929 fail("problem deleting: " + e.getMessage());
932 System.out.println("create entries...");
934 createPerformanceData("1", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
935 createPerformanceData("2", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
937 createPerformanceData("4", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
938 createPerformanceData("5", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
939 createPerformanceData("6", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
940 createPerformanceData("3", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
942 System.out.println("trying to read, should throw exception...");
945 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
946 .setPagination(getPagination(20, 1)).build();
948 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
951 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
952 fail("No exception thrown!");
953 } catch (Exception e) {
954 System.out.println(e);
955 assertTrue(e instanceof IllegalArgumentException);
956 assertEquals("no nodename in filter found ", e.getMessage());
959 assertNull(readltpResult);
961 //== DELETE ================================
963 System.out.println("try to clear entry");
965 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
966 } catch (Exception e) {
967 fail("problem deleting entry: " + e.getMessage());
970 //== VERIFY DELETE ===========================
971 System.out.println("verify entries deleted");
972 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()
973 .setPagination(getPagination(20, 1)).build()).getData();
975 assertEquals(0, data.size());
979 public void test15MinPerformanceData() {
980 // == CLEAR BEFORE TESTS ============================
981 System.out.println("Test 15 min performance...");
984 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
985 } catch (Exception e) {
986 fail("problem deleting: " + e.getMessage());
989 // == CREATE ============================
991 System.out.println("create entries...");
993 createPerformanceData("1", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
994 createPerformanceData("2", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
996 createPerformanceData("4", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
997 createPerformanceData("5", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
998 createPerformanceData("6", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
999 createPerformanceData("3", timeInterval.PERIOD_15MIN, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1001 // == READ ============================
1002 System.out.println("read list entries...");
1004 ReadPmdata15mListInput read = new ReadPmdata15mListInputBuilder()
1005 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1006 .setPagination(getPagination(20, 1)).build();
1008 ReadPmdata15mListOutputBuilder readResult = null;
1011 readResult = dbProvider.readPmdata15mList(read);
1012 } catch (Exception e) {
1013 fail("Problem reading 15m data");
1016 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data> data = readResult
1019 assertNotNull(data);
1020 assertEquals(2, data.size());
1022 System.out.println("read ltp entries with node name set...");
1024 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
1025 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1026 .setPagination(getPagination(20, 1)).build();
1028 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1031 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1032 } catch (Exception e) {
1033 fail("Problem reading 15m ltp data");
1036 List<String> dataLtp = readltpResult.getData();
1038 assertNotNull(dataLtp);
1039 assertEquals(2, dataLtp.size());
1040 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1041 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1043 System.out.println("read device entries...");
1045 ReadPmdata15mDeviceListInput readDevices = new ReadPmdata15mDeviceListInputBuilder()
1046 .setPagination(getPagination(20, 1)).build();
1048 ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
1051 readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
1052 } catch (Exception e) {
1053 fail("Problem reading 15m device data");
1056 List<String> dataDevice = readDeviceResult.getData();
1058 assertNotNull(dataDevice);
1059 assertEquals(2, dataDevice.size());
1060 assertTrue(dataDevice.contains("a2"));
1061 assertTrue(dataDevice.contains("a3"));
1063 //== DELETE ================================
1065 System.out.println("try to clear entry");
1067 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1068 } catch (Exception e) {
1069 fail("problem deleting entry: " + e.getMessage());
1072 //== VERIFY DELETE ===========================
1073 System.out.println("verify entries deleted");
1074 readResult = dbProvider.readPmdata15mList(new ReadPmdata15mListInputBuilder()
1075 .setPagination(getPagination(20, 1)).build());
1076 data = readResult.getData();
1077 assertEquals(0, data.size());
1082 public void test24hPerformanceData() {
1083 System.out.println("Test 24h performance...");
1086 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1087 } catch (Exception e) {
1088 fail("problem deleting: " + e.getMessage());
1091 System.out.println("create entries...");
1093 createPerformanceData("1", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1094 createPerformanceData("2", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1095 String aDbId = createPerformanceData("4", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_6", "LP-MWPS-TTP-06", "a2");
1097 createPerformanceData("5", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1098 createPerformanceData("6", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1099 createPerformanceData("3", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1101 System.out.println("read all list entries...");
1103 ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder()
1104 .setPagination(getPagination(20, 1)).build();
1106 ReadPmdata24hListOutputBuilder readResult = null;
1109 readResult = dbProvider.readPmdata24hList(read);
1110 } catch (Exception e) {
1111 fail("Problem reading 24h data");
1114 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.list.output.Data> data = readResult
1117 assertNotNull(data);
1118 assertEquals(6, data.size());
1121 System.out.println("filter list entries...");
1123 read = new ReadPmdata24hListInputBuilder()
1124 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1125 .setPagination(getPagination(20, 1)).build();
1130 readResult = dbProvider.readPmdata24hList(read);
1131 } catch (Exception e) {
1132 fail("Problem reading 24h data");
1135 data = readResult.getData();
1137 assertNotNull(data);
1138 assertEquals(3, data.size());
1140 System.out.println("read ltp entries with node name set...");
1142 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1143 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1144 .setPagination(getPagination(20, 1)).build();
1146 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1149 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1150 } catch (Exception e) {
1151 fail("Problem reading 24h ltp data");
1154 List<String> dataLtp = readltpResult.getData();
1156 assertNotNull(dataLtp);
1157 assertEquals(3, dataLtp.size());
1158 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1159 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1160 assertTrue(dataLtp.contains("LP-MWPS-TTP-06"));
1163 System.out.println("read device entries...");
1165 ReadPmdata24hDeviceListInput readDevices = new ReadPmdata24hDeviceListInputBuilder()
1166 .setPagination(getPagination(20, 1)).build();
1168 ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
1171 readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
1172 } catch (Exception e) {
1173 fail("Problem reading 24h device data");
1176 List<String> dataDevice = readDeviceResult.getData();
1178 assertNotNull(dataDevice);
1179 assertEquals(2, dataDevice.size());
1180 assertTrue(dataDevice.contains("a2"));
1181 assertTrue(dataDevice.contains("a3"));
1183 // == UPDATE ==============================
1185 String shouldbeEmpty = dbRawProvider.doUpdate(Entity.Historicalperformance24h.getName(), "{'uuid-interface':'LTP-TEST-MWP-097'}", QueryBuilders.termQuery("_id", aDbId));
1186 assertEquals("",shouldbeEmpty);
1188 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1189 } catch (Exception e) {
1190 fail("Problem reading 24h ltp data");
1193 // == VERIFY UPDATE ==============================
1195 dataLtp = readltpResult.getData();
1197 assertNotNull(dataLtp);
1198 assertEquals(3, dataLtp.size());
1199 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1200 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1201 assertTrue(dataLtp.contains("LTP-TEST-MWP-097"));
1205 //== DELETE ===========================
1207 System.out.println("try to clear entries");
1209 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1210 } catch (Exception e) {
1211 fail("problem deleting entry: " + e.getMessage());
1214 //== VERIFY DELETE ===========================
1215 System.out.println("verify entries deleted");
1216 readResult = dbProvider.readPmdata24hList(new ReadPmdata24hListInputBuilder()
1217 .setPagination(getPagination(20, 1)).build());
1218 data = readResult.getData();
1219 assertEquals(0, data.size());
1223 public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
1224 System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
1227 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1228 } catch (Exception e) {
1229 fail("problem deleting: " + e.getMessage());
1232 System.out.println("create entries...");
1234 createPerformanceData("1", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1235 createPerformanceData("2", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1237 createPerformanceData("4", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1238 createPerformanceData("5", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1239 createPerformanceData("6", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1240 createPerformanceData("3", timeInterval.PERIOD_24HOURS, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1242 System.out.println("trying to read, should throw exception...");
1245 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1246 .setPagination(getPagination(20, 1)).build();
1248 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1251 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1252 fail("No exception thrown!");
1253 } catch (Exception e) {
1254 System.out.println(e);
1255 assertTrue(e instanceof IllegalArgumentException);
1256 assertEquals("no nodename in filter found ", e.getMessage());
1259 assertNull(readltpResult);
1262 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1263 } catch (Exception e) {
1264 fail("problem deleting: " + e.getMessage());
1269 public void testUrlEncoding() {
1270 System.out.println("Testing url encding");
1272 final String test = "Lorem Ipsum";
1273 final String test1 = "Lorem/Ipsum";
1274 final String test2 = "Lorem_Ipsum";
1275 final String test3 = "Lorem%Ipsum";
1277 assertEquals("Lorem%20Ipsum", BaseRequest.urlEncodeValue(test));
1278 assertEquals("Lorem%2FIpsum", BaseRequest.urlEncodeValue(test1));
1279 assertEquals("Lorem_Ipsum", BaseRequest.urlEncodeValue(test2));
1280 assertEquals("Lorem%25Ipsum", BaseRequest.urlEncodeValue(test3));
1284 public void testDoUpdateOrCreateWithNullId() {
1285 System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
1287 String dbId = clearAndCreatefaultEntity(null, Entity.Faultlog.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultlogInput", SeverityType.Critical);
1292 public void readTestFaultCurrentViaRawDbProvider() {
1293 System.out.println("Starting faultCurrent test...");
1295 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Critical);
1296 assertEquals("1", dbId);
1298 // ==READ===========================
1299 System.out.println("Trying to read...");
1301 String readResult = null;
1303 readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
1305 } catch (Exception e) {
1306 fail("Fault log not read: " + e.getMessage());
1310 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\"}";
1312 System.out.println(readResult);
1313 assertNotNull(readResult);
1314 assertEquals(expectedDbResult, readResult);
1316 SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1317 assertNotNull(searchResult);
1319 List<SearchHit> hits = searchResult.getHits();
1321 assertNotNull(hits);
1322 assertEquals(1, searchResult.getTotal());
1323 assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
1325 //== DELETE ==============================
1327 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
1328 } catch (Exception e) {
1329 fail("problem deleting: " + e.getMessage());
1331 //== VERIFY DELETE ========================
1332 searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1333 hits = searchResult.getHits();
1334 assertNotNull(hits);
1335 assertEquals(0, searchResult.getTotal());
1340 private Pagination getPagination(long pageSize, int page) {
1341 return new PaginationBuilder().setPage(BigInteger.valueOf(page)).setSize(pageSize).build();
1345 private String clearAndCreatefaultEntity(String initialDbId, String entityType, String implementedInterface, SeverityType severity) {
1346 // ==CLEAR BEFORE TEST============================
1347 System.out.println("try to clear entry");
1349 dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1350 } catch (Exception e) {
1351 fail("problem deleting: " + e.getMessage());
1355 return createFaultEntity(initialDbId, entityType, implementedInterface, severity);
1358 private String createFaultEntity(String initialDbId, String entityType, String implementedInterface, SeverityType severity) {
1359 // ==CREATE============================
1360 System.out.println("try to create entry");
1365 dbId = dbRawProvider.doUpdateOrCreate(entityType, initialDbId,"{\n" +
1366 "\"timestamp\": \"2019-10-28T11:55:58.3Z\",\n" +
1367 "\"object-id\": \"LP-MWPS-RADIO\",\n" +
1368 "\"severity\": \""+severity.toString()+"\",\n" +
1369 "\"node-id\": \"s1\",\n" +
1370 "\"implemented-interface\": \""+implementedInterface+"\",\n" +
1371 "\"counter\": 4340,\n" +
1372 "\"problem\": \"signalIsLost\",\n" +
1373 "\"type\": \"ProblemNotificationXml\"\n" +
1378 } catch (Exception e) {
1379 fail("Problem creating fault log entry" + e.getMessage());
1385 private enum timeInterval{
1390 private String createPerformanceData(String initialDbId, timeInterval timeInterval, String scannerId, String uuidInterface, String nodename) {
1392 String json = "{\n" +
1393 "\"node-name\": \""+nodename+"\",\n" +
1394 "\"uuid-interface\": \""+uuidInterface+"\",\n" +
1395 "\"layer-protocol-name\": \"MWPS\",\n" +
1396 "\"radio-signal-id\": \"Test8\",\n" +
1397 "\"time-stamp\": \"2017-03-01T06:15:00.0Z\",\n" +
1398 "\"granularity-period\": \""+timeInterval.toString()+"\",\n" +
1399 "\"scanner-id\": \""+scannerId+"\",\n" +
1400 "\"performance-data\": {\n" +
1404 "\"tx-level-max\": 3,\n" +
1405 "\"tx-level-avg\": 3,\n" +
1406 "\"rx-level-min\": -44,\n" +
1407 "\"rx-level-max\": -45,\n" +
1408 "\"rx-level-avg\": -44,\n" +
1409 "\"time2-states\": 0,\n" +
1410 "\"time4-states-s\": 0,\n" +
1411 "\"time4-states\": 0,\n" +
1412 "\"time8-states\": -1,\n" +
1413 "\"time16-states-s\": -1,\n" +
1414 "\"time16-states\": 0,\n" +
1415 "\"time32-states\": -1,\n" +
1416 "\"time64-states\": 900,\n" +
1417 "\"time128-states\": -1,\n" +
1418 "\"time256-states\": -1,\n" +
1419 "\"time512-states\": -1,\n" +
1420 "\"time512-states-l\": -1,\n" +
1421 "\"unavailability\": 0,\n" +
1422 "\"tx-level-min\": 3,\n" +
1423 "\"time1024-states\": -1,\n" +
1424 "\"time1024-states-l\": -1,\n" +
1425 "\"time2048-states\": -1,\n" +
1426 "\"time2048-states-l\": -1,\n" +
1427 "\"time4096-states\": -1,\n" +
1428 "\"time4096-states-l\": -1,\n" +
1429 "\"time8192-states\": -1,\n" +
1430 "\"time8192-states-l\": -1,\n" +
1431 "\"snir-min\": -99,\n" +
1432 "\"snir-max\": -99,\n" +
1433 "\"snir-avg\": -99,\n" +
1434 "\"xpd-min\": -99,\n" +
1435 "\"xpd-max\": -99,\n" +
1436 "\"xpd-avg\": -99,\n" +
1437 "\"rf-temp-min\": -99,\n" +
1438 "\"rf-temp-max\": -99,\n" +
1439 "\"rf-temp-avg\": -99,\n" +
1440 "\"defect-blocks-sum\": -1,\n" +
1441 "\"time-period\": 900\n" +
1443 "\"suspect-interval-flag\": false\n" +
1446 if(timeInterval.toString().equals("PERIOD_15MIN")) {
1447 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
1449 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);