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.data.HtUserdataManagerImpl;
44 import org.onap.ccsdk.features.sdnr.wt.dataprovider.http.UserdataHttpServlet;
45 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.YangHelper2;
46 import org.onap.ccsdk.features.sdnr.wt.dataprovider.test.util.HostInfoForTest;
47 import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.DataProviderYangToolsMapper;
48 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceInput;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceInputBuilder;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceOutputBuilder;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInput;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInputBuilder;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerOutputBuilder;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionInput;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionInputBuilder;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionOutputBuilder;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInput;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInputBuilder;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInput;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInputBuilder;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInput;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInputBuilder;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListInput;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListInputBuilder;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListOutputBuilder;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInput;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInputBuilder;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListOutputBuilder;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInput;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInputBuilder;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListOutputBuilder;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListInput;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListInputBuilder;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListOutputBuilder;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListInput;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListInputBuilder;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListOutputBuilder;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInput;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInputBuilder;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListOutputBuilder;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListInput;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListInputBuilder;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListOutputBuilder;
89 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInput;
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInputBuilder;
91 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListOutputBuilder;
92 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListInput;
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListInputBuilder;
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListOutputBuilder;
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListInput;
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListInputBuilder;
97 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListOutputBuilder;
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListInput;
99 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListInputBuilder;
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListOutputBuilder;
101 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListInput;
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListInputBuilder;
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListOutputBuilder;
104 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListInput;
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListInputBuilder;
106 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListOutputBuilder;
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListInput;
108 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListInputBuilder;
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListOutputBuilder;
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
111 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInput;
112 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInputBuilder;
113 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceOutputBuilder;
114 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInput;
115 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInputBuilder;
116 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerOutputBuilder;
117 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInput;
118 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInputBuilder;
119 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionOutputBuilder;
120 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder;
121 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterKey;
122 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Pagination;
123 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.PaginationBuilder;
124 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.mediator.server.list.output.Data;
126 public class TestCRUDforDatabase {
128 private static ElasticSearchDataProvider dbProvider;
129 private static HtDatabaseClient dbRawProvider;
132 public static void init() throws Exception {
134 HostInfo[] hosts = HostInfoForTest.get();
135 dbProvider = new ElasticSearchDataProvider(hosts);
136 dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
137 dbRawProvider = HtDatabaseClient.getClient(hosts);
140 public static void trySleep(long ms) {
143 } catch (Exception e) {
144 Thread.currentThread().interrupt();
148 public static void trySleep() {
153 public void testStatus() throws IOException {
155 //== CLEAR AND CREATE ================================
156 clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
157 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
158 SeverityType.Critical);
159 createFaultEntity("Lorem Ipsum", Entity.Faultcurrent.getName(),
160 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
162 createFaultEntity("3", Entity.Faultcurrent.getName(),
163 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
165 createFaultEntity("4", Entity.Faultcurrent.getName(),
166 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
167 SeverityType.Warning);
169 //== READ ================================
171 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.status.output.Data> readOutput =
172 dbProvider.readStatus().getData();
173 System.out.println(readOutput);
175 assertEquals(1, readOutput.get(0).getFaults().getMajors().intValue());
176 assertEquals(1, readOutput.get(0).getFaults().getMinors().intValue());
177 assertEquals(1, readOutput.get(0).getFaults().getWarnings().intValue());
178 assertEquals(1, readOutput.get(0).getFaults().getCriticals().intValue());
180 //== DELETE ================================
182 System.out.println("try to delete entries");
184 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
185 } catch (Exception e) {
186 fail("problem deleting entry: " + e.getMessage());
189 //== VERIFY DELETE ===========================
190 System.out.println("verify entries were deleted");
191 readOutput = dbProvider.readStatus().getData();
192 assertEquals(0, readOutput.get(0).getFaults().getMajors().intValue());
193 assertEquals(0, readOutput.get(0).getFaults().getMinors().intValue());
194 assertEquals(0, readOutput.get(0).getFaults().getWarnings().intValue());
195 assertEquals(0, readOutput.get(0).getFaults().getCriticals().intValue());
199 public void testMediatorServer() {
200 final String NAME = "ms1";
201 final String URL = "http://11.23.45.55:4599";
202 final String NAME2 = "ms1-nu";
203 final String URL2 = "http://11.23.45.56:4599";
205 // ==CLEAR BEFORE TEST============================
206 System.out.println("try to clear entry");
208 dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
209 } catch (Exception e) {
210 fail("problem deleting entry: " + e.getMessage());
213 // ==CREATE============================
214 System.out.println("try to create entry");
215 CreateMediatorServerOutputBuilder createOutput = null;
216 CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
220 createOutput = dbProvider.createMediatorServer(input);
221 dbId = createOutput.getId();
222 System.out.println(createOutput);
223 } catch (Exception e) {
224 fail("failed to create " + input.toString() + ":" + e.getMessage());
226 assertNotNull(createOutput);
229 // ==READ===========================
230 System.out.println("try to read entry");
231 ReadMediatorServerListInput readinput = new ReadMediatorServerListInputBuilder()
232 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
233 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
234 .setPagination(getPagination(20, 1)).build();
235 ReadMediatorServerListOutputBuilder readoutput = dbProvider.readMediatorServerList(readinput);
236 List<Data> data = readoutput.getData();
238 assertEquals("no entry found", 1, data.size());
239 assertEquals(NAME, data.get(0).getName());
240 assertEquals(URL, data.get(0).getUrl());
241 String dbId2 = data.get(0).getId();
242 assertEquals(dbId, dbId2);
243 System.out.println(data);
244 // ==UPDATE============================
245 System.out.println("try to update entry");
246 UpdateMediatorServerInput updateInput =
247 new UpdateMediatorServerInputBuilder().setId(dbId2).setName(NAME2).setUrl(URL2).build();
248 UpdateMediatorServerOutputBuilder updateOutput = null;
250 updateOutput = dbProvider.updateMediatorServer(updateInput);
251 System.out.println(updateOutput);
252 } catch (Exception e) {
253 fail("problem updating entry:" + e.getMessage());
255 assertNotNull(updateOutput);
257 // ==READ============================
258 System.out.println("try to read entry");
259 readinput = new ReadMediatorServerListInputBuilder()
260 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
261 new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
262 .setPagination(getPagination(20, 1)).build();
263 readoutput = dbProvider.readMediatorServerList(readinput);
264 data = readoutput.getData();
265 System.out.println(data);
266 assertNotNull("no update response", data);
267 assertEquals("update not verifiied", 1, data.size());
268 assertEquals("update not verifiied", NAME2, data.get(0).getName());
269 assertEquals("update not verifiied", URL2, data.get(0).getUrl());
270 assertEquals("update not verifiied", dbId, data.get(0).getId());
271 // ==DELETE============================
272 System.out.println("try to delete entry");
273 DeleteMediatorServerInput deleteInput = new DeleteMediatorServerInputBuilder().setId(dbId).build();
275 dbProvider.deleteMediatorServer(deleteInput);
276 } catch (Exception e) {
277 fail("problem deleting entry: " + e.getMessage());
281 // ==READ/VERIFY DELETE============================
282 System.out.println("try to read entry");
283 readinput = new ReadMediatorServerListInputBuilder()
284 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
285 new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
286 .setPagination(getPagination(20, 1)).build();
287 readoutput = dbProvider.readMediatorServerList(readinput);
288 data = readoutput.getData();
289 assertNotNull("delete not verifiied", data);
290 assertEquals("delete not verifiied", 0, data.size());
294 public void testNetworkElementConnectionCurrent() {
296 System.out.println("networkElementConnection test start");
298 // ==CLEAR BEFORE TEST============================
299 System.out.println("try to clear entry");
301 dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
302 } catch (Exception e) {
303 fail("problem deleting entry: " + e.getMessage());
306 // ==CREATE============================
307 System.out.println("try to create");
308 final String name = "sim87";
309 final String url = "10.5.10.1";
310 final long port = 5959;
312 CreateNetworkElementConnectionOutputBuilder create = null;
313 CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
314 .setIsRequired(true).setHost(url).setPort(YangHelper2.getLongOrUint32(port)).build();
318 create = dbProvider.createNetworkElementConnection(input);
319 dbId = create.getId();
320 } catch (Exception e) {
321 fail("networkElementConnection create failed" + e.getMessage());
325 assertNotNull(create);
327 // ==READ===========================
329 ReadNetworkElementConnectionListInput readInput = new ReadNetworkElementConnectionListInputBuilder()
330 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
331 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
332 .setPagination(getPagination(20, 1)).build();
334 ReadNetworkElementConnectionListOutputBuilder readOperation =
335 dbProvider.readNetworkElementConnectionList(readInput);
336 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.network.element.connection.list.output.Data> data =
337 readOperation.getData();
340 assertEquals(dbId, data.get(0).getId());
341 assertEquals(name, data.get(0).getNodeId());
342 assertEquals(url, data.get(0).getHost());
343 assertEquals(port, data.get(0).getPort().longValue());
345 // ==UPDATE============================
346 System.out.println("Trying to update...");
347 final String url2 = "10.5.10.2";
348 final long port2 = 5960;
350 UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId)
351 .setHost(url2).setPort(YangHelper2.getLongOrUint32(port2)).setIsRequired(false).build();
352 UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
354 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
355 } catch (Exception e) {
356 fail("update failed: " + e.getMessage());
359 assertNotNull(updateOutput);
361 // == Verify UPDATE============================
362 System.out.println("Verfiying update...");
364 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
365 data = readOperation.getData();
368 assertEquals(url2, data.get(0).getHost());
369 assertEquals(port2, data.get(0).getPort().longValue());
371 // ==PARTIAL UPDATE============================
372 System.out.println("Try partial update...");
373 assertEquals(false, data.get(0).isIsRequired());
374 updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build();
376 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
377 } catch (Exception e) {
378 fail("update failed: " + e.getMessage());
381 assertNotNull(updateOutput);
383 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
384 data = readOperation.getData();
386 assertEquals(true, data.get(0).isIsRequired());
387 assertEquals(url2, data.get(0).getHost());
388 assertEquals(port2, data.get(0).getPort().longValue());
390 // ==DELETE============================
391 System.out.println("Try delete...");
393 DeleteNetworkElementConnectionInput deleteInput =
394 new DeleteNetworkElementConnectionInputBuilder().setId(dbId).build();
396 dbProvider.deleteNetworkElementConnection(deleteInput);
397 } catch (Exception e) {
398 fail("problem deleting " + e.getMessage());
401 readInput = new ReadNetworkElementConnectionListInputBuilder()
402 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
403 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
404 .setPagination(getPagination(20, 1)).build();
405 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
406 data = readOperation.getData();
407 assertEquals(0, data.size());
412 public void testMaintenance() {
413 System.out.println("Starting Maintenance tests...");
415 // ==CLEAR BEFORE TEST============================
416 System.out.println("try to clear entry");
418 dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
419 } catch (Exception e) {
420 fail("problem deleting entry: " + e.getMessage());
423 // ==CREATE============================
425 final String nodeId = "Lorem Ipsum";
426 final boolean isActive = true;
428 CreateMaintenanceOutputBuilder create = null;
429 CreateMaintenanceInput input =
430 new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive).build();
433 create = dbProvider.createMaintenance(input);
434 dbId = create.getId();
435 } catch (Exception e) {
436 fail("Failed to create:" + e.getMessage());
439 System.out.println(dbId);
440 assertNotNull(create);
443 // ==READ===========================
444 System.out.println("Try read...");
446 ReadMaintenanceListInput readinput = new ReadMaintenanceListInputBuilder()
447 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
448 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
449 .setPagination(getPagination(20, 1)).build();
450 ReadMaintenanceListOutputBuilder readResult = dbProvider.readMaintenanceList(readinput);
451 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.maintenance.list.output.Data> data =
452 readResult.getData();
454 assertNotEquals(0, data.size());
456 assertEquals(nodeId, data.get(0).getNodeId());
457 assertEquals(isActive, data.get(0).isActive());
459 // ==UPDATE============================
461 System.out.println("Trying to update...");
462 final String nodeId2 = "Name2";
463 final boolean isActive2 = false;
465 UpdateMaintenanceInput updateInput =
466 new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2).setActive(isActive2).build();
467 UpdateMaintenanceOutputBuilder updateResult = null;
469 updateResult = dbProvider.updateMaintenance(updateInput);
470 } catch (Exception e) {
471 fail("maintenance update failed..." + e.getMessage());
474 assertNotNull(updateResult);
476 // == VERIFY UPDATE============================
477 System.out.println("Verfify update...");
478 readResult = dbProvider.readMaintenanceList(readinput);
479 data = readResult.getData();
482 assertEquals(nodeId2, data.get(0).getNodeId());
483 assertEquals(isActive2, data.get(0).isActive());
485 // ==DELETE================================
486 System.out.println("Trying to delete...");
488 DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
490 dbProvider.deleteMaintenance(deleteInput);
491 } catch (Exception e) {
492 fail("Maintenance entry couldn't be deleted" + e.getMessage());
495 readResult = dbProvider.readMaintenanceList(readinput);
496 data = readResult.getData();
498 assertEquals(0, data.size());
502 public void testFaultLog() {
504 System.out.println("Starting fault log tests...");
505 String dbId = clearAndCreatefaultEntity("1", Entity.Faultlog.getName(),
506 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultlogInput",
507 SeverityType.Critical);
509 // ==READ===========================
510 System.out.println("try to read entry");
512 ReadFaultlogListInput readinput = new ReadFaultlogListInputBuilder()
513 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
514 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
515 .setPagination(getPagination(20, 1)).build();
517 ReadFaultlogListOutputBuilder readResult = null;
519 readResult = dbProvider.readFaultLogList(readinput);
521 } catch (Exception e) {
522 fail("Fault log not read: " + e.getMessage());
525 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultlog.list.output.Data> data =
526 readResult.getData();
529 assertEquals(1, data.size());
530 assertEquals("signalIsLost", data.get(0).getProblem());
531 assertEquals("Critical", data.get(0).getSeverity().toString());
532 assertEquals("s1", data.get(0).getNodeId());
534 //== UPDATE ================================
535 System.out.println("try to update entry");
537 dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1",
538 "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
540 System.out.println("try to search entry 1");
541 readinput = new ReadFaultlogListInputBuilder()
542 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
543 new FilterBuilder().setProperty("node-id").setFiltervalue("test").build()))
544 .setPagination(getPagination(20, 1)).build();
546 //== VERIFY UPDATE ================================
547 readResult = dbProvider.readFaultLogList(readinput);
548 data = readResult.getData();
552 System.out.println(data);
553 assertEquals(0, data.size());
555 System.out.println("try to search entry 2");
557 readinput = new ReadFaultlogListInputBuilder()
558 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
559 new FilterBuilder().setProperty("node-id").setFiltervalue("test*").build()))
560 .setPagination(getPagination(20, 1)).build();
562 readResult = dbProvider.readFaultLogList(readinput);
563 data = readResult.getData();
567 assertEquals(1, data.size());
568 assertEquals("CableLOS", data.get(0).getProblem());
569 assertEquals("Major", data.get(0).getSeverity().toString());
570 assertEquals("test4657-78", data.get(0).getNodeId());
572 //== DELETE ================================
574 System.out.println("try to clear entry");
576 dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
577 } catch (Exception e) {
578 fail("problem deleting entry: " + e.getMessage());
581 //== VERIFY DELETE ===========================
582 System.out.println("verify entries deleted");
583 readResult = dbProvider
584 .readFaultLogList(new ReadFaultlogListInputBuilder().setPagination(getPagination(20, 1)).build());
585 data = readResult.getData();
586 assertEquals(0, data.size());
590 public void testFaultCurrent() {
591 System.out.println("Starting faultCurrent test...");
593 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
594 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
595 SeverityType.NonAlarmed);
596 assertEquals("1", dbId);
598 // ==READ===========================
599 System.out.println("Trying to read...");
602 ReadFaultcurrentListInput readinput = new ReadFaultcurrentListInputBuilder()
603 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
604 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
605 .setPagination(getPagination(20, 1)).build();
607 ReadFaultcurrentListOutputBuilder readResult = null;
609 readResult = dbProvider.readFaultCurrentList(readinput);
611 } catch (Exception e) {
612 fail("Fault log not read: " + e.getMessage());
615 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultcurrent.list.output.Data> data =
616 readResult.getData();
620 assertEquals(1, data.size());
621 assertEquals("signalIsLost", data.get(0).getProblem());
622 assertEquals("NonAlarmed", data.get(0).getSeverity().toString());
623 assertEquals("s1", data.get(0).getNodeId());
624 assertEquals(4340, data.get(0).getCounter().intValue());
625 assertEquals(new DateAndTime("2019-10-28T11:55:58.3Z"), data.get(0).getTimestamp());
626 assertEquals(4340, data.get(0).getCounter().intValue());
627 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
630 // ==UPDATE============================
631 System.out.println("Trying to update...");
633 String json = "{\n" + "\"timestamp\": \"2019-12-28T11:55:58.3Z\",\n" + "\"node-id\": \"SDN-Controller-0\",\n"
634 + "\"counter\": 75,\n" + "\"problem\": \"connectionLossNeOAM\",\n" + "}";
636 String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
637 assertEquals(dbId, updatedDbId);
639 // ==READ============================
642 readResult = dbProvider.readFaultCurrentList(readinput);
644 } catch (Exception e) {
645 fail("Fault log not read: " + e.getMessage());
648 data = readResult.getData();
651 assertEquals(1, data.size());
652 assertEquals("connectionLossNeOAM", data.get(0).getProblem());
653 assertEquals("SDN-Controller-0", data.get(0).getNodeId());
654 assertEquals(75, data.get(0).getCounter().intValue());
655 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
657 // ==DELETE============================
659 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
660 } catch (Exception e) {
661 fail("problem deleting: " + e.getMessage());
664 // ==READ/VERIFY DELETE============================
667 readResult = dbProvider.readFaultCurrentList(readinput);
669 } catch (Exception e) {
670 fail("Fault log not read: " + e.getMessage());
673 data = readResult.getData();
676 assertEquals(0, data.size());
680 public void testConnectionLog() {
682 // ==CLEAR================================
683 System.out.println("Clear before test");
685 dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
686 } catch (Exception e) {
687 fail("problem deleting: " + e.getMessage());
690 // ==CREATE================================
692 System.out.println("Try create entry");
693 final String initialDbId = "1";
695 String json = "{\n" + "\"timestamp\": \"2019-11-01T11:28:34.7Z\",\n" + "\"status\": \"Connecting\",\n"
696 + "\"node-id\": \"sim2230\",\n"
697 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateConnectionlogInput\"\n"
700 dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
702 assertEquals(initialDbId, dbId);
704 // ==READ================================
705 System.out.println("Try read entry");
707 ReadConnectionlogListInput readinput = new ReadConnectionlogListInputBuilder()
708 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
709 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
710 .setPagination(getPagination(20, 1)).build();
712 ReadConnectionlogListOutputBuilder readResult = null;
714 readResult = dbProvider.readConnectionlogList(readinput);
716 } catch (Exception e) {
717 fail("Connection log not read: " + e.getMessage());
720 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.connectionlog.list.output.Data> data =
721 readResult.getData();
724 assertEquals(1, data.size());
725 assertEquals("Connecting", data.get(0).getStatus().toString());
726 assertEquals("sim2230", data.get(0).getNodeId());
729 // ==UPDATE================================
730 System.out.println("Try update entry");
732 dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
734 // ==READ 2================================
735 System.out.println("Try read updated entry");
737 readinput = new ReadConnectionlogListInputBuilder()
738 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
739 new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
740 .setPagination(getPagination(20, 1)).build();
743 readResult = dbProvider.readConnectionlogList(readinput);
745 } catch (Exception e) {
746 fail("Connection log not read: " + e.getMessage());
749 data = readResult.getData();
752 assertEquals(1, data.size());
753 assertEquals("Connected", data.get(0).getStatus().toString());
754 assertEquals("sim2230", data.get(0).getNodeId());
756 //== DELETE ================================
758 System.out.println("try to clear entry");
760 dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
761 } catch (Exception e) {
762 fail("problem deleting entry: " + e.getMessage());
765 //== VERIFY DELETE ===========================
766 System.out.println("verify entries deleted");
767 readResult = dbProvider.readConnectionlogList(
768 new ReadConnectionlogListInputBuilder().setPagination(getPagination(20, 1)).build());
769 data = readResult.getData();
770 assertEquals(0, data.size());
775 public void testEventLog() {
776 System.out.println("Test event log starting...");
778 // ==CLEAR================================
779 System.out.println("Clear before test");
781 dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
782 } catch (Exception e) {
783 fail("problem deleting: " + e.getMessage());
785 // ==CREATE============================
788 String json = " {\n" + "\"timestamp\": \"2019-11-08T16:39:23.0Z\",\n" + "\"new-value\": \"done\",\n"
789 + "\"object-id\": \"SDN-Controller-0\",\n" + "\"attribute-name\": \"startup\",\n" + "\"counter\": 0,\n"
790 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Eventlog\",\n"
791 + "\"node-id\": \"SDN-Controller-0\"\n" + "}";
793 dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
796 // ==READ===========================
798 ReadEventlogListInput readinput = new ReadEventlogListInputBuilder()
799 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
800 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
801 .setPagination(getPagination(20, 1)).build();
802 ReadEventlogListOutputBuilder readResult = null;
804 readResult = dbProvider.readEventlogList(readinput);
806 } catch (Exception e) {
807 fail("problem reading eventlog");
810 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.eventlog.list.output.Data> data =
811 readResult.getData();
812 assertEquals(1, data.size());
814 //== DELETE ================================
816 System.out.println("try to clear entry");
818 dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
819 } catch (Exception e) {
820 fail("problem deleting entry: " + e.getMessage());
823 //== VERIFY DELETE ===========================
824 System.out.println("verify entries deleted");
826 readResult = dbProvider
827 .readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
828 } catch (IOException e) {
829 fail("problem reading eventlog");
831 data = readResult.getData();
832 assertEquals(0, data.size());
837 public void testInventory() {
839 System.out.println("Test inventory starting...");
841 // ==CLEAR================================
842 System.out.println("Clear before test");
844 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
845 } catch (Exception e) {
846 fail("problem deleting: " + e.getMessage());
850 // ==CREATE============================
853 String json = " {\"tree-level\": 1,\n" + " \"parent-uuid\": \"SHELF-1.1.0.0\",\n"
854 + " \"node-id\": \"sim2\",\n" + " \"uuid\": \"CARD-1.1.8.0\",\n"
855 + " \"contained-holder\": [ ],\n" + " \"manufacturer-name\": \"Lorem Ipsum\",\n"
856 + " \"manufacturer-identifier\": \"ONF-Wireless-Transport\",\n" + " \"serial\": \"sd-dsa-eqw\",\n"
857 + " \"date\": \"2008-10-21T00:00:00.0Z\",\n"
858 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory\",\n"
859 + " \"version\": \"unknown\",\n" + " \"description\": \"WS/DS3\",\n"
860 + " \"part-type-id\": \"unknown\",\n" + " \"model-identifier\": \"model-id-s3s\",\n"
861 + " \"type-name\": \"p4.module\"}";
863 dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
866 // ==READ===========================
867 ReadInventoryListInput readinput = new ReadInventoryListInputBuilder()
868 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
869 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
870 .setPagination(getPagination(20, 1)).build();
871 ReadInventoryListOutputBuilder readResult = null;
873 readResult = dbProvider.readInventoryList(readinput);
875 } catch (Exception e) {
876 fail("Problem reading inventory list" + e.getMessage());
879 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.inventory.list.output.Data> data =
880 readResult.getData();
881 assertEquals(1, data.size());
882 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
883 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
884 assertEquals("sim2", data.get(0).getNodeId());
885 assertEquals("unknown", data.get(0).getVersion());
886 assertEquals("WS/DS3", data.get(0).getDescription());
887 assertEquals("2008-10-21T00:00:00.0Z", data.get(0).getDate());
888 assertEquals("sd-dsa-eqw", data.get(0).getSerial());
889 System.out.println(data.get(0).getDate());
891 // ==UPDATE============================
892 String updatedDbId = null;
893 final String[] holderArray = {"Lorem Ipsum 1", "Lorem Ipsum 2", "Lorem Ipsum &%/$_2"};
894 String updatejson = " {" + " \"node-id\": \"sim5\",\n"
895 + " \"contained-holder\": [ \"Lorem Ipsum 1\", \"Lorem Ipsum 2\", \"Lorem Ipsum &%/$_2\" ],\n"
896 + " \"serial\": \"sd-dsa-eww\",\n" + " \"date\": \"2008-11-21T00:00:00.0Z\",\n"
897 + " \"part-type-id\": \"not unknown\",\n" + "}";
899 updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
900 assertEquals(dbId, updatedDbId);
903 readResult = dbProvider.readInventoryList(readinput);
905 } catch (Exception e) {
906 fail("Problem reading inventory list" + e.getMessage());
909 data = readResult.getData();
911 assertEquals(1, data.size());
912 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
913 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
914 assertEquals("sim5", data.get(0).getNodeId());
915 assertEquals("not unknown", data.get(0).getPartTypeId());
916 assertEquals("WS/DS3", data.get(0).getDescription());
917 assertEquals("2008-11-21T00:00:00.0Z", data.get(0).getDate());
918 assertEquals("sd-dsa-eww", data.get(0).getSerial());
919 assertEquals(holderArray.length, data.get(0).getContainedHolder().size());
920 assertEquals(holderArray[0], data.get(0).getContainedHolder().get(0));
921 assertEquals(holderArray[1], data.get(0).getContainedHolder().get(1));
922 assertEquals(holderArray[2], data.get(0).getContainedHolder().get(2));
924 // ==DELETE============================
926 System.out.println("delete after test");
928 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
929 } catch (Exception e) {
930 fail("problem deleting: " + e.getMessage());
933 // ==VERIFY DELETE ============================
936 readResult = dbProvider.readInventoryList(readinput);
938 } catch (Exception e) {
939 fail("Problem reading inventory list" + e.getMessage());
942 data = readResult.getData();
943 assertEquals(0, data.size());
948 public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
950 System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
953 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
954 } catch (Exception e) {
955 fail("problem deleting: " + e.getMessage());
958 System.out.println("create entries...");
960 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
961 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
963 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
964 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
965 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
966 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
968 System.out.println("trying to read, should throw exception...");
971 ReadPmdata15mLtpListInput readLtp =
972 new ReadPmdata15mLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
974 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
977 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
978 fail("No exception thrown!");
979 } catch (Exception e) {
980 System.out.println(e);
981 assertTrue(e instanceof IllegalArgumentException);
982 assertEquals("no nodename in filter found ", e.getMessage());
985 assertNull(readltpResult);
987 //== DELETE ================================
989 System.out.println("try to clear entry");
991 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
992 } catch (Exception e) {
993 fail("problem deleting entry: " + e.getMessage());
996 //== VERIFY DELETE ===========================
997 System.out.println("verify entries deleted");
998 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data> data =
1001 new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build())
1004 assertEquals(0, data.size());
1008 public void test15MinPerformanceData() {
1009 // == CLEAR BEFORE TESTS ============================
1010 System.out.println("Test 15 min performance...");
1013 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1014 } catch (Exception e) {
1015 fail("problem deleting: " + e.getMessage());
1018 // == CREATE ============================
1020 System.out.println("create entries...");
1022 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1023 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1025 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1026 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1027 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1028 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1030 // == READ ============================
1031 System.out.println("read list entries...");
1033 ReadPmdata15mListInput read = new ReadPmdata15mListInputBuilder()
1034 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1035 new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1036 .setPagination(getPagination(20, 1)).build();
1038 ReadPmdata15mListOutputBuilder readResult = null;
1041 readResult = dbProvider.readPmdata15mList(read);
1042 } catch (Exception e) {
1043 fail("Problem reading 15m data");
1046 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data> data =
1047 readResult.getData();
1049 assertNotNull(data);
1050 assertEquals(2, data.size());
1052 System.out.println("read ltp entries with node name set...");
1054 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
1055 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1056 new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1057 .setPagination(getPagination(20, 1)).build();
1059 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1062 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1063 } catch (Exception e) {
1064 fail("Problem reading 15m ltp data");
1067 List<String> dataLtp = readltpResult.getData();
1069 assertNotNull(dataLtp);
1070 assertEquals(2, dataLtp.size());
1071 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1072 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1074 System.out.println("read device entries...");
1076 ReadPmdata15mDeviceListInput readDevices =
1077 new ReadPmdata15mDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1079 ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
1082 readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
1083 } catch (Exception e) {
1084 fail("Problem reading 15m device data");
1087 List<String> dataDevice = readDeviceResult.getData();
1089 assertNotNull(dataDevice);
1090 assertEquals(2, dataDevice.size());
1091 assertTrue(dataDevice.contains("a2"));
1092 assertTrue(dataDevice.contains("a3"));
1094 //== DELETE ================================
1096 System.out.println("try to clear entry");
1098 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1099 } catch (Exception e) {
1100 fail("problem deleting entry: " + e.getMessage());
1103 //== VERIFY DELETE ===========================
1104 System.out.println("verify entries deleted");
1105 readResult = dbProvider
1106 .readPmdata15mList(new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build());
1107 data = readResult.getData();
1108 assertEquals(0, data.size());
1113 public void test24hPerformanceData() {
1114 System.out.println("Test 24h performance...");
1117 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1118 } catch (Exception e) {
1119 fail("problem deleting: " + e.getMessage());
1122 System.out.println("create entries...");
1123 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1124 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1125 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1126 String aDbId = createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-06", "a2");
1128 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1129 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1130 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1132 System.out.println("read all list entries...");
1134 ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build();
1136 ReadPmdata24hListOutputBuilder readResult = null;
1139 readResult = dbProvider.readPmdata24hList(read);
1140 } catch (Exception e) {
1141 fail("Problem reading 24h data");
1144 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._24h.list.output.Data> data =
1145 readResult.getData();
1147 assertNotNull(data);
1148 assertEquals(6, data.size());
1151 System.out.println("filter list entries...");
1153 read = new ReadPmdata24hListInputBuilder()
1154 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1155 new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1156 .setPagination(getPagination(20, 1)).build();
1161 readResult = dbProvider.readPmdata24hList(read);
1162 } catch (Exception e) {
1163 fail("Problem reading 24h data");
1166 data = readResult.getData();
1168 assertNotNull(data);
1169 assertEquals(3, data.size());
1171 System.out.println("read ltp entries with node name set...");
1173 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1174 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1175 new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1176 .setPagination(getPagination(20, 1)).build();
1178 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1181 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1182 } catch (Exception e) {
1183 fail("Problem reading 24h ltp data");
1186 List<String> dataLtp = readltpResult.getData();
1188 assertNotNull(dataLtp);
1189 assertEquals(3, dataLtp.size());
1190 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1191 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1192 assertTrue(dataLtp.contains("LP-MWPS-TTP-06"));
1195 System.out.println("read device entries...");
1197 ReadPmdata24hDeviceListInput readDevices =
1198 new ReadPmdata24hDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1200 ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
1203 readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
1204 } catch (Exception e) {
1205 fail("Problem reading 24h device data");
1208 List<String> dataDevice = readDeviceResult.getData();
1210 assertNotNull(dataDevice);
1211 assertEquals(2, dataDevice.size());
1212 assertTrue(dataDevice.contains("a2"));
1213 assertTrue(dataDevice.contains("a3"));
1215 // == UPDATE ==============================
1217 boolean success = dbRawProvider.doUpdate(Entity.Historicalperformance24h.getName(),
1218 "{'uuid-interface':'LTP-TEST-MWP-097'}", QueryBuilders.termQuery("_id", aDbId));
1219 assertTrue("update dbentry not succeeded", success);
1221 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1222 } catch (Exception e) {
1223 fail("Problem reading 24h ltp data");
1226 // == VERIFY UPDATE ==============================
1228 dataLtp = readltpResult.getData();
1230 assertNotNull(dataLtp);
1231 assertEquals(3, dataLtp.size());
1232 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1233 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1234 assertTrue(dataLtp.contains("LTP-TEST-MWP-097"));
1238 //== DELETE ===========================
1240 System.out.println("try to clear entries");
1242 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1243 } catch (Exception e) {
1244 fail("problem deleting entry: " + e.getMessage());
1247 //== VERIFY DELETE ===========================
1248 System.out.println("verify entries deleted");
1249 readResult = dbProvider
1250 .readPmdata24hList(new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build());
1251 data = readResult.getData();
1252 assertEquals(0, data.size());
1256 public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
1257 System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
1260 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1261 } catch (Exception e) {
1262 fail("problem deleting: " + e.getMessage());
1265 System.out.println("create entries...");
1267 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1268 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1269 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1271 createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1272 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1273 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1274 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1276 System.out.println("trying to read, should throw exception...");
1279 ReadPmdata24hLtpListInput readLtp =
1280 new ReadPmdata24hLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
1282 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1285 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1286 fail("No exception thrown!");
1287 } catch (Exception e) {
1288 System.out.println(e);
1289 assertTrue(e instanceof IllegalArgumentException);
1290 assertEquals("no nodename in filter found ", e.getMessage());
1293 assertNull(readltpResult);
1296 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1297 } catch (Exception e) {
1298 fail("problem deleting: " + e.getMessage());
1303 public void testUrlEncoding() {
1304 System.out.println("Testing url encding");
1306 final String test = "Lorem Ipsum";
1307 final String test1 = "Lorem/Ipsum";
1308 final String test2 = "Lorem_Ipsum";
1309 final String test3 = "Lorem%Ipsum";
1311 assertEquals("Lorem%20Ipsum", BaseRequest.urlEncodeValue(test));
1312 assertEquals("Lorem%2FIpsum", BaseRequest.urlEncodeValue(test1));
1313 assertEquals("Lorem_Ipsum", BaseRequest.urlEncodeValue(test2));
1314 assertEquals("Lorem%25Ipsum", BaseRequest.urlEncodeValue(test3));
1318 public void testDoUpdateOrCreateWithNullId() {
1319 System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
1321 String dbId = clearAndCreatefaultEntity(null, Entity.Faultlog.getName(),
1322 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultlogInput",
1323 SeverityType.Critical);
1328 public void readTestFaultCurrentViaRawDbProvider() {
1329 System.out.println("Starting faultCurrent test...");
1331 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
1332 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
1333 SeverityType.Critical);
1334 assertEquals("1", dbId);
1336 // ==READ===========================
1337 System.out.println("Trying to read...");
1339 String readResult = null;
1341 readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
1343 } catch (Exception e) {
1344 fail("Fault log not read: " + e.getMessage());
1348 String expectedDbResult =
1349 "{\"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\"}";
1351 System.out.println(readResult);
1352 assertNotNull(readResult);
1353 assertEquals(expectedDbResult, readResult);
1355 SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1356 assertNotNull(searchResult);
1358 List<SearchHit> hits = searchResult.getHits();
1360 assertNotNull(hits);
1361 assertEquals(1, searchResult.getTotal());
1362 assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
1364 //== DELETE ==============================
1366 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
1367 } catch (Exception e) {
1368 fail("problem deleting: " + e.getMessage());
1370 //== VERIFY DELETE ========================
1371 searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1372 hits = searchResult.getHits();
1373 assertNotNull(hits);
1374 assertEquals(0, searchResult.getTotal());
1379 public void testOutputCamelCase() throws ClassNotFoundException {
1381 String jsonString = "{\n" + "\"timestamp\": \"2020-02-20T09:31:22.3Z\",\n"
1382 + "\"object-id\": \"LP-MWPS-RADIO\",\n" + "\"severity\": \"Critical\",\n" + "\"counter\": 10,\n"
1383 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog\",\n"
1384 + "\"source-type\": \"Netconf\",\n" + "\"node-id\": \"sim4\",\n" + "\"problem\": \"signalIsLost\"\n"
1386 DataProviderYangToolsMapper yangtoolsMapper = new DataProviderYangToolsMapper();
1387 Faultlog log = yangtoolsMapper.readValue(jsonString, Faultlog.class);
1388 System.out.println(yangtoolsMapper.writeValueAsString((new FaultlogBuilder(log).build())));
1389 System.out.println("Check3");
1390 } catch (IOException e) {
1391 e.printStackTrace();
1398 public void testUserdata() {
1399 final String USERNAME = "admin";
1400 final String DATA1 = "{\n" + " \"networkMap\":{\n"
1401 + " \"startupPosition\": {\"lat\": 52.5095, \"lon\":13.329, \"zoom\": 10},\n"
1402 + " \"tileOpacity\": 90,\n" + " \"styling\":{\n" + " \"theme\": \"light\"\n"
1403 + " }\n" + " },\n" + " \"dashboard\":{\n" + " \"color\":\"#F00\"\n" + " }\n"
1405 HtUserdataManagerImpl client = new HtUserdataManagerImpl(dbRawProvider);
1406 boolean success = client.setUserdata(USERNAME, DATA1);
1407 assertTrue(success);
1408 String data = client.getUserdata(USERNAME);
1409 //JSONAssert.assertEquals(DATA1,data,false);
1411 assertEquals("admin", UserdataHttpServlet.decodeJWTPayloadUsername(String.format("Bearer %s",
1412 "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbkBzZG4iLCJyb2xlcyI6WyJ1c2VyIiwiYWRtaW4iXSwiaXN"
1413 + "zIjoiT3BlbmRheWxpZ2h0IiwibmFtZSI6ImFkbWluQHNkbiIsImV4cCI6MTYxNTc5NTg1NywiZmFtaWx5X25hbWUiOiIifQ.wB"
1414 + "PdB45_bryU6_kSCu3be3dq3yth24niSXi6b2_1ufc"),
1418 private Pagination getPagination(long pageSize, int page) {
1419 return new PaginationBuilder().setPage(YangHelper2.getBigIntegerOrUint64(BigInteger.valueOf(page)))
1420 .setSize(YangHelper2.getLongOrUint32(pageSize)).build();
1424 private String clearAndCreatefaultEntity(String initialDbId, String entityType, String implementedInterface,
1425 SeverityType severity) {
1426 // ==CLEAR BEFORE TEST============================
1427 System.out.println("try to clear entry");
1429 dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1430 } catch (Exception e) {
1431 fail("problem deleting: " + e.getMessage());
1435 return createFaultEntity(initialDbId, entityType, implementedInterface, severity);
1438 private String createFaultEntity(String initialDbId, String entityType, String implementedInterface,
1439 SeverityType severity) {
1440 // ==CREATE============================
1441 System.out.println("try to create entry");
1446 dbId = dbRawProvider.doUpdateOrCreate(entityType, initialDbId,
1447 "{\n" + "\"timestamp\": \"2019-10-28T11:55:58.3Z\",\n" + "\"object-id\": \"LP-MWPS-RADIO\",\n"
1448 + "\"severity\": \"" + severity.toString() + "\",\n" + "\"node-id\": \"s1\",\n"
1449 + "\"implemented-interface\": \"" + implementedInterface + "\",\n" + "\"counter\": 4340,\n"
1450 + "\"problem\": \"signalIsLost\",\n" + "\"type\": \"ProblemNotificationXml\"\n" + "}");
1454 } catch (Exception e) {
1455 fail("Problem creating fault log entry" + e.getMessage());
1461 private String createPerformanceData(String initialDbId, GranularityPeriodType timeInterval, String scannerId,
1462 String uuidInterface, String nodename) {
1464 String json = "{\n" + "\"node-name\": \"" + nodename + "\",\n" + "\"uuid-interface\": \"" + uuidInterface
1465 + "\",\n" + "\"layer-protocol-name\": \"MWPS\",\n" + "\"radio-signal-id\": \"Test8\",\n"
1466 + "\"time-stamp\": \"2017-03-01T06:15:00.0Z\",\n" + "\"granularity-period\": \""
1467 + timeInterval.toString() + "\",\n" + "\"scanner-id\": \"" + scannerId + "\",\n"
1468 + "\"performance-data\": {\n" + "\"cses\": 0,\n" + "\"ses\": 0,\n" + "\"es\": 0,\n"
1469 + "\"tx-level-max\": 3,\n" + "\"tx-level-avg\": 3,\n" + "\"rx-level-min\": -44,\n"
1470 + "\"rx-level-max\": -45,\n" + "\"rx-level-avg\": -44,\n" + "\"time2-states\": 0,\n"
1471 + "\"time4-states-s\": 0,\n" + "\"time4-states\": 0,\n" + "\"time8-states\": -1,\n"
1472 + "\"time16-states-s\": -1,\n" + "\"time16-states\": 0,\n" + "\"time32-states\": -1,\n"
1473 + "\"time64-states\": 900,\n" + "\"time128-states\": -1,\n" + "\"time256-states\": -1,\n"
1474 + "\"time512-states\": -1,\n" + "\"time512-states-l\": -1,\n" + "\"unavailability\": 0,\n"
1475 + "\"tx-level-min\": 3,\n" + "\"time1024-states\": -1,\n" + "\"time1024-states-l\": -1,\n"
1476 + "\"time2048-states\": -1,\n" + "\"time2048-states-l\": -1,\n" + "\"time4096-states\": -1,\n"
1477 + "\"time4096-states-l\": -1,\n" + "\"time8192-states\": -1,\n" + "\"time8192-states-l\": -1,\n"
1478 + "\"snir-min\": -99,\n" + "\"snir-max\": -99,\n" + "\"snir-avg\": -99,\n" + "\"xpd-min\": -99,\n"
1479 + "\"xpd-max\": -99,\n" + "\"xpd-avg\": -99,\n" + "\"rf-temp-min\": -99,\n" + "\"rf-temp-max\": -99,\n"
1480 + "\"rf-temp-avg\": -99,\n" + "\"defect-blocks-sum\": -1,\n" + "\"time-period\": 900\n" + "},\n"
1481 + "\"suspect-interval-flag\": false\n" + "}";
1483 if (timeInterval.equals(GranularityPeriodType.Period15Min)) {
1484 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
1486 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);