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.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.YangToolsMapper;
39 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceInput;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceInputBuilder;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceOutputBuilder;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerInput;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerInputBuilder;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerOutputBuilder;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionInput;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionInputBuilder;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionOutputBuilder;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMaintenanceInput;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMaintenanceInputBuilder;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMediatorServerInput;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMediatorServerInputBuilder;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteNetworkElementConnectionInput;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteNetworkElementConnectionInputBuilder;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Entity;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.EntityInput;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Faultlog;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.FaultlogEntity;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.GranularityPeriodType;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListInput;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListInputBuilder;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListOutputBuilder;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListInput;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListInputBuilder;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListOutputBuilder;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListInput;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListInputBuilder;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListOutputBuilder;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListInput;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListInputBuilder;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListOutputBuilder;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListInput;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListInputBuilder;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListOutputBuilder;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListInput;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListInputBuilder;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListOutputBuilder;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListInput;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListInputBuilder;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListOutputBuilder;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListInput;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListInputBuilder;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListOutputBuilder;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListInput;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListInputBuilder;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListOutputBuilder;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListInput;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListInputBuilder;
89 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListOutputBuilder;
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListInput;
91 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListInputBuilder;
92 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListOutputBuilder;
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListInput;
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListInputBuilder;
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListOutputBuilder;
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListInput;
97 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListInputBuilder;
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListOutputBuilder;
99 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListInput;
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListInputBuilder;
101 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListOutputBuilder;
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.SeverityType;
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceInput;
104 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceInputBuilder;
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceOutputBuilder;
106 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerInput;
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerInputBuilder;
108 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerOutputBuilder;
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionInput;
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionInputBuilder;
111 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionOutputBuilder;
112 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.Filter;
113 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.FilterBuilder;
114 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.Pagination;
115 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.PaginationBuilder;
116 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.mediator.server.list.output.Data;
118 public class TestCRUDforDatabase {
120 private static ElasticSearchDataProvider dbProvider;
121 private static HtDatabaseClient dbRawProvider;
122 public static HostInfo[] hosts = new HostInfo[] { new HostInfo("localhost", Integer
123 .valueOf(System.getProperty("databaseport") != null ? System.getProperty("databaseport") : "49200")) };
126 public static void init() throws Exception {
128 dbProvider = new ElasticSearchDataProvider(hosts);
129 dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
130 dbRawProvider = new HtDatabaseClient(hosts);
133 public static void trySleep(long ms) {
136 } catch (Exception e) {
137 Thread.currentThread().interrupt();
141 public static void trySleep() {
146 public void testStatus() throws IOException {
148 //== CLEAR AND CREATE ================================
149 clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Critical);
150 createFaultEntity("Lorem Ipsum", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Major);
151 createFaultEntity("3", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Minor);
152 createFaultEntity("4", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Warning);
154 //== READ ================================
156 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.status.output.Data> readOutput = dbProvider.readStatus().getData();
157 System.out.println(readOutput);
159 assertEquals(1,readOutput.get(0).getFaults().getMajors().intValue());
160 assertEquals(1,readOutput.get(0).getFaults().getMinors().intValue());
161 assertEquals(1,readOutput.get(0).getFaults().getWarnings().intValue());
162 assertEquals(1,readOutput.get(0).getFaults().getCriticals().intValue());
164 //== DELETE ================================
166 System.out.println("try to delete entries");
168 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
169 } catch (Exception e) {
170 fail("problem deleting entry: " + e.getMessage());
173 //== VERIFY DELETE ===========================
174 System.out.println("verify entries were deleted");
175 readOutput = dbProvider.readStatus().getData();
176 assertEquals(0,readOutput.get(0).getFaults().getMajors().intValue());
177 assertEquals(0,readOutput.get(0).getFaults().getMinors().intValue());
178 assertEquals(0,readOutput.get(0).getFaults().getWarnings().intValue());
179 assertEquals(0,readOutput.get(0).getFaults().getCriticals().intValue());
183 public void testMediatorServer() {
184 final String NAME = "ms1";
185 final String URL = "http://11.23.45.55:4599";
186 final String NAME2 = "ms1-nu";
187 final String URL2 = "http://11.23.45.56:4599";
189 // ==CLEAR BEFORE TEST============================
190 System.out.println("try to clear entry");
192 dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
193 } catch (Exception e) {
194 fail("problem deleting entry: " + e.getMessage());
197 // ==CREATE============================
198 System.out.println("try to create entry");
199 CreateMediatorServerOutputBuilder createOutput = null;
200 CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
204 createOutput = dbProvider.createMediatorServer(input);
205 dbId = createOutput.getId();
206 System.out.println(createOutput);
207 } catch (Exception e) {
208 fail("failed to create " + input.toString() + ":" + e.getMessage());
210 assertNotNull(createOutput);
213 // ==READ===========================
214 System.out.println("try to read entry");
215 ReadMediatorServerListInput readinput = new ReadMediatorServerListInputBuilder()
216 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
217 .setPagination(getPagination(20, 1)).build();
218 ReadMediatorServerListOutputBuilder readoutput = dbProvider.readMediatorServerList(readinput);
219 List<Data> data = readoutput.getData();
221 assertEquals("no entry found", 1, data.size());
222 assertEquals(NAME, data.get(0).getName());
223 assertEquals(URL, data.get(0).getUrl());
224 String dbId2 = data.get(0).getId();
225 assertEquals(dbId, dbId2);
226 System.out.println(data);
227 // ==UPDATE============================
228 System.out.println("try to update entry");
229 UpdateMediatorServerInput updateInput = new UpdateMediatorServerInputBuilder().setId(dbId2).setName(NAME2)
230 .setUrl(URL2).build();
231 UpdateMediatorServerOutputBuilder updateOutput = null;
233 updateOutput = dbProvider.updateMediatorServer(updateInput);
234 System.out.println(updateOutput);
235 } catch (Exception e) {
236 fail("problem updating entry:" + e.getMessage());
238 assertNotNull(updateOutput);
240 // ==READ============================
241 System.out.println("try to read entry");
242 readinput = new ReadMediatorServerListInputBuilder()
243 .setFilter(Arrays.asList(new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
244 .setPagination(getPagination(20, 1)).build();
245 readoutput = dbProvider.readMediatorServerList(readinput);
246 data = readoutput.getData();
247 System.out.println(data);
248 assertNotNull("no update response", data);
249 assertEquals("update not verifiied", 1, data.size());
250 assertEquals("update not verifiied", NAME2, data.get(0).getName());
251 assertEquals("update not verifiied", URL2, data.get(0).getUrl());
252 assertEquals("update not verifiied", dbId, data.get(0).getId());
253 // ==DELETE============================
254 System.out.println("try to delete entry");
255 DeleteMediatorServerInput deleteInput = new DeleteMediatorServerInputBuilder().setId(dbId).build();
257 dbProvider.deleteMediatorServer(deleteInput);
258 } catch (Exception e) {
259 fail("problem deleting entry: " + e.getMessage());
263 // ==READ/VERIFY DELETE============================
264 System.out.println("try to read entry");
265 readinput = new ReadMediatorServerListInputBuilder()
266 .setFilter(Arrays.asList(new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
267 .setPagination(getPagination(20, 1)).build();
268 readoutput = dbProvider.readMediatorServerList(readinput);
269 data = readoutput.getData();
270 assertNotNull("delete not verifiied", data);
271 assertEquals("delete not verifiied", 0, data.size());
275 public void testNetworkElementConnectionCurrent() {
277 System.out.println("networkElementConnection test start");
279 // ==CLEAR BEFORE TEST============================
280 System.out.println("try to clear entry");
282 dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
283 } catch (Exception e) {
284 fail("problem deleting entry: " + e.getMessage());
287 // ==CREATE============================
288 System.out.println("try to create");
289 final String name = "sim87";
290 final String url = "10.5.10.1";
291 final long port = 5959;
293 CreateNetworkElementConnectionOutputBuilder create = null;
294 CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
295 .setIsRequired(true).setHost(url).setPort(port).build();
299 create = dbProvider.createNetworkElementConnection(input);
300 dbId = create.getId();
301 } catch (Exception e) {
302 fail("networkElementConnection create failed" + e.getMessage());
306 assertNotNull(create);
308 // ==READ===========================
310 ReadNetworkElementConnectionListInput readInput = new ReadNetworkElementConnectionListInputBuilder()
311 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
312 .setPagination(getPagination(20, 1)).build();
314 ReadNetworkElementConnectionListOutputBuilder readOperation = dbProvider
315 .readNetworkElementConnectionList(readInput);
316 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.network.element.connection.list.output.Data> data = readOperation
320 assertEquals(dbId, data.get(0).getId());
321 assertEquals(name, data.get(0).getNodeId());
322 assertEquals(url, data.get(0).getHost());
323 assertEquals(port, data.get(0).getPort().longValue());
325 // ==UPDATE============================
326 System.out.println("Trying to update...");
327 final String name2 = "sim88";
328 final String url2 = "10.5.10.2";
329 final long port2 = 5960;
331 UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setHost(url2).setPort(port2).setIsRequired(false).build();
332 UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
334 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
335 } catch (Exception e) {
336 fail("update failed: " + e.getMessage());
339 assertNotNull(updateOutput);
341 // == Verify UPDATE============================
342 System.out.println("Verfiying update...");
344 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
345 data = readOperation.getData();
348 assertEquals(url2, data.get(0).getHost());
349 assertEquals(port2, data.get(0).getPort().longValue());
351 // ==PARTIAL UPDATE============================
352 System.out.println("Try partial update...");
353 assertEquals(false, data.get(0).isIsRequired());
354 updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build();
356 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
357 } catch (Exception e) {
358 fail("update failed: " + e.getMessage());
361 assertNotNull(updateOutput);
363 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
364 data = readOperation.getData();
366 assertEquals(true, data.get(0).isIsRequired());
367 assertEquals(url2, data.get(0).getHost());
368 assertEquals(port2, data.get(0).getPort().longValue());
370 // ==DELETE============================
371 System.out.println("Try delete...");
373 DeleteNetworkElementConnectionInput deleteInput = new DeleteNetworkElementConnectionInputBuilder().setId(dbId)
376 dbProvider.deleteNetworkElementConnection(deleteInput);
377 } catch (Exception e) {
378 fail("problem deleting "+e.getMessage());
381 readInput = new ReadNetworkElementConnectionListInputBuilder()
382 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
383 .setPagination(getPagination(20, 1)).build();
384 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
385 data = readOperation.getData();
386 assertEquals(0, data.size());
391 public void testMaintenance() {
392 System.out.println("Starting Maintenance tests...");
394 // ==CLEAR BEFORE TEST============================
395 System.out.println("try to clear entry");
397 dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
398 } catch (Exception e) {
399 fail("problem deleting entry: " + e.getMessage());
402 // ==CREATE============================
404 final String nodeId = "Lorem Ipsum";
405 final boolean isActive = true;
407 CreateMaintenanceOutputBuilder create = null;
408 CreateMaintenanceInput input = new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive)
412 create = dbProvider.createMaintenance(input);
413 dbId = create.getId();
414 } catch (Exception e) {
415 fail("Failed to create:" + e.getMessage());
418 System.out.println(dbId);
419 assertNotNull(create);
422 // ==READ===========================
423 System.out.println("Try read...");
425 ReadMaintenanceListInput readinput = new ReadMaintenanceListInputBuilder()
426 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
427 .setPagination(getPagination(20, 1)).build();
428 ReadMaintenanceListOutputBuilder readResult = dbProvider.readMaintenanceList(readinput);
429 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.maintenance.list.output.Data> data = readResult
432 assertNotEquals(0, data.size());
434 assertEquals(nodeId, data.get(0).getNodeId());
435 assertEquals(isActive, data.get(0).isActive());
437 // ==UPDATE============================
439 System.out.println("Trying to update...");
440 final String nodeId2 = "Name2";
441 final boolean isActive2 = false;
443 UpdateMaintenanceInput updateInput = new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2)
444 .setActive(isActive2).build();
445 UpdateMaintenanceOutputBuilder updateResult = null;
447 updateResult = dbProvider.updateMaintenance(updateInput);
448 } catch (Exception e) {
449 fail("maintenance update failed..." + e.getMessage());
452 assertNotNull(updateResult);
454 // == VERIFY UPDATE============================
455 System.out.println("Verfify update...");
456 readResult = dbProvider.readMaintenanceList(readinput);
457 data = readResult.getData();
460 assertEquals(nodeId2, data.get(0).getNodeId());
461 assertEquals(isActive2, data.get(0).isActive());
463 // ==DELETE================================
464 System.out.println("Trying to delete...");
466 DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
468 dbProvider.deleteMaintenance(deleteInput);
469 } catch (Exception e) {
470 fail("Maintenance entry couldn't be deleted" + e.getMessage());
473 readResult = dbProvider.readMaintenanceList(readinput);
474 data = readResult.getData();
476 assertEquals(0, data.size());
480 public void testFaultLog() {
482 System.out.println("Starting fault log tests...");
483 String dbId = clearAndCreatefaultEntity("1", Entity.Faultlog.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultlogInput", SeverityType.Critical);
485 // ==READ===========================
486 System.out.println("try to read entry");
488 ReadFaultlogListInput readinput = new ReadFaultlogListInputBuilder()
489 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
490 .setPagination(getPagination(20, 1)).build();
492 ReadFaultlogListOutputBuilder readResult = null;
494 readResult = dbProvider.readFaultLogList(readinput);
496 } catch (Exception e) {
497 fail("Fault log not read: " + e.getMessage());
500 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultlog.list.output.Data> data = readResult
504 assertEquals(1, data.size());
505 assertEquals("signalIsLost", data.get(0).getProblem());
506 assertEquals("Critical", data.get(0).getSeverity().toString());
507 assertEquals("s1", data.get(0).getNodeId());
509 //== UPDATE ================================
510 System.out.println("try to update entry");
512 dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1", "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
514 System.out.println("try to search entry 1");
515 readinput = new ReadFaultlogListInputBuilder()
516 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-id").setFiltervalue("test").build()))
517 .setPagination(getPagination(20, 1)).build();
519 //== VERIFY UPDATE ================================
520 readResult = dbProvider.readFaultLogList(readinput);
521 data = readResult.getData();
525 System.out.println(data);
526 assertEquals(0, data.size());
528 System.out.println("try to search entry 2");
530 readinput = new ReadFaultlogListInputBuilder()
531 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-id").setFiltervalue("test*").build()))
532 .setPagination(getPagination(20, 1)).build();
534 readResult = dbProvider.readFaultLogList(readinput);
535 data = readResult.getData();
539 assertEquals(1, data.size());
540 assertEquals("CableLOS", data.get(0).getProblem());
541 assertEquals("Major", data.get(0).getSeverity().toString());
542 assertEquals("test4657-78", data.get(0).getNodeId());
544 //== DELETE ================================
546 System.out.println("try to clear entry");
548 dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
549 } catch (Exception e) {
550 fail("problem deleting entry: " + e.getMessage());
553 //== VERIFY DELETE ===========================
554 System.out.println("verify entries deleted");
555 readResult = dbProvider.readFaultLogList(new ReadFaultlogListInputBuilder().setPagination(getPagination(20, 1)).build());
556 data = readResult.getData();
557 assertEquals(0, data.size());
561 public void testFaultCurrent() {
562 System.out.println("Starting faultCurrent test...");
564 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.NonAlarmed);
565 assertEquals("1", dbId);
567 // ==READ===========================
568 System.out.println("Trying to read...");
571 ReadFaultcurrentListInput readinput = new ReadFaultcurrentListInputBuilder()
572 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
573 .setPagination(getPagination(20, 1)).build();
575 ReadFaultcurrentListOutputBuilder readResult = null;
577 readResult = dbProvider.readFaultCurrentList(readinput);
579 } catch (Exception e) {
580 fail("Fault log not read: " + e.getMessage());
583 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultcurrent.list.output.Data> data = readResult
588 assertEquals(1, data.size());
589 assertEquals("signalIsLost", data.get(0).getProblem());
590 assertEquals("NonAlarmed", data.get(0).getSeverity().toString());
591 assertEquals("s1", data.get(0).getNodeId());
592 assertEquals(4340, data.get(0).getCounter().intValue());
593 assertEquals(new DateAndTime("2019-10-28T11:55:58.3Z"), data.get(0).getTimestamp());
594 assertEquals(4340, data.get(0).getCounter().intValue());
595 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
598 // ==UPDATE============================
599 System.out.println("Trying to update...");
601 String json = "{\n" +
602 "\"timestamp\": \"2019-12-28T11:55:58.3Z\",\n" +
603 "\"node-id\": \"SDN-Controller-0\",\n" +
604 "\"counter\": 75,\n" +
605 "\"problem\": \"connectionLossNeOAM\",\n" +
608 String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
609 assertEquals(dbId, updatedDbId);
611 // ==READ============================
614 readResult = dbProvider.readFaultCurrentList(readinput);
616 } catch (Exception e) {
617 fail("Fault log not read: " + e.getMessage());
620 data = readResult.getData();
623 assertEquals(1, data.size());
624 assertEquals("connectionLossNeOAM", data.get(0).getProblem());
625 assertEquals("SDN-Controller-0", data.get(0).getNodeId());
626 assertEquals(75, data.get(0).getCounter().intValue());
627 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
629 // ==DELETE============================
631 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
632 } catch (Exception e) {
633 fail("problem deleting: " + e.getMessage());
636 // ==READ/VERIFY DELETE============================
639 readResult = dbProvider.readFaultCurrentList(readinput);
641 } catch (Exception e) {
642 fail("Fault log not read: " + e.getMessage());
645 data = readResult.getData();
648 assertEquals(0, data.size());
652 public void testConnectionLog() {
654 // ==CLEAR================================
655 System.out.println("Clear before test");
657 dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
658 } catch (Exception e) {
659 fail("problem deleting: " + e.getMessage());
662 // ==CREATE================================
664 System.out.println("Try create entry");
665 final String initialDbId = "1";
668 "\"timestamp\": \"2019-11-01T11:28:34.7Z\",\n" +
669 "\"status\": \"Connecting\",\n" +
670 "\"node-id\": \"sim2230\",\n" +
671 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateConnectionlogInput\"\n" +
674 dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
676 assertEquals(initialDbId, dbId);
678 // ==READ================================
679 System.out.println("Try read entry");
681 ReadConnectionlogListInput readinput = new ReadConnectionlogListInputBuilder()
682 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
683 .setPagination(getPagination(20, 1)).build();
685 ReadConnectionlogListOutputBuilder readResult = null;
687 readResult = dbProvider.readConnectionlogList(readinput);
689 } catch (Exception e) {
690 fail("Connection log not read: " + e.getMessage());
693 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.connectionlog.list.output.Data> data = readResult
697 assertEquals(1, data.size());
698 assertEquals("Connecting", data.get(0).getStatus().toString());
699 assertEquals("sim2230", data.get(0).getNodeId());
702 // ==UPDATE================================
703 System.out.println("Try update entry");
705 dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
707 // ==READ 2================================
708 System.out.println("Try read updated entry");
710 readinput = new ReadConnectionlogListInputBuilder()
711 .setFilter(Arrays.asList(new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
712 .setPagination(getPagination(20, 1)).build();
715 readResult = dbProvider.readConnectionlogList(readinput);
717 } catch (Exception e) {
718 fail("Connection log not read: " + e.getMessage());
721 data = readResult.getData();
724 assertEquals(1, data.size());
725 assertEquals("Connected", data.get(0).getStatus().toString());
726 assertEquals("sim2230", data.get(0).getNodeId());
728 //== DELETE ================================
730 System.out.println("try to clear entry");
732 dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
733 } catch (Exception e) {
734 fail("problem deleting entry: " + e.getMessage());
737 //== VERIFY DELETE ===========================
738 System.out.println("verify entries deleted");
739 readResult = dbProvider.readConnectionlogList(new ReadConnectionlogListInputBuilder().setPagination(getPagination(20, 1)).build());
740 data = readResult.getData();
741 assertEquals(0, data.size());
746 public void testEventLog() {
747 System.out.println("Test event log starting...");
749 // ==CLEAR================================
750 System.out.println("Clear before test");
752 dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
753 } catch (Exception e) {
754 fail("problem deleting: " + e.getMessage());
756 // ==CREATE============================
759 String json = " {\n" +
760 "\"timestamp\": \"2019-11-08T16:39:23.0Z\",\n" +
761 "\"new-value\": \"done\",\n" +
762 "\"object-id\": \"SDN-Controller-0\",\n" +
763 "\"attribute-name\": \"startup\",\n" +
764 "\"counter\": 0,\n" +
765 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Eventlog\",\n" +
766 "\"node-id\": \"SDN-Controller-0\"\n" +
769 dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
772 // ==READ===========================
774 ReadEventlogListInput readinput = new ReadEventlogListInputBuilder()
775 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
776 .setPagination(getPagination(20, 1)).build();
777 ReadEventlogListOutputBuilder readResult = null;
779 readResult = dbProvider.readEventlogList(readinput);
781 } catch (Exception e) {
782 fail("problem reading eventlog");
785 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.eventlog.list.output.Data> data = readResult.getData();
786 assertEquals(1,data.size());
788 //== DELETE ================================
790 System.out.println("try to clear entry");
792 dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
793 } catch (Exception e) {
794 fail("problem deleting entry: " + e.getMessage());
797 //== VERIFY DELETE ===========================
798 System.out.println("verify entries deleted");
800 readResult = dbProvider.readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
801 } catch (IOException e) {
802 fail("problem reading eventlog");
804 data = readResult.getData();
805 assertEquals(0, data.size());
810 public void testInventory() {
812 System.out.println("Test inventory starting...");
814 // ==CLEAR================================
815 System.out.println("Clear before test");
817 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
818 } catch (Exception e) {
819 fail("problem deleting: " + e.getMessage());
823 // ==CREATE============================
826 String json = " {\"tree-level\": 1,\n" +
827 " \"parent-uuid\": \"SHELF-1.1.0.0\",\n" +
828 " \"node-id\": \"sim2\",\n" +
829 " \"uuid\": \"CARD-1.1.8.0\",\n" +
830 " \"contained-holder\": [ ],\n" +
831 " \"manufacturer-name\": \"Lorem Ipsum\",\n" +
832 " \"manufacturer-identifier\": \"ONF-Wireless-Transport\",\n" +
833 " \"serial\": \"sd-dsa-eqw\",\n" +
834 " \"date\": \"2008-10-21T00:00:00.0Z\",\n" +
835 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Inventory\",\n" +
836 " \"version\": \"unknown\",\n" +
837 " \"description\": \"WS/DS3\",\n" +
838 " \"part-type-id\": \"unknown\",\n" +
839 " \"model-identifier\": \"model-id-s3s\",\n" +
840 " \"type-name\": \"p4.module\"}";
842 dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
845 // ==READ===========================
846 ReadInventoryListInput readinput = new ReadInventoryListInputBuilder()
847 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
848 .setPagination(getPagination(20, 1)).build();
849 ReadInventoryListOutputBuilder readResult = null;
851 readResult = dbProvider.readInventoryList(readinput);
853 } catch (Exception e) {
854 fail("Problem reading inventory list"+e.getMessage());
857 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.Data> data = readResult.getData();
858 assertEquals(1,data.size());
859 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
860 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
861 assertEquals("sim2", data.get(0).getNodeId());
862 assertEquals("unknown", data.get(0).getVersion());
863 assertEquals("WS/DS3", data.get(0).getDescription());
864 assertEquals("2008-10-21T00:00:00.0Z", data.get(0).getDate());
865 assertEquals("sd-dsa-eqw", data.get(0).getSerial());
866 System.out.println(data.get(0).getDate());
868 // ==UPDATE============================
869 String updatedDbId=null;
870 final String[] holderArray = {"Lorem Ipsum 1", "Lorem Ipsum 2", "Lorem Ipsum &%/$_2"};
871 String updatejson = " {" +
872 " \"node-id\": \"sim5\",\n" +
873 " \"contained-holder\": [ \"Lorem Ipsum 1\", \"Lorem Ipsum 2\", \"Lorem Ipsum &%/$_2\" ],\n" +
874 " \"serial\": \"sd-dsa-eww\",\n" +
875 " \"date\": \"2008-11-21T00:00:00.0Z\",\n" +
876 " \"part-type-id\": \"not unknown\",\n" +
879 updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
880 assertEquals(dbId, updatedDbId);
883 readResult = dbProvider.readInventoryList(readinput);
885 } catch (Exception e) {
886 fail("Problem reading inventory list"+e.getMessage());
889 data = readResult.getData();
891 assertEquals(1,data.size());
892 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
893 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
894 assertEquals("sim5", data.get(0).getNodeId());
895 assertEquals("not unknown", data.get(0).getPartTypeId());
896 assertEquals("WS/DS3", data.get(0).getDescription());
897 assertEquals("2008-11-21T00:00:00.0Z", data.get(0).getDate());
898 assertEquals("sd-dsa-eww", data.get(0).getSerial());
899 assertEquals(holderArray.length,data.get(0).getContainedHolder().size());
900 assertEquals(holderArray[0],data.get(0).getContainedHolder().get(0));
901 assertEquals(holderArray[1],data.get(0).getContainedHolder().get(1));
902 assertEquals(holderArray[2],data.get(0).getContainedHolder().get(2));
904 // ==DELETE============================
906 System.out.println("delete after test");
908 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
909 } catch (Exception e) {
910 fail("problem deleting: " + e.getMessage());
913 // ==VERIFY DELETE ============================
916 readResult = dbProvider.readInventoryList(readinput);
918 } catch (Exception e) {
919 fail("Problem reading inventory list"+e.getMessage());
922 data = readResult.getData();
923 assertEquals(0,data.size());
928 public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
930 System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
933 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
934 } catch (Exception e) {
935 fail("problem deleting: " + e.getMessage());
938 System.out.println("create entries...");
940 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
941 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
943 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
944 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
945 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
946 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
948 System.out.println("trying to read, should throw exception...");
951 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
952 .setPagination(getPagination(20, 1)).build();
954 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
957 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
958 fail("No exception thrown!");
959 } catch (Exception e) {
960 System.out.println(e);
961 assertTrue(e instanceof IllegalArgumentException);
962 assertEquals("no nodename in filter found ", e.getMessage());
965 assertNull(readltpResult);
967 //== DELETE ================================
969 System.out.println("try to clear entry");
971 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
972 } catch (Exception e) {
973 fail("problem deleting entry: " + e.getMessage());
976 //== VERIFY DELETE ===========================
977 System.out.println("verify entries deleted");
978 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()
979 .setPagination(getPagination(20, 1)).build()).getData();
981 assertEquals(0, data.size());
985 public void test15MinPerformanceData() {
986 // == CLEAR BEFORE TESTS ============================
987 System.out.println("Test 15 min performance...");
990 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
991 } catch (Exception e) {
992 fail("problem deleting: " + e.getMessage());
995 // == CREATE ============================
997 System.out.println("create entries...");
999 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1000 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1002 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1003 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1004 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1005 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1007 // == READ ============================
1008 System.out.println("read list entries...");
1010 ReadPmdata15mListInput read = new ReadPmdata15mListInputBuilder()
1011 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1012 .setPagination(getPagination(20, 1)).build();
1014 ReadPmdata15mListOutputBuilder readResult = null;
1017 readResult = dbProvider.readPmdata15mList(read);
1018 } catch (Exception e) {
1019 fail("Problem reading 15m data");
1022 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data> data = readResult
1025 assertNotNull(data);
1026 assertEquals(2, data.size());
1028 System.out.println("read ltp entries with node name set...");
1030 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
1031 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1032 .setPagination(getPagination(20, 1)).build();
1034 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1037 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1038 } catch (Exception e) {
1039 fail("Problem reading 15m ltp data");
1042 List<String> dataLtp = readltpResult.getData();
1044 assertNotNull(dataLtp);
1045 assertEquals(2, dataLtp.size());
1046 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1047 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1049 System.out.println("read device entries...");
1051 ReadPmdata15mDeviceListInput readDevices = new ReadPmdata15mDeviceListInputBuilder()
1052 .setPagination(getPagination(20, 1)).build();
1054 ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
1057 readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
1058 } catch (Exception e) {
1059 fail("Problem reading 15m device data");
1062 List<String> dataDevice = readDeviceResult.getData();
1064 assertNotNull(dataDevice);
1065 assertEquals(2, dataDevice.size());
1066 assertTrue(dataDevice.contains("a2"));
1067 assertTrue(dataDevice.contains("a3"));
1069 //== DELETE ================================
1071 System.out.println("try to clear entry");
1073 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1074 } catch (Exception e) {
1075 fail("problem deleting entry: " + e.getMessage());
1078 //== VERIFY DELETE ===========================
1079 System.out.println("verify entries deleted");
1080 readResult = dbProvider.readPmdata15mList(new ReadPmdata15mListInputBuilder()
1081 .setPagination(getPagination(20, 1)).build());
1082 data = readResult.getData();
1083 assertEquals(0, data.size());
1088 public void test24hPerformanceData() {
1089 System.out.println("Test 24h performance...");
1092 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1093 } catch (Exception e) {
1094 fail("problem deleting: " + e.getMessage());
1097 System.out.println("create entries...");
1098 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1099 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1100 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1101 String aDbId = createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-06", "a2");
1103 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1104 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1105 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1107 System.out.println("read all list entries...");
1109 ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder()
1110 .setPagination(getPagination(20, 1)).build();
1112 ReadPmdata24hListOutputBuilder readResult = null;
1115 readResult = dbProvider.readPmdata24hList(read);
1116 } catch (Exception e) {
1117 fail("Problem reading 24h data");
1120 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.list.output.Data> data = readResult
1123 assertNotNull(data);
1124 assertEquals(6, data.size());
1127 System.out.println("filter list entries...");
1129 read = new ReadPmdata24hListInputBuilder()
1130 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1131 .setPagination(getPagination(20, 1)).build();
1136 readResult = dbProvider.readPmdata24hList(read);
1137 } catch (Exception e) {
1138 fail("Problem reading 24h data");
1141 data = readResult.getData();
1143 assertNotNull(data);
1144 assertEquals(3, data.size());
1146 System.out.println("read ltp entries with node name set...");
1148 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1149 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1150 .setPagination(getPagination(20, 1)).build();
1152 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1155 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1156 } catch (Exception e) {
1157 fail("Problem reading 24h ltp data");
1160 List<String> dataLtp = readltpResult.getData();
1162 assertNotNull(dataLtp);
1163 assertEquals(3, dataLtp.size());
1164 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1165 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1166 assertTrue(dataLtp.contains("LP-MWPS-TTP-06"));
1169 System.out.println("read device entries...");
1171 ReadPmdata24hDeviceListInput readDevices = new ReadPmdata24hDeviceListInputBuilder()
1172 .setPagination(getPagination(20, 1)).build();
1174 ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
1177 readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
1178 } catch (Exception e) {
1179 fail("Problem reading 24h device data");
1182 List<String> dataDevice = readDeviceResult.getData();
1184 assertNotNull(dataDevice);
1185 assertEquals(2, dataDevice.size());
1186 assertTrue(dataDevice.contains("a2"));
1187 assertTrue(dataDevice.contains("a3"));
1189 // == UPDATE ==============================
1191 boolean success = dbRawProvider.doUpdate(Entity.Historicalperformance24h.getName(), "{'uuid-interface':'LTP-TEST-MWP-097'}", QueryBuilders.termQuery("_id", aDbId));
1192 assertTrue("update dbentry not succeeded",success);
1194 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1195 } catch (Exception e) {
1196 fail("Problem reading 24h ltp data");
1199 // == VERIFY UPDATE ==============================
1201 dataLtp = readltpResult.getData();
1203 assertNotNull(dataLtp);
1204 assertEquals(3, dataLtp.size());
1205 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1206 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1207 assertTrue(dataLtp.contains("LTP-TEST-MWP-097"));
1211 //== DELETE ===========================
1213 System.out.println("try to clear entries");
1215 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1216 } catch (Exception e) {
1217 fail("problem deleting entry: " + e.getMessage());
1220 //== VERIFY DELETE ===========================
1221 System.out.println("verify entries deleted");
1222 readResult = dbProvider.readPmdata24hList(new ReadPmdata24hListInputBuilder()
1223 .setPagination(getPagination(20, 1)).build());
1224 data = readResult.getData();
1225 assertEquals(0, data.size());
1229 public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
1230 System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
1233 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1234 } catch (Exception e) {
1235 fail("problem deleting: " + e.getMessage());
1238 System.out.println("create entries...");
1240 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1241 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1242 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1244 createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1245 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1246 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1247 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1249 System.out.println("trying to read, should throw exception...");
1252 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1253 .setPagination(getPagination(20, 1)).build();
1255 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1258 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1259 fail("No exception thrown!");
1260 } catch (Exception e) {
1261 System.out.println(e);
1262 assertTrue(e instanceof IllegalArgumentException);
1263 assertEquals("no nodename in filter found ", e.getMessage());
1266 assertNull(readltpResult);
1269 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1270 } catch (Exception e) {
1271 fail("problem deleting: " + e.getMessage());
1276 public void testUrlEncoding() {
1277 System.out.println("Testing url encding");
1279 final String test = "Lorem Ipsum";
1280 final String test1 = "Lorem/Ipsum";
1281 final String test2 = "Lorem_Ipsum";
1282 final String test3 = "Lorem%Ipsum";
1284 assertEquals("Lorem%20Ipsum", BaseRequest.urlEncodeValue(test));
1285 assertEquals("Lorem%2FIpsum", BaseRequest.urlEncodeValue(test1));
1286 assertEquals("Lorem_Ipsum", BaseRequest.urlEncodeValue(test2));
1287 assertEquals("Lorem%25Ipsum", BaseRequest.urlEncodeValue(test3));
1291 public void testDoUpdateOrCreateWithNullId() {
1292 System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
1294 String dbId = clearAndCreatefaultEntity(null, Entity.Faultlog.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultlogInput", SeverityType.Critical);
1299 public void readTestFaultCurrentViaRawDbProvider() {
1300 System.out.println("Starting faultCurrent test...");
1302 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(), "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput", SeverityType.Critical);
1303 assertEquals("1", dbId);
1305 // ==READ===========================
1306 System.out.println("Trying to read...");
1308 String readResult = null;
1310 readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
1312 } catch (Exception e) {
1313 fail("Fault log not read: " + e.getMessage());
1317 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\"}";
1319 System.out.println(readResult);
1320 assertNotNull(readResult);
1321 assertEquals(expectedDbResult, readResult);
1323 SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1324 assertNotNull(searchResult);
1326 List<SearchHit> hits = searchResult.getHits();
1328 assertNotNull(hits);
1329 assertEquals(1, searchResult.getTotal());
1330 assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
1332 //== DELETE ==============================
1334 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
1335 } catch (Exception e) {
1336 fail("problem deleting: " + e.getMessage());
1338 //== VERIFY DELETE ========================
1339 searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1340 hits = searchResult.getHits();
1341 assertNotNull(hits);
1342 assertEquals(0, searchResult.getTotal());
1347 public void testOutputCamelCase() {
1349 String jsonString="{\n" +
1350 "\"timestamp\": \"2020-02-20T09:31:22.3Z\",\n" +
1351 "\"object-id\": \"LP-MWPS-RADIO\",\n" +
1352 "\"severity\": \"Critical\",\n" +
1353 "\"counter\": 10,\n" +
1354 "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Faultlog\",\n" +
1355 "\"source-type\": \"Netconf\",\n" +
1356 "\"node-id\": \"sim4\",\n" +
1357 "\"problem\": \"signalIsLost\"\n" +
1359 YangToolsMapper yangtoolsMapper = new YangToolsMapper();
1360 FaultlogEntity log = yangtoolsMapper.readValue( jsonString, Faultlog.class );
1361 System.out.println(log );
1362 System.out.println(yangtoolsMapper.writeValueAsString(log));
1363 } catch (IOException e) {
1364 fail(e.getMessage());
1369 private Pagination getPagination(long pageSize, int page) {
1370 return new PaginationBuilder().setPage(BigInteger.valueOf(page)).setSize(pageSize).build();
1374 private String clearAndCreatefaultEntity(String initialDbId, String entityType, String implementedInterface, SeverityType severity) {
1375 // ==CLEAR BEFORE TEST============================
1376 System.out.println("try to clear entry");
1378 dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1379 } catch (Exception e) {
1380 fail("problem deleting: " + e.getMessage());
1384 return createFaultEntity(initialDbId, entityType, implementedInterface, severity);
1387 private String createFaultEntity(String initialDbId, String entityType, String implementedInterface, SeverityType severity) {
1388 // ==CREATE============================
1389 System.out.println("try to create entry");
1394 dbId = dbRawProvider.doUpdateOrCreate(entityType, initialDbId,"{\n" +
1395 "\"timestamp\": \"2019-10-28T11:55:58.3Z\",\n" +
1396 "\"object-id\": \"LP-MWPS-RADIO\",\n" +
1397 "\"severity\": \""+severity.toString()+"\",\n" +
1398 "\"node-id\": \"s1\",\n" +
1399 "\"implemented-interface\": \""+implementedInterface+"\",\n" +
1400 "\"counter\": 4340,\n" +
1401 "\"problem\": \"signalIsLost\",\n" +
1402 "\"type\": \"ProblemNotificationXml\"\n" +
1407 } catch (Exception e) {
1408 fail("Problem creating fault log entry" + e.getMessage());
1414 private String createPerformanceData(String initialDbId, GranularityPeriodType timeInterval, String scannerId, String uuidInterface, String nodename) {
1416 String json = "{\n" +
1417 "\"node-name\": \""+nodename+"\",\n" +
1418 "\"uuid-interface\": \""+uuidInterface+"\",\n" +
1419 "\"layer-protocol-name\": \"MWPS\",\n" +
1420 "\"radio-signal-id\": \"Test8\",\n" +
1421 "\"time-stamp\": \"2017-03-01T06:15:00.0Z\",\n" +
1422 "\"granularity-period\": \""+timeInterval.toString()+"\",\n" +
1423 "\"scanner-id\": \""+scannerId+"\",\n" +
1424 "\"performance-data\": {\n" +
1428 "\"tx-level-max\": 3,\n" +
1429 "\"tx-level-avg\": 3,\n" +
1430 "\"rx-level-min\": -44,\n" +
1431 "\"rx-level-max\": -45,\n" +
1432 "\"rx-level-avg\": -44,\n" +
1433 "\"time2-states\": 0,\n" +
1434 "\"time4-states-s\": 0,\n" +
1435 "\"time4-states\": 0,\n" +
1436 "\"time8-states\": -1,\n" +
1437 "\"time16-states-s\": -1,\n" +
1438 "\"time16-states\": 0,\n" +
1439 "\"time32-states\": -1,\n" +
1440 "\"time64-states\": 900,\n" +
1441 "\"time128-states\": -1,\n" +
1442 "\"time256-states\": -1,\n" +
1443 "\"time512-states\": -1,\n" +
1444 "\"time512-states-l\": -1,\n" +
1445 "\"unavailability\": 0,\n" +
1446 "\"tx-level-min\": 3,\n" +
1447 "\"time1024-states\": -1,\n" +
1448 "\"time1024-states-l\": -1,\n" +
1449 "\"time2048-states\": -1,\n" +
1450 "\"time2048-states-l\": -1,\n" +
1451 "\"time4096-states\": -1,\n" +
1452 "\"time4096-states-l\": -1,\n" +
1453 "\"time8192-states\": -1,\n" +
1454 "\"time8192-states-l\": -1,\n" +
1455 "\"snir-min\": -99,\n" +
1456 "\"snir-max\": -99,\n" +
1457 "\"snir-avg\": -99,\n" +
1458 "\"xpd-min\": -99,\n" +
1459 "\"xpd-max\": -99,\n" +
1460 "\"xpd-avg\": -99,\n" +
1461 "\"rf-temp-min\": -99,\n" +
1462 "\"rf-temp-max\": -99,\n" +
1463 "\"rf-temp-avg\": -99,\n" +
1464 "\"defect-blocks-sum\": -1,\n" +
1465 "\"time-period\": 900\n" +
1467 "\"suspect-interval-flag\": false\n" +
1470 if(timeInterval.equals(GranularityPeriodType.Period15Min)) {
1471 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
1473 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);