2 * ============LICENSE_START=======================================================
3 * ONAP : ccsdk features
4 * ================================================================================
5 * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
24 import static org.junit.Assert.*;
26 import java.io.IOException;
27 import java.math.BigInteger;
28 import java.util.Arrays;
29 import java.util.List;
30 import java.util.concurrent.TimeUnit;
32 import org.junit.BeforeClass;
33 import org.junit.Test;
34 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
35 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchHit;
36 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchResult;
37 import org.onap.ccsdk.features.sdnr.wt.common.database.config.HostInfo;
38 import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilders;
39 import org.onap.ccsdk.features.sdnr.wt.common.database.requests.BaseRequest;
40 import org.onap.ccsdk.features.sdnr.wt.dataprovider.data.ElasticSearchDataProvider;
41 import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.YangToolsMapper;
42 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceInput;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceInputBuilder;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceOutputBuilder;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerInput;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerInputBuilder;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerOutputBuilder;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionInput;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionInputBuilder;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionOutputBuilder;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMaintenanceInput;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMaintenanceInputBuilder;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMediatorServerInput;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMediatorServerInputBuilder;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteNetworkElementConnectionInput;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteNetworkElementConnectionInputBuilder;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Entity;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.EntityInput;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Faultlog;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.FaultlogEntity;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.GranularityPeriodType;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListInput;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListInputBuilder;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListOutputBuilder;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListInput;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListInputBuilder;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListOutputBuilder;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListInput;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListInputBuilder;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListOutputBuilder;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListInput;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListInputBuilder;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListOutputBuilder;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListInput;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListInputBuilder;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListOutputBuilder;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListInput;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListInputBuilder;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListOutputBuilder;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListInput;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListInputBuilder;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListOutputBuilder;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListInput;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListInputBuilder;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListOutputBuilder;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListInput;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListInputBuilder;
89 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListOutputBuilder;
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListInput;
91 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListInputBuilder;
92 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListOutputBuilder;
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListInput;
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListInputBuilder;
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListOutputBuilder;
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListInput;
97 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListInputBuilder;
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListOutputBuilder;
99 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListInput;
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListInputBuilder;
101 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListOutputBuilder;
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListInput;
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListInputBuilder;
104 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListOutputBuilder;
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.SeverityType;
106 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceInput;
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceInputBuilder;
108 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceOutputBuilder;
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerInput;
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerInputBuilder;
111 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerOutputBuilder;
112 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionInput;
113 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionInputBuilder;
114 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionOutputBuilder;
115 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.Filter;
116 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.FilterBuilder;
117 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.Pagination;
118 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.entity.input.PaginationBuilder;
119 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.mediator.server.list.output.Data;
121 public class TestCRUDforDatabase {
123 private static ElasticSearchDataProvider dbProvider;
124 private static HtDatabaseClient dbRawProvider;
125 public static HostInfo[] hosts = new HostInfo[] {new HostInfo("localhost", Integer
126 .valueOf(System.getProperty("databaseport") != null ? System.getProperty("databaseport") : "49200"))};
129 public static void init() throws Exception {
131 dbProvider = new ElasticSearchDataProvider(hosts);
132 dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
133 dbRawProvider = new HtDatabaseClient(hosts);
136 public static void trySleep(long ms) {
139 } catch (Exception e) {
140 Thread.currentThread().interrupt();
144 public static void trySleep() {
149 public void testStatus() throws IOException {
151 //== CLEAR AND CREATE ================================
152 clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
153 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput",
154 SeverityType.Critical);
155 createFaultEntity("Lorem Ipsum", Entity.Faultcurrent.getName(),
156 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput",
158 createFaultEntity("3", Entity.Faultcurrent.getName(),
159 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput",
161 createFaultEntity("4", Entity.Faultcurrent.getName(),
162 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput",
163 SeverityType.Warning);
165 //== READ ================================
167 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.status.output.Data> readOutput =
168 dbProvider.readStatus().getData();
169 System.out.println(readOutput);
171 assertEquals(1, readOutput.get(0).getFaults().getMajors().intValue());
172 assertEquals(1, readOutput.get(0).getFaults().getMinors().intValue());
173 assertEquals(1, readOutput.get(0).getFaults().getWarnings().intValue());
174 assertEquals(1, readOutput.get(0).getFaults().getCriticals().intValue());
176 //== DELETE ================================
178 System.out.println("try to delete entries");
180 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
181 } catch (Exception e) {
182 fail("problem deleting entry: " + e.getMessage());
185 //== VERIFY DELETE ===========================
186 System.out.println("verify entries were deleted");
187 readOutput = dbProvider.readStatus().getData();
188 assertEquals(0, readOutput.get(0).getFaults().getMajors().intValue());
189 assertEquals(0, readOutput.get(0).getFaults().getMinors().intValue());
190 assertEquals(0, readOutput.get(0).getFaults().getWarnings().intValue());
191 assertEquals(0, readOutput.get(0).getFaults().getCriticals().intValue());
195 public void testMediatorServer() {
196 final String NAME = "ms1";
197 final String URL = "http://11.23.45.55:4599";
198 final String NAME2 = "ms1-nu";
199 final String URL2 = "http://11.23.45.56:4599";
201 // ==CLEAR BEFORE TEST============================
202 System.out.println("try to clear entry");
204 dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
205 } catch (Exception e) {
206 fail("problem deleting entry: " + e.getMessage());
209 // ==CREATE============================
210 System.out.println("try to create entry");
211 CreateMediatorServerOutputBuilder createOutput = null;
212 CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
216 createOutput = dbProvider.createMediatorServer(input);
217 dbId = createOutput.getId();
218 System.out.println(createOutput);
219 } catch (Exception e) {
220 fail("failed to create " + input.toString() + ":" + e.getMessage());
222 assertNotNull(createOutput);
225 // ==READ===========================
226 System.out.println("try to read entry");
227 ReadMediatorServerListInput readinput = new ReadMediatorServerListInputBuilder()
228 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
229 .setPagination(getPagination(20, 1)).build();
230 ReadMediatorServerListOutputBuilder readoutput = dbProvider.readMediatorServerList(readinput);
231 List<Data> data = readoutput.getData();
233 assertEquals("no entry found", 1, data.size());
234 assertEquals(NAME, data.get(0).getName());
235 assertEquals(URL, data.get(0).getUrl());
236 String dbId2 = data.get(0).getId();
237 assertEquals(dbId, dbId2);
238 System.out.println(data);
239 // ==UPDATE============================
240 System.out.println("try to update entry");
241 UpdateMediatorServerInput updateInput =
242 new UpdateMediatorServerInputBuilder().setId(dbId2).setName(NAME2).setUrl(URL2).build();
243 UpdateMediatorServerOutputBuilder updateOutput = null;
245 updateOutput = dbProvider.updateMediatorServer(updateInput);
246 System.out.println(updateOutput);
247 } catch (Exception e) {
248 fail("problem updating entry:" + e.getMessage());
250 assertNotNull(updateOutput);
252 // ==READ============================
253 System.out.println("try to read entry");
254 readinput = new ReadMediatorServerListInputBuilder()
255 .setFilter(Arrays.asList(new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
256 .setPagination(getPagination(20, 1)).build();
257 readoutput = dbProvider.readMediatorServerList(readinput);
258 data = readoutput.getData();
259 System.out.println(data);
260 assertNotNull("no update response", data);
261 assertEquals("update not verifiied", 1, data.size());
262 assertEquals("update not verifiied", NAME2, data.get(0).getName());
263 assertEquals("update not verifiied", URL2, data.get(0).getUrl());
264 assertEquals("update not verifiied", dbId, data.get(0).getId());
265 // ==DELETE============================
266 System.out.println("try to delete entry");
267 DeleteMediatorServerInput deleteInput = new DeleteMediatorServerInputBuilder().setId(dbId).build();
269 dbProvider.deleteMediatorServer(deleteInput);
270 } catch (Exception e) {
271 fail("problem deleting entry: " + e.getMessage());
275 // ==READ/VERIFY DELETE============================
276 System.out.println("try to read entry");
277 readinput = new ReadMediatorServerListInputBuilder()
278 .setFilter(Arrays.asList(new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
279 .setPagination(getPagination(20, 1)).build();
280 readoutput = dbProvider.readMediatorServerList(readinput);
281 data = readoutput.getData();
282 assertNotNull("delete not verifiied", data);
283 assertEquals("delete not verifiied", 0, data.size());
287 public void testNetworkElementConnectionCurrent() {
289 System.out.println("networkElementConnection test start");
291 // ==CLEAR BEFORE TEST============================
292 System.out.println("try to clear entry");
294 dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
295 } catch (Exception e) {
296 fail("problem deleting entry: " + e.getMessage());
299 // ==CREATE============================
300 System.out.println("try to create");
301 final String name = "sim87";
302 final String url = "10.5.10.1";
303 final long port = 5959;
305 CreateNetworkElementConnectionOutputBuilder create = null;
306 CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
307 .setIsRequired(true).setHost(url).setPort(port).build();
311 create = dbProvider.createNetworkElementConnection(input);
312 dbId = create.getId();
313 } catch (Exception e) {
314 fail("networkElementConnection create failed" + e.getMessage());
318 assertNotNull(create);
320 // ==READ===========================
322 ReadNetworkElementConnectionListInput readInput = new ReadNetworkElementConnectionListInputBuilder()
323 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
324 .setPagination(getPagination(20, 1)).build();
326 ReadNetworkElementConnectionListOutputBuilder readOperation =
327 dbProvider.readNetworkElementConnectionList(readInput);
328 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.network.element.connection.list.output.Data> data =
329 readOperation.getData();
332 assertEquals(dbId, data.get(0).getId());
333 assertEquals(name, data.get(0).getNodeId());
334 assertEquals(url, data.get(0).getHost());
335 assertEquals(port, data.get(0).getPort().longValue());
337 // ==UPDATE============================
338 System.out.println("Trying to update...");
339 final String name2 = "sim88";
340 final String url2 = "10.5.10.2";
341 final long port2 = 5960;
343 UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId)
344 .setHost(url2).setPort(port2).setIsRequired(false).build();
345 UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
347 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
348 } catch (Exception e) {
349 fail("update failed: " + e.getMessage());
352 assertNotNull(updateOutput);
354 // == Verify UPDATE============================
355 System.out.println("Verfiying update...");
357 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
358 data = readOperation.getData();
361 assertEquals(url2, data.get(0).getHost());
362 assertEquals(port2, data.get(0).getPort().longValue());
364 // ==PARTIAL UPDATE============================
365 System.out.println("Try partial update...");
366 assertEquals(false, data.get(0).isIsRequired());
367 updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build();
369 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
370 } catch (Exception e) {
371 fail("update failed: " + e.getMessage());
374 assertNotNull(updateOutput);
376 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
377 data = readOperation.getData();
379 assertEquals(true, data.get(0).isIsRequired());
380 assertEquals(url2, data.get(0).getHost());
381 assertEquals(port2, data.get(0).getPort().longValue());
383 // ==DELETE============================
384 System.out.println("Try delete...");
386 DeleteNetworkElementConnectionInput deleteInput =
387 new DeleteNetworkElementConnectionInputBuilder().setId(dbId).build();
389 dbProvider.deleteNetworkElementConnection(deleteInput);
390 } catch (Exception e) {
391 fail("problem deleting " + e.getMessage());
394 readInput = new ReadNetworkElementConnectionListInputBuilder()
395 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
396 .setPagination(getPagination(20, 1)).build();
397 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
398 data = readOperation.getData();
399 assertEquals(0, data.size());
404 public void testMaintenance() {
405 System.out.println("Starting Maintenance tests...");
407 // ==CLEAR BEFORE TEST============================
408 System.out.println("try to clear entry");
410 dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
411 } catch (Exception e) {
412 fail("problem deleting entry: " + e.getMessage());
415 // ==CREATE============================
417 final String nodeId = "Lorem Ipsum";
418 final boolean isActive = true;
420 CreateMaintenanceOutputBuilder create = null;
421 CreateMaintenanceInput input =
422 new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive).build();
425 create = dbProvider.createMaintenance(input);
426 dbId = create.getId();
427 } catch (Exception e) {
428 fail("Failed to create:" + e.getMessage());
431 System.out.println(dbId);
432 assertNotNull(create);
435 // ==READ===========================
436 System.out.println("Try read...");
438 ReadMaintenanceListInput readinput = new ReadMaintenanceListInputBuilder()
439 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
440 .setPagination(getPagination(20, 1)).build();
441 ReadMaintenanceListOutputBuilder readResult = dbProvider.readMaintenanceList(readinput);
442 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.maintenance.list.output.Data> data =
443 readResult.getData();
445 assertNotEquals(0, data.size());
447 assertEquals(nodeId, data.get(0).getNodeId());
448 assertEquals(isActive, data.get(0).isActive());
450 // ==UPDATE============================
452 System.out.println("Trying to update...");
453 final String nodeId2 = "Name2";
454 final boolean isActive2 = false;
456 UpdateMaintenanceInput updateInput =
457 new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2).setActive(isActive2).build();
458 UpdateMaintenanceOutputBuilder updateResult = null;
460 updateResult = dbProvider.updateMaintenance(updateInput);
461 } catch (Exception e) {
462 fail("maintenance update failed..." + e.getMessage());
465 assertNotNull(updateResult);
467 // == VERIFY UPDATE============================
468 System.out.println("Verfify update...");
469 readResult = dbProvider.readMaintenanceList(readinput);
470 data = readResult.getData();
473 assertEquals(nodeId2, data.get(0).getNodeId());
474 assertEquals(isActive2, data.get(0).isActive());
476 // ==DELETE================================
477 System.out.println("Trying to delete...");
479 DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
481 dbProvider.deleteMaintenance(deleteInput);
482 } catch (Exception e) {
483 fail("Maintenance entry couldn't be deleted" + e.getMessage());
486 readResult = dbProvider.readMaintenanceList(readinput);
487 data = readResult.getData();
489 assertEquals(0, data.size());
493 public void testFaultLog() {
495 System.out.println("Starting fault log tests...");
496 String dbId = clearAndCreatefaultEntity("1", Entity.Faultlog.getName(),
497 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultlogInput",
498 SeverityType.Critical);
500 // ==READ===========================
501 System.out.println("try to read entry");
503 ReadFaultlogListInput readinput = new ReadFaultlogListInputBuilder()
504 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
505 .setPagination(getPagination(20, 1)).build();
507 ReadFaultlogListOutputBuilder readResult = null;
509 readResult = dbProvider.readFaultLogList(readinput);
511 } catch (Exception e) {
512 fail("Fault log not read: " + e.getMessage());
515 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultlog.list.output.Data> data =
516 readResult.getData();
519 assertEquals(1, data.size());
520 assertEquals("signalIsLost", data.get(0).getProblem());
521 assertEquals("Critical", data.get(0).getSeverity().toString());
522 assertEquals("s1", data.get(0).getNodeId());
524 //== UPDATE ================================
525 System.out.println("try to update entry");
527 dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1",
528 "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
530 System.out.println("try to search entry 1");
531 readinput = new ReadFaultlogListInputBuilder()
532 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-id").setFiltervalue("test").build()))
533 .setPagination(getPagination(20, 1)).build();
535 //== VERIFY UPDATE ================================
536 readResult = dbProvider.readFaultLogList(readinput);
537 data = readResult.getData();
541 System.out.println(data);
542 assertEquals(0, data.size());
544 System.out.println("try to search entry 2");
546 readinput = new ReadFaultlogListInputBuilder()
547 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-id").setFiltervalue("test*").build()))
548 .setPagination(getPagination(20, 1)).build();
550 readResult = dbProvider.readFaultLogList(readinput);
551 data = readResult.getData();
555 assertEquals(1, data.size());
556 assertEquals("CableLOS", data.get(0).getProblem());
557 assertEquals("Major", data.get(0).getSeverity().toString());
558 assertEquals("test4657-78", data.get(0).getNodeId());
560 //== DELETE ================================
562 System.out.println("try to clear entry");
564 dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
565 } catch (Exception e) {
566 fail("problem deleting entry: " + e.getMessage());
569 //== VERIFY DELETE ===========================
570 System.out.println("verify entries deleted");
571 readResult = dbProvider
572 .readFaultLogList(new ReadFaultlogListInputBuilder().setPagination(getPagination(20, 1)).build());
573 data = readResult.getData();
574 assertEquals(0, data.size());
578 public void testFaultCurrent() {
579 System.out.println("Starting faultCurrent test...");
581 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
582 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput",
583 SeverityType.NonAlarmed);
584 assertEquals("1", dbId);
586 // ==READ===========================
587 System.out.println("Trying to read...");
590 ReadFaultcurrentListInput readinput = new ReadFaultcurrentListInputBuilder()
591 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
592 .setPagination(getPagination(20, 1)).build();
594 ReadFaultcurrentListOutputBuilder readResult = null;
596 readResult = dbProvider.readFaultCurrentList(readinput);
598 } catch (Exception e) {
599 fail("Fault log not read: " + e.getMessage());
602 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultcurrent.list.output.Data> data =
603 readResult.getData();
607 assertEquals(1, data.size());
608 assertEquals("signalIsLost", data.get(0).getProblem());
609 assertEquals("NonAlarmed", data.get(0).getSeverity().toString());
610 assertEquals("s1", data.get(0).getNodeId());
611 assertEquals(4340, data.get(0).getCounter().intValue());
612 assertEquals(new DateAndTime("2019-10-28T11:55:58.3Z"), data.get(0).getTimestamp());
613 assertEquals(4340, data.get(0).getCounter().intValue());
614 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
617 // ==UPDATE============================
618 System.out.println("Trying to update...");
620 String json = "{\n" + "\"timestamp\": \"2019-12-28T11:55:58.3Z\",\n" + "\"node-id\": \"SDN-Controller-0\",\n"
621 + "\"counter\": 75,\n" + "\"problem\": \"connectionLossNeOAM\",\n" + "}";
623 String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
624 assertEquals(dbId, updatedDbId);
626 // ==READ============================
629 readResult = dbProvider.readFaultCurrentList(readinput);
631 } catch (Exception e) {
632 fail("Fault log not read: " + e.getMessage());
635 data = readResult.getData();
638 assertEquals(1, data.size());
639 assertEquals("connectionLossNeOAM", data.get(0).getProblem());
640 assertEquals("SDN-Controller-0", data.get(0).getNodeId());
641 assertEquals(75, data.get(0).getCounter().intValue());
642 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
644 // ==DELETE============================
646 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
647 } catch (Exception e) {
648 fail("problem deleting: " + e.getMessage());
651 // ==READ/VERIFY DELETE============================
654 readResult = dbProvider.readFaultCurrentList(readinput);
656 } catch (Exception e) {
657 fail("Fault log not read: " + e.getMessage());
660 data = readResult.getData();
663 assertEquals(0, data.size());
667 public void testConnectionLog() {
669 // ==CLEAR================================
670 System.out.println("Clear before test");
672 dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
673 } catch (Exception e) {
674 fail("problem deleting: " + e.getMessage());
677 // ==CREATE================================
679 System.out.println("Try create entry");
680 final String initialDbId = "1";
682 String json = "{\n" + "\"timestamp\": \"2019-11-01T11:28:34.7Z\",\n" + "\"status\": \"Connecting\",\n"
683 + "\"node-id\": \"sim2230\",\n"
684 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateConnectionlogInput\"\n"
687 dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
689 assertEquals(initialDbId, dbId);
691 // ==READ================================
692 System.out.println("Try read entry");
694 ReadConnectionlogListInput readinput = new ReadConnectionlogListInputBuilder()
695 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
696 .setPagination(getPagination(20, 1)).build();
698 ReadConnectionlogListOutputBuilder readResult = null;
700 readResult = dbProvider.readConnectionlogList(readinput);
702 } catch (Exception e) {
703 fail("Connection log not read: " + e.getMessage());
706 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.connectionlog.list.output.Data> data =
707 readResult.getData();
710 assertEquals(1, data.size());
711 assertEquals("Connecting", data.get(0).getStatus().toString());
712 assertEquals("sim2230", data.get(0).getNodeId());
715 // ==UPDATE================================
716 System.out.println("Try update entry");
718 dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
720 // ==READ 2================================
721 System.out.println("Try read updated entry");
723 readinput = new ReadConnectionlogListInputBuilder()
724 .setFilter(Arrays.asList(new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
725 .setPagination(getPagination(20, 1)).build();
728 readResult = dbProvider.readConnectionlogList(readinput);
730 } catch (Exception e) {
731 fail("Connection log not read: " + e.getMessage());
734 data = readResult.getData();
737 assertEquals(1, data.size());
738 assertEquals("Connected", data.get(0).getStatus().toString());
739 assertEquals("sim2230", data.get(0).getNodeId());
741 //== DELETE ================================
743 System.out.println("try to clear entry");
745 dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
746 } catch (Exception e) {
747 fail("problem deleting entry: " + e.getMessage());
750 //== VERIFY DELETE ===========================
751 System.out.println("verify entries deleted");
752 readResult = dbProvider.readConnectionlogList(
753 new ReadConnectionlogListInputBuilder().setPagination(getPagination(20, 1)).build());
754 data = readResult.getData();
755 assertEquals(0, data.size());
760 public void testEventLog() {
761 System.out.println("Test event log starting...");
763 // ==CLEAR================================
764 System.out.println("Clear before test");
766 dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
767 } catch (Exception e) {
768 fail("problem deleting: " + e.getMessage());
770 // ==CREATE============================
773 String json = " {\n" + "\"timestamp\": \"2019-11-08T16:39:23.0Z\",\n" + "\"new-value\": \"done\",\n"
774 + "\"object-id\": \"SDN-Controller-0\",\n" + "\"attribute-name\": \"startup\",\n" + "\"counter\": 0,\n"
775 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Eventlog\",\n"
776 + "\"node-id\": \"SDN-Controller-0\"\n" + "}";
778 dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
781 // ==READ===========================
783 ReadEventlogListInput readinput = new ReadEventlogListInputBuilder()
784 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
785 .setPagination(getPagination(20, 1)).build();
786 ReadEventlogListOutputBuilder readResult = null;
788 readResult = dbProvider.readEventlogList(readinput);
790 } catch (Exception e) {
791 fail("problem reading eventlog");
794 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.eventlog.list.output.Data> data =
795 readResult.getData();
796 assertEquals(1, data.size());
798 //== DELETE ================================
800 System.out.println("try to clear entry");
802 dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
803 } catch (Exception e) {
804 fail("problem deleting entry: " + e.getMessage());
807 //== VERIFY DELETE ===========================
808 System.out.println("verify entries deleted");
810 readResult = dbProvider
811 .readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
812 } catch (IOException e) {
813 fail("problem reading eventlog");
815 data = readResult.getData();
816 assertEquals(0, data.size());
821 public void testInventory() {
823 System.out.println("Test inventory starting...");
825 // ==CLEAR================================
826 System.out.println("Clear before test");
828 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
829 } catch (Exception e) {
830 fail("problem deleting: " + e.getMessage());
834 // ==CREATE============================
837 String json = " {\"tree-level\": 1,\n" + " \"parent-uuid\": \"SHELF-1.1.0.0\",\n"
838 + " \"node-id\": \"sim2\",\n" + " \"uuid\": \"CARD-1.1.8.0\",\n"
839 + " \"contained-holder\": [ ],\n" + " \"manufacturer-name\": \"Lorem Ipsum\",\n"
840 + " \"manufacturer-identifier\": \"ONF-Wireless-Transport\",\n" + " \"serial\": \"sd-dsa-eqw\",\n"
841 + " \"date\": \"2008-10-21T00:00:00.0Z\",\n"
842 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Inventory\",\n"
843 + " \"version\": \"unknown\",\n" + " \"description\": \"WS/DS3\",\n"
844 + " \"part-type-id\": \"unknown\",\n" + " \"model-identifier\": \"model-id-s3s\",\n"
845 + " \"type-name\": \"p4.module\"}";
847 dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
850 // ==READ===========================
851 ReadInventoryListInput readinput = new ReadInventoryListInputBuilder()
852 .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
853 .setPagination(getPagination(20, 1)).build();
854 ReadInventoryListOutputBuilder readResult = null;
856 readResult = dbProvider.readInventoryList(readinput);
858 } catch (Exception e) {
859 fail("Problem reading inventory list" + e.getMessage());
862 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.Data> data =
863 readResult.getData();
864 assertEquals(1, data.size());
865 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
866 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
867 assertEquals("sim2", data.get(0).getNodeId());
868 assertEquals("unknown", data.get(0).getVersion());
869 assertEquals("WS/DS3", data.get(0).getDescription());
870 assertEquals("2008-10-21T00:00:00.0Z", data.get(0).getDate());
871 assertEquals("sd-dsa-eqw", data.get(0).getSerial());
872 System.out.println(data.get(0).getDate());
874 // ==UPDATE============================
875 String updatedDbId = null;
876 final String[] holderArray = {"Lorem Ipsum 1", "Lorem Ipsum 2", "Lorem Ipsum &%/$_2"};
877 String updatejson = " {" + " \"node-id\": \"sim5\",\n"
878 + " \"contained-holder\": [ \"Lorem Ipsum 1\", \"Lorem Ipsum 2\", \"Lorem Ipsum &%/$_2\" ],\n"
879 + " \"serial\": \"sd-dsa-eww\",\n" + " \"date\": \"2008-11-21T00:00:00.0Z\",\n"
880 + " \"part-type-id\": \"not unknown\",\n" + "}";
882 updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
883 assertEquals(dbId, updatedDbId);
886 readResult = dbProvider.readInventoryList(readinput);
888 } catch (Exception e) {
889 fail("Problem reading inventory list" + e.getMessage());
892 data = readResult.getData();
894 assertEquals(1, data.size());
895 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
896 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
897 assertEquals("sim5", data.get(0).getNodeId());
898 assertEquals("not unknown", data.get(0).getPartTypeId());
899 assertEquals("WS/DS3", data.get(0).getDescription());
900 assertEquals("2008-11-21T00:00:00.0Z", data.get(0).getDate());
901 assertEquals("sd-dsa-eww", data.get(0).getSerial());
902 assertEquals(holderArray.length, data.get(0).getContainedHolder().size());
903 assertEquals(holderArray[0], data.get(0).getContainedHolder().get(0));
904 assertEquals(holderArray[1], data.get(0).getContainedHolder().get(1));
905 assertEquals(holderArray[2], data.get(0).getContainedHolder().get(2));
907 // ==DELETE============================
909 System.out.println("delete after test");
911 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
912 } catch (Exception e) {
913 fail("problem deleting: " + e.getMessage());
916 // ==VERIFY DELETE ============================
919 readResult = dbProvider.readInventoryList(readinput);
921 } catch (Exception e) {
922 fail("Problem reading inventory list" + e.getMessage());
925 data = readResult.getData();
926 assertEquals(0, data.size());
931 public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
933 System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
936 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
937 } catch (Exception e) {
938 fail("problem deleting: " + e.getMessage());
941 System.out.println("create entries...");
943 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
944 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
946 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
947 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
948 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
949 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
951 System.out.println("trying to read, should throw exception...");
954 ReadPmdata15mLtpListInput readLtp =
955 new ReadPmdata15mLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
957 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
960 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
961 fail("No exception thrown!");
962 } catch (Exception e) {
963 System.out.println(e);
964 assertTrue(e instanceof IllegalArgumentException);
965 assertEquals("no nodename in filter found ", e.getMessage());
968 assertNull(readltpResult);
970 //== DELETE ================================
972 System.out.println("try to clear entry");
974 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
975 } catch (Exception e) {
976 fail("problem deleting entry: " + e.getMessage());
979 //== VERIFY DELETE ===========================
980 System.out.println("verify entries deleted");
981 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data> data =
984 new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build())
987 assertEquals(0, data.size());
991 public void test15MinPerformanceData() {
992 // == CLEAR BEFORE TESTS ============================
993 System.out.println("Test 15 min performance...");
996 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
997 } catch (Exception e) {
998 fail("problem deleting: " + e.getMessage());
1001 // == CREATE ============================
1003 System.out.println("create entries...");
1005 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1006 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1008 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1009 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1010 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1011 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1013 // == READ ============================
1014 System.out.println("read list entries...");
1016 ReadPmdata15mListInput read = new ReadPmdata15mListInputBuilder()
1017 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1018 .setPagination(getPagination(20, 1)).build();
1020 ReadPmdata15mListOutputBuilder readResult = null;
1023 readResult = dbProvider.readPmdata15mList(read);
1024 } catch (Exception e) {
1025 fail("Problem reading 15m data");
1028 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data> data =
1029 readResult.getData();
1031 assertNotNull(data);
1032 assertEquals(2, data.size());
1034 System.out.println("read ltp entries with node name set...");
1036 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
1037 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1038 .setPagination(getPagination(20, 1)).build();
1040 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1043 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1044 } catch (Exception e) {
1045 fail("Problem reading 15m ltp data");
1048 List<String> dataLtp = readltpResult.getData();
1050 assertNotNull(dataLtp);
1051 assertEquals(2, dataLtp.size());
1052 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1053 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1055 System.out.println("read device entries...");
1057 ReadPmdata15mDeviceListInput readDevices =
1058 new ReadPmdata15mDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1060 ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
1063 readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
1064 } catch (Exception e) {
1065 fail("Problem reading 15m device data");
1068 List<String> dataDevice = readDeviceResult.getData();
1070 assertNotNull(dataDevice);
1071 assertEquals(2, dataDevice.size());
1072 assertTrue(dataDevice.contains("a2"));
1073 assertTrue(dataDevice.contains("a3"));
1075 //== DELETE ================================
1077 System.out.println("try to clear entry");
1079 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1080 } catch (Exception e) {
1081 fail("problem deleting entry: " + e.getMessage());
1084 //== VERIFY DELETE ===========================
1085 System.out.println("verify entries deleted");
1086 readResult = dbProvider
1087 .readPmdata15mList(new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build());
1088 data = readResult.getData();
1089 assertEquals(0, data.size());
1094 public void test24hPerformanceData() {
1095 System.out.println("Test 24h performance...");
1098 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1099 } catch (Exception e) {
1100 fail("problem deleting: " + e.getMessage());
1103 System.out.println("create entries...");
1104 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1105 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1106 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1107 String aDbId = createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-06", "a2");
1109 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1110 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1111 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1113 System.out.println("read all list entries...");
1115 ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build();
1117 ReadPmdata24hListOutputBuilder readResult = null;
1120 readResult = dbProvider.readPmdata24hList(read);
1121 } catch (Exception e) {
1122 fail("Problem reading 24h data");
1125 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.list.output.Data> data =
1126 readResult.getData();
1128 assertNotNull(data);
1129 assertEquals(6, data.size());
1132 System.out.println("filter list entries...");
1134 read = new ReadPmdata24hListInputBuilder()
1135 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1136 .setPagination(getPagination(20, 1)).build();
1141 readResult = dbProvider.readPmdata24hList(read);
1142 } catch (Exception e) {
1143 fail("Problem reading 24h data");
1146 data = readResult.getData();
1148 assertNotNull(data);
1149 assertEquals(3, data.size());
1151 System.out.println("read ltp entries with node name set...");
1153 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1154 .setFilter(Arrays.asList(new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1155 .setPagination(getPagination(20, 1)).build();
1157 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1160 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1161 } catch (Exception e) {
1162 fail("Problem reading 24h ltp data");
1165 List<String> dataLtp = readltpResult.getData();
1167 assertNotNull(dataLtp);
1168 assertEquals(3, dataLtp.size());
1169 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1170 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1171 assertTrue(dataLtp.contains("LP-MWPS-TTP-06"));
1174 System.out.println("read device entries...");
1176 ReadPmdata24hDeviceListInput readDevices =
1177 new ReadPmdata24hDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1179 ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
1182 readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
1183 } catch (Exception e) {
1184 fail("Problem reading 24h device data");
1187 List<String> dataDevice = readDeviceResult.getData();
1189 assertNotNull(dataDevice);
1190 assertEquals(2, dataDevice.size());
1191 assertTrue(dataDevice.contains("a2"));
1192 assertTrue(dataDevice.contains("a3"));
1194 // == UPDATE ==============================
1196 boolean success = dbRawProvider.doUpdate(Entity.Historicalperformance24h.getName(),
1197 "{'uuid-interface':'LTP-TEST-MWP-097'}", QueryBuilders.termQuery("_id", aDbId));
1198 assertTrue("update dbentry not succeeded", success);
1200 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1201 } catch (Exception e) {
1202 fail("Problem reading 24h ltp data");
1205 // == VERIFY UPDATE ==============================
1207 dataLtp = readltpResult.getData();
1209 assertNotNull(dataLtp);
1210 assertEquals(3, dataLtp.size());
1211 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1212 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1213 assertTrue(dataLtp.contains("LTP-TEST-MWP-097"));
1217 //== DELETE ===========================
1219 System.out.println("try to clear entries");
1221 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1222 } catch (Exception e) {
1223 fail("problem deleting entry: " + e.getMessage());
1226 //== VERIFY DELETE ===========================
1227 System.out.println("verify entries deleted");
1228 readResult = dbProvider
1229 .readPmdata24hList(new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build());
1230 data = readResult.getData();
1231 assertEquals(0, data.size());
1235 public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
1236 System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
1239 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1240 } catch (Exception e) {
1241 fail("problem deleting: " + e.getMessage());
1244 System.out.println("create entries...");
1246 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1247 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1248 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1250 createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1251 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1252 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1253 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1255 System.out.println("trying to read, should throw exception...");
1258 ReadPmdata24hLtpListInput readLtp =
1259 new ReadPmdata24hLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
1261 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1264 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1265 fail("No exception thrown!");
1266 } catch (Exception e) {
1267 System.out.println(e);
1268 assertTrue(e instanceof IllegalArgumentException);
1269 assertEquals("no nodename in filter found ", e.getMessage());
1272 assertNull(readltpResult);
1275 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1276 } catch (Exception e) {
1277 fail("problem deleting: " + e.getMessage());
1282 public void testUrlEncoding() {
1283 System.out.println("Testing url encding");
1285 final String test = "Lorem Ipsum";
1286 final String test1 = "Lorem/Ipsum";
1287 final String test2 = "Lorem_Ipsum";
1288 final String test3 = "Lorem%Ipsum";
1290 assertEquals("Lorem%20Ipsum", BaseRequest.urlEncodeValue(test));
1291 assertEquals("Lorem%2FIpsum", BaseRequest.urlEncodeValue(test1));
1292 assertEquals("Lorem_Ipsum", BaseRequest.urlEncodeValue(test2));
1293 assertEquals("Lorem%25Ipsum", BaseRequest.urlEncodeValue(test3));
1297 public void testDoUpdateOrCreateWithNullId() {
1298 System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
1300 String dbId = clearAndCreatefaultEntity(null, Entity.Faultlog.getName(),
1301 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultlogInput",
1302 SeverityType.Critical);
1307 public void readTestFaultCurrentViaRawDbProvider() {
1308 System.out.println("Starting faultCurrent test...");
1310 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
1311 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateFaultcurrentInput",
1312 SeverityType.Critical);
1313 assertEquals("1", dbId);
1315 // ==READ===========================
1316 System.out.println("Trying to read...");
1318 String readResult = null;
1320 readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
1322 } catch (Exception e) {
1323 fail("Fault log not read: " + e.getMessage());
1327 String expectedDbResult =
1328 "{\"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\"}";
1330 System.out.println(readResult);
1331 assertNotNull(readResult);
1332 assertEquals(expectedDbResult, readResult);
1334 SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1335 assertNotNull(searchResult);
1337 List<SearchHit> hits = searchResult.getHits();
1339 assertNotNull(hits);
1340 assertEquals(1, searchResult.getTotal());
1341 assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
1343 //== DELETE ==============================
1345 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
1346 } catch (Exception e) {
1347 fail("problem deleting: " + e.getMessage());
1349 //== VERIFY DELETE ========================
1350 searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1351 hits = searchResult.getHits();
1352 assertNotNull(hits);
1353 assertEquals(0, searchResult.getTotal());
1358 public void testOutputCamelCase() {
1360 String jsonString = "{\n" + "\"timestamp\": \"2020-02-20T09:31:22.3Z\",\n"
1361 + "\"object-id\": \"LP-MWPS-RADIO\",\n" + "\"severity\": \"Critical\",\n" + "\"counter\": 10,\n"
1362 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Faultlog\",\n"
1363 + "\"source-type\": \"Netconf\",\n" + "\"node-id\": \"sim4\",\n" + "\"problem\": \"signalIsLost\"\n"
1365 YangToolsMapper yangtoolsMapper = new YangToolsMapper();
1366 FaultlogEntity log = yangtoolsMapper.readValue(jsonString, Faultlog.class);
1367 System.out.println(log);
1368 System.out.println(yangtoolsMapper.writeValueAsString(log));
1369 } catch (IOException e) {
1370 fail(e.getMessage());
1375 private Pagination getPagination(long pageSize, int page) {
1376 return new PaginationBuilder().setPage(BigInteger.valueOf(page)).setSize(pageSize).build();
1380 private String clearAndCreatefaultEntity(String initialDbId, String entityType, String implementedInterface,
1381 SeverityType severity) {
1382 // ==CLEAR BEFORE TEST============================
1383 System.out.println("try to clear entry");
1385 dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1386 } catch (Exception e) {
1387 fail("problem deleting: " + e.getMessage());
1391 return createFaultEntity(initialDbId, entityType, implementedInterface, severity);
1394 private String createFaultEntity(String initialDbId, String entityType, String implementedInterface,
1395 SeverityType severity) {
1396 // ==CREATE============================
1397 System.out.println("try to create entry");
1402 dbId = dbRawProvider.doUpdateOrCreate(entityType, initialDbId,
1403 "{\n" + "\"timestamp\": \"2019-10-28T11:55:58.3Z\",\n" + "\"object-id\": \"LP-MWPS-RADIO\",\n"
1404 + "\"severity\": \"" + severity.toString() + "\",\n" + "\"node-id\": \"s1\",\n"
1405 + "\"implemented-interface\": \"" + implementedInterface + "\",\n" + "\"counter\": 4340,\n"
1406 + "\"problem\": \"signalIsLost\",\n" + "\"type\": \"ProblemNotificationXml\"\n" + "}");
1410 } catch (Exception e) {
1411 fail("Problem creating fault log entry" + e.getMessage());
1417 private String createPerformanceData(String initialDbId, GranularityPeriodType timeInterval, String scannerId,
1418 String uuidInterface, String nodename) {
1420 String json = "{\n" + "\"node-name\": \"" + nodename + "\",\n" + "\"uuid-interface\": \"" + uuidInterface
1421 + "\",\n" + "\"layer-protocol-name\": \"MWPS\",\n" + "\"radio-signal-id\": \"Test8\",\n"
1422 + "\"time-stamp\": \"2017-03-01T06:15:00.0Z\",\n" + "\"granularity-period\": \""
1423 + timeInterval.toString() + "\",\n" + "\"scanner-id\": \"" + scannerId + "\",\n"
1424 + "\"performance-data\": {\n" + "\"cses\": 0,\n" + "\"ses\": 0,\n" + "\"es\": 0,\n"
1425 + "\"tx-level-max\": 3,\n" + "\"tx-level-avg\": 3,\n" + "\"rx-level-min\": -44,\n"
1426 + "\"rx-level-max\": -45,\n" + "\"rx-level-avg\": -44,\n" + "\"time2-states\": 0,\n"
1427 + "\"time4-states-s\": 0,\n" + "\"time4-states\": 0,\n" + "\"time8-states\": -1,\n"
1428 + "\"time16-states-s\": -1,\n" + "\"time16-states\": 0,\n" + "\"time32-states\": -1,\n"
1429 + "\"time64-states\": 900,\n" + "\"time128-states\": -1,\n" + "\"time256-states\": -1,\n"
1430 + "\"time512-states\": -1,\n" + "\"time512-states-l\": -1,\n" + "\"unavailability\": 0,\n"
1431 + "\"tx-level-min\": 3,\n" + "\"time1024-states\": -1,\n" + "\"time1024-states-l\": -1,\n"
1432 + "\"time2048-states\": -1,\n" + "\"time2048-states-l\": -1,\n" + "\"time4096-states\": -1,\n"
1433 + "\"time4096-states-l\": -1,\n" + "\"time8192-states\": -1,\n" + "\"time8192-states-l\": -1,\n"
1434 + "\"snir-min\": -99,\n" + "\"snir-max\": -99,\n" + "\"snir-avg\": -99,\n" + "\"xpd-min\": -99,\n"
1435 + "\"xpd-max\": -99,\n" + "\"xpd-avg\": -99,\n" + "\"rf-temp-min\": -99,\n" + "\"rf-temp-max\": -99,\n"
1436 + "\"rf-temp-avg\": -99,\n" + "\"defect-blocks-sum\": -1,\n" + "\"time-period\": 900\n" + "},\n"
1437 + "\"suspect-interval-flag\": false\n" + "}";
1439 if (timeInterval.equals(GranularityPeriodType.Period15Min)) {
1440 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
1442 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);