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.assertEquals;
25 import static org.junit.Assert.assertNotEquals;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertNull;
28 import static org.junit.Assert.assertTrue;
29 import static org.junit.Assert.fail;
30 import java.io.IOException;
31 import java.math.BigInteger;
32 import java.util.List;
33 import java.util.concurrent.TimeUnit;
34 import org.junit.BeforeClass;
35 import org.junit.Test;
36 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
37 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchHit;
38 import org.onap.ccsdk.features.sdnr.wt.common.database.SearchResult;
39 import org.onap.ccsdk.features.sdnr.wt.common.database.config.HostInfo;
40 import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilders;
41 import org.onap.ccsdk.features.sdnr.wt.common.database.requests.BaseRequest;
42 import org.onap.ccsdk.features.sdnr.wt.dataprovider.data.ElasticSearchDataProvider;
43 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.YangHelper2;
44 import org.onap.ccsdk.features.sdnr.wt.dataprovider.test.util.HostInfoForTest;
45 import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.YangToolsMapper2;
46 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceInput;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceInputBuilder;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceOutputBuilder;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInput;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInputBuilder;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerOutputBuilder;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionInput;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionInputBuilder;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionOutputBuilder;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInput;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInputBuilder;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInput;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInputBuilder;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInput;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInputBuilder;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListInput;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListInputBuilder;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListOutputBuilder;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInput;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInputBuilder;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListOutputBuilder;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInput;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInputBuilder;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListOutputBuilder;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListInput;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListInputBuilder;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListOutputBuilder;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListInput;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListInputBuilder;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListOutputBuilder;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInput;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInputBuilder;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListOutputBuilder;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListInput;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListInputBuilder;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListOutputBuilder;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInput;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInputBuilder;
89 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListOutputBuilder;
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListInput;
91 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListInputBuilder;
92 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListOutputBuilder;
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListInput;
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListInputBuilder;
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListOutputBuilder;
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListInput;
97 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListInputBuilder;
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListOutputBuilder;
99 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListInput;
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListInputBuilder;
101 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListOutputBuilder;
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListInput;
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListInputBuilder;
104 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListOutputBuilder;
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListInput;
106 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListInputBuilder;
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListOutputBuilder;
108 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInput;
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInputBuilder;
111 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceOutputBuilder;
112 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInput;
113 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInputBuilder;
114 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerOutputBuilder;
115 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInput;
116 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInputBuilder;
117 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionOutputBuilder;
118 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder;
119 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterKey;
120 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Pagination;
121 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.PaginationBuilder;
122 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.mediator.server.list.output.Data;
124 public class TestCRUDforDatabase {
126 private static ElasticSearchDataProvider dbProvider;
127 private static HtDatabaseClient dbRawProvider;
130 public static void init() throws Exception {
132 HostInfo[] hosts = HostInfoForTest.get();
133 dbProvider = new ElasticSearchDataProvider(hosts);
134 dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
135 dbRawProvider = HtDatabaseClient.getClient(hosts);
138 public static void trySleep(long ms) {
141 } catch (Exception e) {
142 Thread.currentThread().interrupt();
146 public static void trySleep() {
151 public void testStatus() throws IOException {
153 //== CLEAR AND CREATE ================================
154 clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
155 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
156 SeverityType.Critical);
157 createFaultEntity("Lorem Ipsum", Entity.Faultcurrent.getName(),
158 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
160 createFaultEntity("3", Entity.Faultcurrent.getName(),
161 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
163 createFaultEntity("4", Entity.Faultcurrent.getName(),
164 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
165 SeverityType.Warning);
167 //== READ ================================
169 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.status.output.Data> readOutput =
170 dbProvider.readStatus().getData();
171 System.out.println(readOutput);
173 assertEquals(1, readOutput.get(0).getFaults().getMajors().intValue());
174 assertEquals(1, readOutput.get(0).getFaults().getMinors().intValue());
175 assertEquals(1, readOutput.get(0).getFaults().getWarnings().intValue());
176 assertEquals(1, readOutput.get(0).getFaults().getCriticals().intValue());
178 //== DELETE ================================
180 System.out.println("try to delete entries");
182 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
183 } catch (Exception e) {
184 fail("problem deleting entry: " + e.getMessage());
187 //== VERIFY DELETE ===========================
188 System.out.println("verify entries were deleted");
189 readOutput = dbProvider.readStatus().getData();
190 assertEquals(0, readOutput.get(0).getFaults().getMajors().intValue());
191 assertEquals(0, readOutput.get(0).getFaults().getMinors().intValue());
192 assertEquals(0, readOutput.get(0).getFaults().getWarnings().intValue());
193 assertEquals(0, readOutput.get(0).getFaults().getCriticals().intValue());
197 public void testMediatorServer() {
198 final String NAME = "ms1";
199 final String URL = "http://11.23.45.55:4599";
200 final String NAME2 = "ms1-nu";
201 final String URL2 = "http://11.23.45.56:4599";
203 // ==CLEAR BEFORE TEST============================
204 System.out.println("try to clear entry");
206 dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
207 } catch (Exception e) {
208 fail("problem deleting entry: " + e.getMessage());
211 // ==CREATE============================
212 System.out.println("try to create entry");
213 CreateMediatorServerOutputBuilder createOutput = null;
214 CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
218 createOutput = dbProvider.createMediatorServer(input);
219 dbId = createOutput.getId();
220 System.out.println(createOutput);
221 } catch (Exception e) {
222 fail("failed to create " + input.toString() + ":" + e.getMessage());
224 assertNotNull(createOutput);
227 // ==READ===========================
228 System.out.println("try to read entry");
229 ReadMediatorServerListInput readinput = new ReadMediatorServerListInputBuilder()
230 .setFilter(YangHelper2.getListOrMap(FilterKey.class,new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
231 .setPagination(getPagination(20, 1)).build();
232 ReadMediatorServerListOutputBuilder readoutput = dbProvider.readMediatorServerList(readinput);
233 List<Data> data = readoutput.getData();
235 assertEquals("no entry found", 1, data.size());
236 assertEquals(NAME, data.get(0).getName());
237 assertEquals(URL, data.get(0).getUrl());
238 String dbId2 = data.get(0).getId();
239 assertEquals(dbId, dbId2);
240 System.out.println(data);
241 // ==UPDATE============================
242 System.out.println("try to update entry");
243 UpdateMediatorServerInput updateInput =
244 new UpdateMediatorServerInputBuilder().setId(dbId2).setName(NAME2).setUrl(URL2).build();
245 UpdateMediatorServerOutputBuilder updateOutput = null;
247 updateOutput = dbProvider.updateMediatorServer(updateInput);
248 System.out.println(updateOutput);
249 } catch (Exception e) {
250 fail("problem updating entry:" + e.getMessage());
252 assertNotNull(updateOutput);
254 // ==READ============================
255 System.out.println("try to read entry");
256 readinput = new ReadMediatorServerListInputBuilder()
257 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
258 .setPagination(getPagination(20, 1)).build();
259 readoutput = dbProvider.readMediatorServerList(readinput);
260 data = readoutput.getData();
261 System.out.println(data);
262 assertNotNull("no update response", data);
263 assertEquals("update not verifiied", 1, data.size());
264 assertEquals("update not verifiied", NAME2, data.get(0).getName());
265 assertEquals("update not verifiied", URL2, data.get(0).getUrl());
266 assertEquals("update not verifiied", dbId, data.get(0).getId());
267 // ==DELETE============================
268 System.out.println("try to delete entry");
269 DeleteMediatorServerInput deleteInput = new DeleteMediatorServerInputBuilder().setId(dbId).build();
271 dbProvider.deleteMediatorServer(deleteInput);
272 } catch (Exception e) {
273 fail("problem deleting entry: " + e.getMessage());
277 // ==READ/VERIFY DELETE============================
278 System.out.println("try to read entry");
279 readinput = new ReadMediatorServerListInputBuilder()
280 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
281 .setPagination(getPagination(20, 1)).build();
282 readoutput = dbProvider.readMediatorServerList(readinput);
283 data = readoutput.getData();
284 assertNotNull("delete not verifiied", data);
285 assertEquals("delete not verifiied", 0, data.size());
289 public void testNetworkElementConnectionCurrent() {
291 System.out.println("networkElementConnection test start");
293 // ==CLEAR BEFORE TEST============================
294 System.out.println("try to clear entry");
296 dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
297 } catch (Exception e) {
298 fail("problem deleting entry: " + e.getMessage());
301 // ==CREATE============================
302 System.out.println("try to create");
303 final String name = "sim87";
304 final String url = "10.5.10.1";
305 final long port = 5959;
307 CreateNetworkElementConnectionOutputBuilder create = null;
308 CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
309 .setIsRequired(true).setHost(url).setPort(port).build();
313 create = dbProvider.createNetworkElementConnection(input);
314 dbId = create.getId();
315 } catch (Exception e) {
316 fail("networkElementConnection create failed" + e.getMessage());
320 assertNotNull(create);
322 // ==READ===========================
324 ReadNetworkElementConnectionListInput readInput = new ReadNetworkElementConnectionListInputBuilder()
325 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
326 .setPagination(getPagination(20, 1)).build();
328 ReadNetworkElementConnectionListOutputBuilder readOperation =
329 dbProvider.readNetworkElementConnectionList(readInput);
330 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.network.element.connection.list.output.Data> data =
331 readOperation.getData();
334 assertEquals(dbId, data.get(0).getId());
335 assertEquals(name, data.get(0).getNodeId());
336 assertEquals(url, data.get(0).getHost());
337 assertEquals(port, data.get(0).getPort().longValue());
339 // ==UPDATE============================
340 System.out.println("Trying to update...");
341 final String url2 = "10.5.10.2";
342 final long port2 = 5960;
344 UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId)
345 .setHost(url2).setPort(port2).setIsRequired(false).build();
346 UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
348 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
349 } catch (Exception e) {
350 fail("update failed: " + e.getMessage());
353 assertNotNull(updateOutput);
355 // == Verify UPDATE============================
356 System.out.println("Verfiying update...");
358 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
359 data = readOperation.getData();
362 assertEquals(url2, data.get(0).getHost());
363 assertEquals(port2, data.get(0).getPort().longValue());
365 // ==PARTIAL UPDATE============================
366 System.out.println("Try partial update...");
367 assertEquals(false, data.get(0).isIsRequired());
368 updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build();
370 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
371 } catch (Exception e) {
372 fail("update failed: " + e.getMessage());
375 assertNotNull(updateOutput);
377 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
378 data = readOperation.getData();
380 assertEquals(true, data.get(0).isIsRequired());
381 assertEquals(url2, data.get(0).getHost());
382 assertEquals(port2, data.get(0).getPort().longValue());
384 // ==DELETE============================
385 System.out.println("Try delete...");
387 DeleteNetworkElementConnectionInput deleteInput =
388 new DeleteNetworkElementConnectionInputBuilder().setId(dbId).build();
390 dbProvider.deleteNetworkElementConnection(deleteInput);
391 } catch (Exception e) {
392 fail("problem deleting " + e.getMessage());
395 readInput = new ReadNetworkElementConnectionListInputBuilder()
396 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
397 .setPagination(getPagination(20, 1)).build();
398 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
399 data = readOperation.getData();
400 assertEquals(0, data.size());
405 public void testMaintenance() {
406 System.out.println("Starting Maintenance tests...");
408 // ==CLEAR BEFORE TEST============================
409 System.out.println("try to clear entry");
411 dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
412 } catch (Exception e) {
413 fail("problem deleting entry: " + e.getMessage());
416 // ==CREATE============================
418 final String nodeId = "Lorem Ipsum";
419 final boolean isActive = true;
421 CreateMaintenanceOutputBuilder create = null;
422 CreateMaintenanceInput input =
423 new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive).build();
426 create = dbProvider.createMaintenance(input);
427 dbId = create.getId();
428 } catch (Exception e) {
429 fail("Failed to create:" + e.getMessage());
432 System.out.println(dbId);
433 assertNotNull(create);
436 // ==READ===========================
437 System.out.println("Try read...");
439 ReadMaintenanceListInput readinput = new ReadMaintenanceListInputBuilder()
440 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
441 .setPagination(getPagination(20, 1)).build();
442 ReadMaintenanceListOutputBuilder readResult = dbProvider.readMaintenanceList(readinput);
443 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.maintenance.list.output.Data> data =
444 readResult.getData();
446 assertNotEquals(0, data.size());
448 assertEquals(nodeId, data.get(0).getNodeId());
449 assertEquals(isActive, data.get(0).isActive());
451 // ==UPDATE============================
453 System.out.println("Trying to update...");
454 final String nodeId2 = "Name2";
455 final boolean isActive2 = false;
457 UpdateMaintenanceInput updateInput =
458 new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2).setActive(isActive2).build();
459 UpdateMaintenanceOutputBuilder updateResult = null;
461 updateResult = dbProvider.updateMaintenance(updateInput);
462 } catch (Exception e) {
463 fail("maintenance update failed..." + e.getMessage());
466 assertNotNull(updateResult);
468 // == VERIFY UPDATE============================
469 System.out.println("Verfify update...");
470 readResult = dbProvider.readMaintenanceList(readinput);
471 data = readResult.getData();
474 assertEquals(nodeId2, data.get(0).getNodeId());
475 assertEquals(isActive2, data.get(0).isActive());
477 // ==DELETE================================
478 System.out.println("Trying to delete...");
480 DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
482 dbProvider.deleteMaintenance(deleteInput);
483 } catch (Exception e) {
484 fail("Maintenance entry couldn't be deleted" + e.getMessage());
487 readResult = dbProvider.readMaintenanceList(readinput);
488 data = readResult.getData();
490 assertEquals(0, data.size());
494 public void testFaultLog() {
496 System.out.println("Starting fault log tests...");
497 String dbId = clearAndCreatefaultEntity("1", Entity.Faultlog.getName(),
498 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultlogInput",
499 SeverityType.Critical);
501 // ==READ===========================
502 System.out.println("try to read entry");
504 ReadFaultlogListInput readinput = new ReadFaultlogListInputBuilder()
505 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
506 .setPagination(getPagination(20, 1)).build();
508 ReadFaultlogListOutputBuilder readResult = null;
510 readResult = dbProvider.readFaultLogList(readinput);
512 } catch (Exception e) {
513 fail("Fault log not read: " + e.getMessage());
516 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultlog.list.output.Data> data =
517 readResult.getData();
520 assertEquals(1, data.size());
521 assertEquals("signalIsLost", data.get(0).getProblem());
522 assertEquals("Critical", data.get(0).getSeverity().toString());
523 assertEquals("s1", data.get(0).getNodeId());
525 //== UPDATE ================================
526 System.out.println("try to update entry");
528 dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1",
529 "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
531 System.out.println("try to search entry 1");
532 readinput = new ReadFaultlogListInputBuilder()
533 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("node-id").setFiltervalue("test").build()))
534 .setPagination(getPagination(20, 1)).build();
536 //== VERIFY UPDATE ================================
537 readResult = dbProvider.readFaultLogList(readinput);
538 data = readResult.getData();
542 System.out.println(data);
543 assertEquals(0, data.size());
545 System.out.println("try to search entry 2");
547 readinput = new ReadFaultlogListInputBuilder()
548 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("node-id").setFiltervalue("test*").build()))
549 .setPagination(getPagination(20, 1)).build();
551 readResult = dbProvider.readFaultLogList(readinput);
552 data = readResult.getData();
556 assertEquals(1, data.size());
557 assertEquals("CableLOS", data.get(0).getProblem());
558 assertEquals("Major", data.get(0).getSeverity().toString());
559 assertEquals("test4657-78", data.get(0).getNodeId());
561 //== DELETE ================================
563 System.out.println("try to clear entry");
565 dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
566 } catch (Exception e) {
567 fail("problem deleting entry: " + e.getMessage());
570 //== VERIFY DELETE ===========================
571 System.out.println("verify entries deleted");
572 readResult = dbProvider
573 .readFaultLogList(new ReadFaultlogListInputBuilder().setPagination(getPagination(20, 1)).build());
574 data = readResult.getData();
575 assertEquals(0, data.size());
579 public void testFaultCurrent() {
580 System.out.println("Starting faultCurrent test...");
582 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
583 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
584 SeverityType.NonAlarmed);
585 assertEquals("1", dbId);
587 // ==READ===========================
588 System.out.println("Trying to read...");
591 ReadFaultcurrentListInput readinput = new ReadFaultcurrentListInputBuilder()
592 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
593 .setPagination(getPagination(20, 1)).build();
595 ReadFaultcurrentListOutputBuilder readResult = null;
597 readResult = dbProvider.readFaultCurrentList(readinput);
599 } catch (Exception e) {
600 fail("Fault log not read: " + e.getMessage());
603 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultcurrent.list.output.Data> data =
604 readResult.getData();
608 assertEquals(1, data.size());
609 assertEquals("signalIsLost", data.get(0).getProblem());
610 assertEquals("NonAlarmed", data.get(0).getSeverity().toString());
611 assertEquals("s1", data.get(0).getNodeId());
612 assertEquals(4340, data.get(0).getCounter().intValue());
613 assertEquals(new DateAndTime("2019-10-28T11:55:58.3Z"), data.get(0).getTimestamp());
614 assertEquals(4340, data.get(0).getCounter().intValue());
615 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
618 // ==UPDATE============================
619 System.out.println("Trying to update...");
621 String json = "{\n" + "\"timestamp\": \"2019-12-28T11:55:58.3Z\",\n" + "\"node-id\": \"SDN-Controller-0\",\n"
622 + "\"counter\": 75,\n" + "\"problem\": \"connectionLossNeOAM\",\n" + "}";
624 String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
625 assertEquals(dbId, updatedDbId);
627 // ==READ============================
630 readResult = dbProvider.readFaultCurrentList(readinput);
632 } catch (Exception e) {
633 fail("Fault log not read: " + e.getMessage());
636 data = readResult.getData();
639 assertEquals(1, data.size());
640 assertEquals("connectionLossNeOAM", data.get(0).getProblem());
641 assertEquals("SDN-Controller-0", data.get(0).getNodeId());
642 assertEquals(75, data.get(0).getCounter().intValue());
643 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
645 // ==DELETE============================
647 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
648 } catch (Exception e) {
649 fail("problem deleting: " + e.getMessage());
652 // ==READ/VERIFY DELETE============================
655 readResult = dbProvider.readFaultCurrentList(readinput);
657 } catch (Exception e) {
658 fail("Fault log not read: " + e.getMessage());
661 data = readResult.getData();
664 assertEquals(0, data.size());
668 public void testConnectionLog() {
670 // ==CLEAR================================
671 System.out.println("Clear before test");
673 dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
674 } catch (Exception e) {
675 fail("problem deleting: " + e.getMessage());
678 // ==CREATE================================
680 System.out.println("Try create entry");
681 final String initialDbId = "1";
683 String json = "{\n" + "\"timestamp\": \"2019-11-01T11:28:34.7Z\",\n" + "\"status\": \"Connecting\",\n"
684 + "\"node-id\": \"sim2230\",\n"
685 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateConnectionlogInput\"\n"
688 dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
690 assertEquals(initialDbId, dbId);
692 // ==READ================================
693 System.out.println("Try read entry");
695 ReadConnectionlogListInput readinput = new ReadConnectionlogListInputBuilder()
696 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
697 .setPagination(getPagination(20, 1)).build();
699 ReadConnectionlogListOutputBuilder readResult = null;
701 readResult = dbProvider.readConnectionlogList(readinput);
703 } catch (Exception e) {
704 fail("Connection log not read: " + e.getMessage());
707 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.connectionlog.list.output.Data> data =
708 readResult.getData();
711 assertEquals(1, data.size());
712 assertEquals("Connecting", data.get(0).getStatus().toString());
713 assertEquals("sim2230", data.get(0).getNodeId());
716 // ==UPDATE================================
717 System.out.println("Try update entry");
719 dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
721 // ==READ 2================================
722 System.out.println("Try read updated entry");
724 readinput = new ReadConnectionlogListInputBuilder()
725 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
726 .setPagination(getPagination(20, 1)).build();
729 readResult = dbProvider.readConnectionlogList(readinput);
731 } catch (Exception e) {
732 fail("Connection log not read: " + e.getMessage());
735 data = readResult.getData();
738 assertEquals(1, data.size());
739 assertEquals("Connected", data.get(0).getStatus().toString());
740 assertEquals("sim2230", data.get(0).getNodeId());
742 //== DELETE ================================
744 System.out.println("try to clear entry");
746 dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
747 } catch (Exception e) {
748 fail("problem deleting entry: " + e.getMessage());
751 //== VERIFY DELETE ===========================
752 System.out.println("verify entries deleted");
753 readResult = dbProvider.readConnectionlogList(
754 new ReadConnectionlogListInputBuilder().setPagination(getPagination(20, 1)).build());
755 data = readResult.getData();
756 assertEquals(0, data.size());
761 public void testEventLog() {
762 System.out.println("Test event log starting...");
764 // ==CLEAR================================
765 System.out.println("Clear before test");
767 dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
768 } catch (Exception e) {
769 fail("problem deleting: " + e.getMessage());
771 // ==CREATE============================
774 String json = " {\n" + "\"timestamp\": \"2019-11-08T16:39:23.0Z\",\n" + "\"new-value\": \"done\",\n"
775 + "\"object-id\": \"SDN-Controller-0\",\n" + "\"attribute-name\": \"startup\",\n" + "\"counter\": 0,\n"
776 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Eventlog\",\n"
777 + "\"node-id\": \"SDN-Controller-0\"\n" + "}";
779 dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
782 // ==READ===========================
784 ReadEventlogListInput readinput = new ReadEventlogListInputBuilder()
785 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
786 .setPagination(getPagination(20, 1)).build();
787 ReadEventlogListOutputBuilder readResult = null;
789 readResult = dbProvider.readEventlogList(readinput);
791 } catch (Exception e) {
792 fail("problem reading eventlog");
795 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.eventlog.list.output.Data> data =
796 readResult.getData();
797 assertEquals(1, data.size());
799 //== DELETE ================================
801 System.out.println("try to clear entry");
803 dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
804 } catch (Exception e) {
805 fail("problem deleting entry: " + e.getMessage());
808 //== VERIFY DELETE ===========================
809 System.out.println("verify entries deleted");
811 readResult = dbProvider
812 .readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
813 } catch (IOException e) {
814 fail("problem reading eventlog");
816 data = readResult.getData();
817 assertEquals(0, data.size());
822 public void testInventory() {
824 System.out.println("Test inventory starting...");
826 // ==CLEAR================================
827 System.out.println("Clear before test");
829 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
830 } catch (Exception e) {
831 fail("problem deleting: " + e.getMessage());
835 // ==CREATE============================
838 String json = " {\"tree-level\": 1,\n" + " \"parent-uuid\": \"SHELF-1.1.0.0\",\n"
839 + " \"node-id\": \"sim2\",\n" + " \"uuid\": \"CARD-1.1.8.0\",\n"
840 + " \"contained-holder\": [ ],\n" + " \"manufacturer-name\": \"Lorem Ipsum\",\n"
841 + " \"manufacturer-identifier\": \"ONF-Wireless-Transport\",\n" + " \"serial\": \"sd-dsa-eqw\",\n"
842 + " \"date\": \"2008-10-21T00:00:00.0Z\",\n"
843 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory\",\n"
844 + " \"version\": \"unknown\",\n" + " \"description\": \"WS/DS3\",\n"
845 + " \"part-type-id\": \"unknown\",\n" + " \"model-identifier\": \"model-id-s3s\",\n"
846 + " \"type-name\": \"p4.module\"}";
848 dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
851 // ==READ===========================
852 ReadInventoryListInput readinput = new ReadInventoryListInputBuilder()
853 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
854 .setPagination(getPagination(20, 1)).build();
855 ReadInventoryListOutputBuilder readResult = null;
857 readResult = dbProvider.readInventoryList(readinput);
859 } catch (Exception e) {
860 fail("Problem reading inventory list" + e.getMessage());
863 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.inventory.list.output.Data> data =
864 readResult.getData();
865 assertEquals(1, data.size());
866 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
867 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
868 assertEquals("sim2", data.get(0).getNodeId());
869 assertEquals("unknown", data.get(0).getVersion());
870 assertEquals("WS/DS3", data.get(0).getDescription());
871 assertEquals("2008-10-21T00:00:00.0Z", data.get(0).getDate());
872 assertEquals("sd-dsa-eqw", data.get(0).getSerial());
873 System.out.println(data.get(0).getDate());
875 // ==UPDATE============================
876 String updatedDbId = null;
877 final String[] holderArray = {"Lorem Ipsum 1", "Lorem Ipsum 2", "Lorem Ipsum &%/$_2"};
878 String updatejson = " {" + " \"node-id\": \"sim5\",\n"
879 + " \"contained-holder\": [ \"Lorem Ipsum 1\", \"Lorem Ipsum 2\", \"Lorem Ipsum &%/$_2\" ],\n"
880 + " \"serial\": \"sd-dsa-eww\",\n" + " \"date\": \"2008-11-21T00:00:00.0Z\",\n"
881 + " \"part-type-id\": \"not unknown\",\n" + "}";
883 updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
884 assertEquals(dbId, updatedDbId);
887 readResult = dbProvider.readInventoryList(readinput);
889 } catch (Exception e) {
890 fail("Problem reading inventory list" + e.getMessage());
893 data = readResult.getData();
895 assertEquals(1, data.size());
896 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
897 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
898 assertEquals("sim5", data.get(0).getNodeId());
899 assertEquals("not unknown", data.get(0).getPartTypeId());
900 assertEquals("WS/DS3", data.get(0).getDescription());
901 assertEquals("2008-11-21T00:00:00.0Z", data.get(0).getDate());
902 assertEquals("sd-dsa-eww", data.get(0).getSerial());
903 assertEquals(holderArray.length, data.get(0).getContainedHolder().size());
904 assertEquals(holderArray[0], data.get(0).getContainedHolder().get(0));
905 assertEquals(holderArray[1], data.get(0).getContainedHolder().get(1));
906 assertEquals(holderArray[2], data.get(0).getContainedHolder().get(2));
908 // ==DELETE============================
910 System.out.println("delete after test");
912 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
913 } catch (Exception e) {
914 fail("problem deleting: " + e.getMessage());
917 // ==VERIFY DELETE ============================
920 readResult = dbProvider.readInventoryList(readinput);
922 } catch (Exception e) {
923 fail("Problem reading inventory list" + e.getMessage());
926 data = readResult.getData();
927 assertEquals(0, data.size());
932 public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
934 System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
937 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
938 } catch (Exception e) {
939 fail("problem deleting: " + e.getMessage());
942 System.out.println("create entries...");
944 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
945 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
947 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
948 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
949 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
950 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
952 System.out.println("trying to read, should throw exception...");
955 ReadPmdata15mLtpListInput readLtp =
956 new ReadPmdata15mLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
958 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
961 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
962 fail("No exception thrown!");
963 } catch (Exception e) {
964 System.out.println(e);
965 assertTrue(e instanceof IllegalArgumentException);
966 assertEquals("no nodename in filter found ", e.getMessage());
969 assertNull(readltpResult);
971 //== DELETE ================================
973 System.out.println("try to clear entry");
975 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
976 } catch (Exception e) {
977 fail("problem deleting entry: " + e.getMessage());
980 //== VERIFY DELETE ===========================
981 System.out.println("verify entries deleted");
982 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data> data =
985 new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build())
988 assertEquals(0, data.size());
992 public void test15MinPerformanceData() {
993 // == CLEAR BEFORE TESTS ============================
994 System.out.println("Test 15 min performance...");
997 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
998 } catch (Exception e) {
999 fail("problem deleting: " + e.getMessage());
1002 // == CREATE ============================
1004 System.out.println("create entries...");
1006 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1007 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1009 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1010 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1011 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1012 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1014 // == READ ============================
1015 System.out.println("read list entries...");
1017 ReadPmdata15mListInput read = new ReadPmdata15mListInputBuilder()
1018 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1019 .setPagination(getPagination(20, 1)).build();
1021 ReadPmdata15mListOutputBuilder readResult = null;
1024 readResult = dbProvider.readPmdata15mList(read);
1025 } catch (Exception e) {
1026 fail("Problem reading 15m data");
1029 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data> data =
1030 readResult.getData();
1032 assertNotNull(data);
1033 assertEquals(2, data.size());
1035 System.out.println("read ltp entries with node name set...");
1037 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
1038 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1039 .setPagination(getPagination(20, 1)).build();
1041 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1044 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1045 } catch (Exception e) {
1046 fail("Problem reading 15m ltp data");
1049 List<String> dataLtp = readltpResult.getData();
1051 assertNotNull(dataLtp);
1052 assertEquals(2, dataLtp.size());
1053 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1054 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1056 System.out.println("read device entries...");
1058 ReadPmdata15mDeviceListInput readDevices =
1059 new ReadPmdata15mDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1061 ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
1064 readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
1065 } catch (Exception e) {
1066 fail("Problem reading 15m device data");
1069 List<String> dataDevice = readDeviceResult.getData();
1071 assertNotNull(dataDevice);
1072 assertEquals(2, dataDevice.size());
1073 assertTrue(dataDevice.contains("a2"));
1074 assertTrue(dataDevice.contains("a3"));
1076 //== DELETE ================================
1078 System.out.println("try to clear entry");
1080 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1081 } catch (Exception e) {
1082 fail("problem deleting entry: " + e.getMessage());
1085 //== VERIFY DELETE ===========================
1086 System.out.println("verify entries deleted");
1087 readResult = dbProvider
1088 .readPmdata15mList(new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build());
1089 data = readResult.getData();
1090 assertEquals(0, data.size());
1095 public void test24hPerformanceData() {
1096 System.out.println("Test 24h performance...");
1099 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1100 } catch (Exception e) {
1101 fail("problem deleting: " + e.getMessage());
1104 System.out.println("create entries...");
1105 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1106 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1107 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1108 String aDbId = createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-06", "a2");
1110 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1111 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1112 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1114 System.out.println("read all list entries...");
1116 ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build();
1118 ReadPmdata24hListOutputBuilder readResult = null;
1121 readResult = dbProvider.readPmdata24hList(read);
1122 } catch (Exception e) {
1123 fail("Problem reading 24h data");
1126 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._24h.list.output.Data> data =
1127 readResult.getData();
1129 assertNotNull(data);
1130 assertEquals(6, data.size());
1133 System.out.println("filter list entries...");
1135 read = new ReadPmdata24hListInputBuilder()
1136 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1137 .setPagination(getPagination(20, 1)).build();
1142 readResult = dbProvider.readPmdata24hList(read);
1143 } catch (Exception e) {
1144 fail("Problem reading 24h data");
1147 data = readResult.getData();
1149 assertNotNull(data);
1150 assertEquals(3, data.size());
1152 System.out.println("read ltp entries with node name set...");
1154 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1155 .setFilter(YangHelper2.getListOrMap(FilterKey.class, new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1156 .setPagination(getPagination(20, 1)).build();
1158 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1161 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1162 } catch (Exception e) {
1163 fail("Problem reading 24h ltp data");
1166 List<String> dataLtp = readltpResult.getData();
1168 assertNotNull(dataLtp);
1169 assertEquals(3, dataLtp.size());
1170 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1171 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1172 assertTrue(dataLtp.contains("LP-MWPS-TTP-06"));
1175 System.out.println("read device entries...");
1177 ReadPmdata24hDeviceListInput readDevices =
1178 new ReadPmdata24hDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1180 ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
1183 readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
1184 } catch (Exception e) {
1185 fail("Problem reading 24h device data");
1188 List<String> dataDevice = readDeviceResult.getData();
1190 assertNotNull(dataDevice);
1191 assertEquals(2, dataDevice.size());
1192 assertTrue(dataDevice.contains("a2"));
1193 assertTrue(dataDevice.contains("a3"));
1195 // == UPDATE ==============================
1197 boolean success = dbRawProvider.doUpdate(Entity.Historicalperformance24h.getName(),
1198 "{'uuid-interface':'LTP-TEST-MWP-097'}", QueryBuilders.termQuery("_id", aDbId));
1199 assertTrue("update dbentry not succeeded", success);
1201 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1202 } catch (Exception e) {
1203 fail("Problem reading 24h ltp data");
1206 // == VERIFY UPDATE ==============================
1208 dataLtp = readltpResult.getData();
1210 assertNotNull(dataLtp);
1211 assertEquals(3, dataLtp.size());
1212 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1213 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1214 assertTrue(dataLtp.contains("LTP-TEST-MWP-097"));
1218 //== DELETE ===========================
1220 System.out.println("try to clear entries");
1222 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1223 } catch (Exception e) {
1224 fail("problem deleting entry: " + e.getMessage());
1227 //== VERIFY DELETE ===========================
1228 System.out.println("verify entries deleted");
1229 readResult = dbProvider
1230 .readPmdata24hList(new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build());
1231 data = readResult.getData();
1232 assertEquals(0, data.size());
1236 public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
1237 System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
1240 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1241 } catch (Exception e) {
1242 fail("problem deleting: " + e.getMessage());
1245 System.out.println("create entries...");
1247 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1248 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1249 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1251 createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1252 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1253 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1254 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1256 System.out.println("trying to read, should throw exception...");
1259 ReadPmdata24hLtpListInput readLtp =
1260 new ReadPmdata24hLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
1262 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1265 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1266 fail("No exception thrown!");
1267 } catch (Exception e) {
1268 System.out.println(e);
1269 assertTrue(e instanceof IllegalArgumentException);
1270 assertEquals("no nodename in filter found ", e.getMessage());
1273 assertNull(readltpResult);
1276 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1277 } catch (Exception e) {
1278 fail("problem deleting: " + e.getMessage());
1283 public void testUrlEncoding() {
1284 System.out.println("Testing url encding");
1286 final String test = "Lorem Ipsum";
1287 final String test1 = "Lorem/Ipsum";
1288 final String test2 = "Lorem_Ipsum";
1289 final String test3 = "Lorem%Ipsum";
1291 assertEquals("Lorem%20Ipsum", BaseRequest.urlEncodeValue(test));
1292 assertEquals("Lorem%2FIpsum", BaseRequest.urlEncodeValue(test1));
1293 assertEquals("Lorem_Ipsum", BaseRequest.urlEncodeValue(test2));
1294 assertEquals("Lorem%25Ipsum", BaseRequest.urlEncodeValue(test3));
1298 public void testDoUpdateOrCreateWithNullId() {
1299 System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
1301 String dbId = clearAndCreatefaultEntity(null, Entity.Faultlog.getName(),
1302 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultlogInput",
1303 SeverityType.Critical);
1308 public void readTestFaultCurrentViaRawDbProvider() {
1309 System.out.println("Starting faultCurrent test...");
1311 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
1312 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
1313 SeverityType.Critical);
1314 assertEquals("1", dbId);
1316 // ==READ===========================
1317 System.out.println("Trying to read...");
1319 String readResult = null;
1321 readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
1323 } catch (Exception e) {
1324 fail("Fault log not read: " + e.getMessage());
1328 String expectedDbResult =
1329 "{\"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.rev201110.CreateFaultcurrentInput\",\"type\":\"ProblemNotificationXml\",\"timestamp\":\"2019-10-28T11:55:58.3Z\"}";
1331 System.out.println(readResult);
1332 assertNotNull(readResult);
1333 assertEquals(expectedDbResult, readResult);
1335 SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1336 assertNotNull(searchResult);
1338 List<SearchHit> hits = searchResult.getHits();
1340 assertNotNull(hits);
1341 assertEquals(1, searchResult.getTotal());
1342 assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
1344 //== DELETE ==============================
1346 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
1347 } catch (Exception e) {
1348 fail("problem deleting: " + e.getMessage());
1350 //== VERIFY DELETE ========================
1351 searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1352 hits = searchResult.getHits();
1353 assertNotNull(hits);
1354 assertEquals(0, searchResult.getTotal());
1359 public void testOutputCamelCase() throws ClassNotFoundException {
1361 String jsonString = "{\n" + "\"timestamp\": \"2020-02-20T09:31:22.3Z\",\n"
1362 + "\"object-id\": \"LP-MWPS-RADIO\",\n" + "\"severity\": \"Critical\",\n" + "\"counter\": 10,\n"
1363 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog\",\n"
1364 + "\"source-type\": \"Netconf\",\n" + "\"node-id\": \"sim4\",\n" + "\"problem\": \"signalIsLost\"\n"
1366 YangToolsMapper2<Faultlog> yangtoolsMapper = new YangToolsMapper2<>(Faultlog.class,null);
1367 FaultlogEntity log = yangtoolsMapper.readValue(jsonString, Faultlog.class);
1368 System.out.println(log);
1369 System.out.println(yangtoolsMapper.writeValueAsString(log));
1370 } catch (IOException e) {
1371 fail(e.getMessage());
1376 private Pagination getPagination(long pageSize, int page) {
1377 return new PaginationBuilder().setPage(BigInteger.valueOf(page)).setSize(pageSize).build();
1381 private String clearAndCreatefaultEntity(String initialDbId, String entityType, String implementedInterface,
1382 SeverityType severity) {
1383 // ==CLEAR BEFORE TEST============================
1384 System.out.println("try to clear entry");
1386 dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1387 } catch (Exception e) {
1388 fail("problem deleting: " + e.getMessage());
1392 return createFaultEntity(initialDbId, entityType, implementedInterface, severity);
1395 private String createFaultEntity(String initialDbId, String entityType, String implementedInterface,
1396 SeverityType severity) {
1397 // ==CREATE============================
1398 System.out.println("try to create entry");
1403 dbId = dbRawProvider.doUpdateOrCreate(entityType, initialDbId,
1404 "{\n" + "\"timestamp\": \"2019-10-28T11:55:58.3Z\",\n" + "\"object-id\": \"LP-MWPS-RADIO\",\n"
1405 + "\"severity\": \"" + severity.toString() + "\",\n" + "\"node-id\": \"s1\",\n"
1406 + "\"implemented-interface\": \"" + implementedInterface + "\",\n" + "\"counter\": 4340,\n"
1407 + "\"problem\": \"signalIsLost\",\n" + "\"type\": \"ProblemNotificationXml\"\n" + "}");
1411 } catch (Exception e) {
1412 fail("Problem creating fault log entry" + e.getMessage());
1418 private String createPerformanceData(String initialDbId, GranularityPeriodType timeInterval, String scannerId,
1419 String uuidInterface, String nodename) {
1421 String json = "{\n" + "\"node-name\": \"" + nodename + "\",\n" + "\"uuid-interface\": \"" + uuidInterface
1422 + "\",\n" + "\"layer-protocol-name\": \"MWPS\",\n" + "\"radio-signal-id\": \"Test8\",\n"
1423 + "\"time-stamp\": \"2017-03-01T06:15:00.0Z\",\n" + "\"granularity-period\": \""
1424 + timeInterval.toString() + "\",\n" + "\"scanner-id\": \"" + scannerId + "\",\n"
1425 + "\"performance-data\": {\n" + "\"cses\": 0,\n" + "\"ses\": 0,\n" + "\"es\": 0,\n"
1426 + "\"tx-level-max\": 3,\n" + "\"tx-level-avg\": 3,\n" + "\"rx-level-min\": -44,\n"
1427 + "\"rx-level-max\": -45,\n" + "\"rx-level-avg\": -44,\n" + "\"time2-states\": 0,\n"
1428 + "\"time4-states-s\": 0,\n" + "\"time4-states\": 0,\n" + "\"time8-states\": -1,\n"
1429 + "\"time16-states-s\": -1,\n" + "\"time16-states\": 0,\n" + "\"time32-states\": -1,\n"
1430 + "\"time64-states\": 900,\n" + "\"time128-states\": -1,\n" + "\"time256-states\": -1,\n"
1431 + "\"time512-states\": -1,\n" + "\"time512-states-l\": -1,\n" + "\"unavailability\": 0,\n"
1432 + "\"tx-level-min\": 3,\n" + "\"time1024-states\": -1,\n" + "\"time1024-states-l\": -1,\n"
1433 + "\"time2048-states\": -1,\n" + "\"time2048-states-l\": -1,\n" + "\"time4096-states\": -1,\n"
1434 + "\"time4096-states-l\": -1,\n" + "\"time8192-states\": -1,\n" + "\"time8192-states-l\": -1,\n"
1435 + "\"snir-min\": -99,\n" + "\"snir-max\": -99,\n" + "\"snir-avg\": -99,\n" + "\"xpd-min\": -99,\n"
1436 + "\"xpd-max\": -99,\n" + "\"xpd-avg\": -99,\n" + "\"rf-temp-min\": -99,\n" + "\"rf-temp-max\": -99,\n"
1437 + "\"rf-temp-avg\": -99,\n" + "\"defect-blocks-sum\": -1,\n" + "\"time-period\": 900\n" + "},\n"
1438 + "\"suspect-interval-flag\": false\n" + "}";
1440 if (timeInterval.equals(GranularityPeriodType.Period15Min)) {
1441 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
1443 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);