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.database.DatabaseDataProvider;
43 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.elasticsearch.impl.ElasticSearchDataProvider;
44 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.elasticsearch.impl.HtUserdataManagerImpl;
45 import org.onap.ccsdk.features.sdnr.wt.dataprovider.http.UserdataHttpServlet;
46 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.YangHelper2;
47 import org.onap.ccsdk.features.sdnr.wt.dataprovider.test.util.HostInfoForTest;
48 import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.DataProviderYangToolsMapper;
49 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceInput;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceInputBuilder;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceOutputBuilder;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInput;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInputBuilder;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerOutputBuilder;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionInput;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionInputBuilder;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionOutputBuilder;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInput;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInputBuilder;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInput;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInputBuilder;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInput;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInputBuilder;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListInput;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListInputBuilder;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListOutputBuilder;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInput;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInputBuilder;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListOutputBuilder;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInput;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInputBuilder;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListOutputBuilder;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListInput;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListInputBuilder;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListOutputBuilder;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListInput;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListInputBuilder;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListOutputBuilder;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInput;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInputBuilder;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListOutputBuilder;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListInput;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListInputBuilder;
89 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListOutputBuilder;
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInput;
91 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInputBuilder;
92 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListOutputBuilder;
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListInput;
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListInputBuilder;
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListOutputBuilder;
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListInput;
97 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListInputBuilder;
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListOutputBuilder;
99 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListInput;
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListInputBuilder;
101 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListOutputBuilder;
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListInput;
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListInputBuilder;
104 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListOutputBuilder;
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListInput;
106 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListInputBuilder;
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListOutputBuilder;
108 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListInput;
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListInputBuilder;
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListOutputBuilder;
111 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
112 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInput;
113 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInputBuilder;
114 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceOutputBuilder;
115 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInput;
116 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInputBuilder;
117 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerOutputBuilder;
118 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInput;
119 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInputBuilder;
120 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionOutputBuilder;
121 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder;
122 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterKey;
123 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Pagination;
124 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.PaginationBuilder;
125 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.mediator.server.list.output.Data;
127 public class TestCRUDforDatabase {
129 private static DatabaseDataProvider dbProvider;
130 private static HtDatabaseClient dbRawProvider;
133 public static void init() throws Exception {
135 HostInfo[] hosts = HostInfoForTest.get();
136 dbProvider = new ElasticSearchDataProvider(hosts);
137 dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
138 dbRawProvider = HtDatabaseClient.getClient(hosts);
141 public static void trySleep(long ms) {
144 } catch (Exception e) {
145 Thread.currentThread().interrupt();
149 public static void trySleep() {
154 public void testStatus() throws IOException {
156 //== CLEAR AND CREATE ================================
157 clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
158 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
159 SeverityType.Critical);
160 createFaultEntity("Lorem Ipsum", Entity.Faultcurrent.getName(),
161 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
163 createFaultEntity("3", Entity.Faultcurrent.getName(),
164 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
166 createFaultEntity("4", Entity.Faultcurrent.getName(),
167 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
168 SeverityType.Warning);
170 //== READ ================================
172 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.status.output.Data> readOutput =
173 dbProvider.readStatus().getData();
174 System.out.println(readOutput);
176 assertEquals(1, readOutput.get(0).getFaults().getMajors().intValue());
177 assertEquals(1, readOutput.get(0).getFaults().getMinors().intValue());
178 assertEquals(1, readOutput.get(0).getFaults().getWarnings().intValue());
179 assertEquals(1, readOutput.get(0).getFaults().getCriticals().intValue());
181 //== DELETE ================================
183 System.out.println("try to delete entries");
185 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
186 } catch (Exception e) {
187 fail("problem deleting entry: " + e.getMessage());
190 //== VERIFY DELETE ===========================
191 System.out.println("verify entries were deleted");
192 readOutput = dbProvider.readStatus().getData();
193 assertEquals(0, readOutput.get(0).getFaults().getMajors().intValue());
194 assertEquals(0, readOutput.get(0).getFaults().getMinors().intValue());
195 assertEquals(0, readOutput.get(0).getFaults().getWarnings().intValue());
196 assertEquals(0, readOutput.get(0).getFaults().getCriticals().intValue());
200 public void testMediatorServer() {
201 final String NAME = "ms1";
202 final String URL = "http://11.23.45.55:4599";
203 final String NAME2 = "ms1-nu";
204 final String URL2 = "http://11.23.45.56:4599";
206 // ==CLEAR BEFORE TEST============================
207 System.out.println("try to clear entry");
209 dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
210 } catch (Exception e) {
211 fail("problem deleting entry: " + e.getMessage());
214 // ==CREATE============================
215 System.out.println("try to create entry");
216 CreateMediatorServerOutputBuilder createOutput = null;
217 CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
221 createOutput = dbProvider.createMediatorServer(input);
222 dbId = createOutput.getId();
223 System.out.println(createOutput);
224 } catch (Exception e) {
225 fail("failed to create " + input.toString() + ":" + e.getMessage());
227 assertNotNull(createOutput);
230 // ==READ===========================
231 System.out.println("try to read entry");
232 ReadMediatorServerListInput readinput = new ReadMediatorServerListInputBuilder()
233 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
234 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
235 .setPagination(getPagination(20, 1)).build();
236 ReadMediatorServerListOutputBuilder readoutput = dbProvider.readMediatorServerList(readinput);
237 List<Data> data = readoutput.getData();
239 assertEquals("no entry found", 1, data.size());
240 assertEquals(NAME, data.get(0).getName());
241 assertEquals(URL, data.get(0).getUrl());
242 String dbId2 = data.get(0).getId();
243 assertEquals(dbId, dbId2);
244 System.out.println(data);
245 // ==UPDATE============================
246 System.out.println("try to update entry");
247 UpdateMediatorServerInput updateInput =
248 new UpdateMediatorServerInputBuilder().setId(dbId2).setName(NAME2).setUrl(URL2).build();
249 UpdateMediatorServerOutputBuilder updateOutput = null;
251 updateOutput = dbProvider.updateMediatorServer(updateInput);
252 System.out.println(updateOutput);
253 } catch (Exception e) {
254 fail("problem updating entry:" + e.getMessage());
256 assertNotNull(updateOutput);
258 // ==READ============================
259 System.out.println("try to read entry");
260 readinput = new ReadMediatorServerListInputBuilder()
261 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
262 new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
263 .setPagination(getPagination(20, 1)).build();
264 readoutput = dbProvider.readMediatorServerList(readinput);
265 data = readoutput.getData();
266 System.out.println(data);
267 assertNotNull("no update response", data);
268 assertEquals("update not verifiied", 1, data.size());
269 assertEquals("update not verifiied", NAME2, data.get(0).getName());
270 assertEquals("update not verifiied", URL2, data.get(0).getUrl());
271 assertEquals("update not verifiied", dbId, data.get(0).getId());
272 // ==DELETE============================
273 System.out.println("try to delete entry");
274 DeleteMediatorServerInput deleteInput = new DeleteMediatorServerInputBuilder().setId(dbId).build();
276 dbProvider.deleteMediatorServer(deleteInput);
277 } catch (Exception e) {
278 fail("problem deleting entry: " + e.getMessage());
282 // ==READ/VERIFY DELETE============================
283 System.out.println("try to read entry");
284 readinput = new ReadMediatorServerListInputBuilder()
285 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
286 new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
287 .setPagination(getPagination(20, 1)).build();
288 readoutput = dbProvider.readMediatorServerList(readinput);
289 data = readoutput.getData();
290 assertNotNull("delete not verifiied", data);
291 assertEquals("delete not verifiied", 0, data.size());
295 public void testNetworkElementConnectionCurrent() {
297 System.out.println("networkElementConnection test start");
299 // ==CLEAR BEFORE TEST============================
300 System.out.println("try to clear entry");
302 dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
303 } catch (Exception e) {
304 fail("problem deleting entry: " + e.getMessage());
307 // ==CREATE============================
308 System.out.println("try to create");
309 final String name = "sim87";
310 final String url = "10.5.10.1";
311 final long port = 5959;
313 CreateNetworkElementConnectionOutputBuilder create = null;
314 CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
315 .setIsRequired(true).setHost(url).setPort(YangHelper2.getLongOrUint32(port)).build();
319 create = dbProvider.createNetworkElementConnection(input);
320 dbId = create.getId();
321 } catch (Exception e) {
322 fail("networkElementConnection create failed" + e.getMessage());
326 assertNotNull(create);
328 // ==READ===========================
330 ReadNetworkElementConnectionListInput readInput = new ReadNetworkElementConnectionListInputBuilder()
331 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
332 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
333 .setPagination(getPagination(20, 1)).build();
335 ReadNetworkElementConnectionListOutputBuilder readOperation =
336 dbProvider.readNetworkElementConnectionList(readInput);
337 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.network.element.connection.list.output.Data> data =
338 readOperation.getData();
341 assertEquals(dbId, data.get(0).getId());
342 assertEquals(name, data.get(0).getNodeId());
343 assertEquals(url, data.get(0).getHost());
344 assertEquals(port, data.get(0).getPort().longValue());
346 // ==UPDATE============================
347 System.out.println("Trying to update...");
348 final String url2 = "10.5.10.2";
349 final long port2 = 5960;
351 UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId)
352 .setHost(url2).setPort(YangHelper2.getLongOrUint32(port2)).setIsRequired(false).build();
353 UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
355 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
356 } catch (Exception e) {
357 fail("update failed: " + e.getMessage());
360 assertNotNull(updateOutput);
362 // == Verify UPDATE============================
363 System.out.println("Verfiying update...");
365 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
366 data = readOperation.getData();
369 assertEquals(url2, data.get(0).getHost());
370 assertEquals(port2, data.get(0).getPort().longValue());
372 // ==PARTIAL UPDATE============================
373 System.out.println("Try partial update...");
374 assertEquals(false, data.get(0).isIsRequired());
375 updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build();
377 updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
378 } catch (Exception e) {
379 fail("update failed: " + e.getMessage());
382 assertNotNull(updateOutput);
384 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
385 data = readOperation.getData();
387 assertEquals(true, data.get(0).isIsRequired());
388 assertEquals(url2, data.get(0).getHost());
389 assertEquals(port2, data.get(0).getPort().longValue());
391 // ==DELETE============================
392 System.out.println("Try delete...");
394 DeleteNetworkElementConnectionInput deleteInput =
395 new DeleteNetworkElementConnectionInputBuilder().setId(dbId).build();
397 dbProvider.deleteNetworkElementConnection(deleteInput);
398 } catch (Exception e) {
399 fail("problem deleting " + e.getMessage());
402 readInput = new ReadNetworkElementConnectionListInputBuilder()
403 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
404 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
405 .setPagination(getPagination(20, 1)).build();
406 readOperation = dbProvider.readNetworkElementConnectionList(readInput);
407 data = readOperation.getData();
408 assertEquals(0, data.size());
413 public void testMaintenance() {
414 System.out.println("Starting Maintenance tests...");
416 // ==CLEAR BEFORE TEST============================
417 System.out.println("try to clear entry");
419 dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
420 } catch (Exception e) {
421 fail("problem deleting entry: " + e.getMessage());
424 // ==CREATE============================
426 final String nodeId = "Lorem Ipsum";
427 final boolean isActive = true;
429 CreateMaintenanceOutputBuilder create = null;
430 CreateMaintenanceInput input =
431 new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive).build();
434 create = dbProvider.createMaintenance(input);
435 dbId = create.getId();
436 } catch (Exception e) {
437 fail("Failed to create:" + e.getMessage());
440 System.out.println(dbId);
441 assertNotNull(create);
444 // ==READ===========================
445 System.out.println("Try read...");
447 ReadMaintenanceListInput readinput = new ReadMaintenanceListInputBuilder()
448 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
449 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
450 .setPagination(getPagination(20, 1)).build();
451 ReadMaintenanceListOutputBuilder readResult = dbProvider.readMaintenanceList(readinput);
452 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.maintenance.list.output.Data> data =
453 readResult.getData();
455 assertNotEquals(0, data.size());
457 assertEquals(nodeId, data.get(0).getNodeId());
458 assertEquals(isActive, data.get(0).isActive());
460 // ==UPDATE============================
462 System.out.println("Trying to update...");
463 final String nodeId2 = "Name2";
464 final boolean isActive2 = false;
466 UpdateMaintenanceInput updateInput =
467 new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2).setActive(isActive2).build();
468 UpdateMaintenanceOutputBuilder updateResult = null;
470 updateResult = dbProvider.updateMaintenance(updateInput);
471 } catch (Exception e) {
472 fail("maintenance update failed..." + e.getMessage());
475 assertNotNull(updateResult);
477 // == VERIFY UPDATE============================
478 System.out.println("Verfify update...");
479 readResult = dbProvider.readMaintenanceList(readinput);
480 data = readResult.getData();
483 assertEquals(nodeId2, data.get(0).getNodeId());
484 assertEquals(isActive2, data.get(0).isActive());
486 // ==DELETE================================
487 System.out.println("Trying to delete...");
489 DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
491 dbProvider.deleteMaintenance(deleteInput);
492 } catch (Exception e) {
493 fail("Maintenance entry couldn't be deleted" + e.getMessage());
496 readResult = dbProvider.readMaintenanceList(readinput);
497 data = readResult.getData();
499 assertEquals(0, data.size());
503 public void testFaultLog() {
505 System.out.println("Starting fault log tests...");
506 String dbId = clearAndCreatefaultEntity("1", Entity.Faultlog.getName(),
507 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultlogInput",
508 SeverityType.Critical);
510 // ==READ===========================
511 System.out.println("try to read entry");
513 ReadFaultlogListInput readinput = new ReadFaultlogListInputBuilder()
514 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
515 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
516 .setPagination(getPagination(20, 1)).build();
518 ReadFaultlogListOutputBuilder readResult = null;
520 readResult = dbProvider.readFaultLogList(readinput);
522 } catch (Exception e) {
523 fail("Fault log not read: " + e.getMessage());
526 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultlog.list.output.Data> data =
527 readResult.getData();
530 assertEquals(1, data.size());
531 assertEquals("signalIsLost", data.get(0).getProblem());
532 assertEquals("Critical", data.get(0).getSeverity().toString());
533 assertEquals("s1", data.get(0).getNodeId());
535 //== UPDATE ================================
536 System.out.println("try to update entry");
538 dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1",
539 "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
541 System.out.println("try to search entry 1");
542 readinput = new ReadFaultlogListInputBuilder()
543 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
544 new FilterBuilder().setProperty("node-id").setFiltervalue("test").build()))
545 .setPagination(getPagination(20, 1)).build();
547 //== VERIFY UPDATE ================================
548 readResult = dbProvider.readFaultLogList(readinput);
549 data = readResult.getData();
553 System.out.println(data);
554 assertEquals(0, data.size());
556 System.out.println("try to search entry 2");
558 readinput = new ReadFaultlogListInputBuilder()
559 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
560 new FilterBuilder().setProperty("node-id").setFiltervalue("test*").build()))
561 .setPagination(getPagination(20, 1)).build();
563 readResult = dbProvider.readFaultLogList(readinput);
564 data = readResult.getData();
568 assertEquals(1, data.size());
569 assertEquals("CableLOS", data.get(0).getProblem());
570 assertEquals("Major", data.get(0).getSeverity().toString());
571 assertEquals("test4657-78", data.get(0).getNodeId());
573 //== DELETE ================================
575 System.out.println("try to clear entry");
577 dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
578 } catch (Exception e) {
579 fail("problem deleting entry: " + e.getMessage());
582 //== VERIFY DELETE ===========================
583 System.out.println("verify entries deleted");
584 readResult = dbProvider
585 .readFaultLogList(new ReadFaultlogListInputBuilder().setPagination(getPagination(20, 1)).build());
586 data = readResult.getData();
587 assertEquals(0, data.size());
591 public void testFaultCurrent() {
592 System.out.println("Starting faultCurrent test...");
594 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
595 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
596 SeverityType.NonAlarmed);
597 assertEquals("1", dbId);
599 // ==READ===========================
600 System.out.println("Trying to read...");
603 ReadFaultcurrentListInput readinput = new ReadFaultcurrentListInputBuilder()
604 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
605 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
606 .setPagination(getPagination(20, 1)).build();
608 ReadFaultcurrentListOutputBuilder readResult = null;
610 readResult = dbProvider.readFaultCurrentList(readinput);
612 } catch (Exception e) {
613 fail("Fault log not read: " + e.getMessage());
616 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultcurrent.list.output.Data> data =
617 readResult.getData();
621 assertEquals(1, data.size());
622 assertEquals("signalIsLost", data.get(0).getProblem());
623 assertEquals("NonAlarmed", data.get(0).getSeverity().toString());
624 assertEquals("s1", data.get(0).getNodeId());
625 assertEquals(4340, data.get(0).getCounter().intValue());
626 assertEquals(new DateAndTime("2019-10-28T11:55:58.3Z"), data.get(0).getTimestamp());
627 assertEquals(4340, data.get(0).getCounter().intValue());
628 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
631 // ==UPDATE============================
632 System.out.println("Trying to update...");
634 String json = "{\n" + "\"timestamp\": \"2019-12-28T11:55:58.3Z\",\n" + "\"node-id\": \"SDN-Controller-0\",\n"
635 + "\"counter\": 75,\n" + "\"problem\": \"connectionLossNeOAM\",\n" + "}";
637 String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
638 assertEquals(dbId, updatedDbId);
640 // ==READ============================
643 readResult = dbProvider.readFaultCurrentList(readinput);
645 } catch (Exception e) {
646 fail("Fault log not read: " + e.getMessage());
649 data = readResult.getData();
652 assertEquals(1, data.size());
653 assertEquals("connectionLossNeOAM", data.get(0).getProblem());
654 assertEquals("SDN-Controller-0", data.get(0).getNodeId());
655 assertEquals(75, data.get(0).getCounter().intValue());
656 assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
658 // ==DELETE============================
660 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
661 } catch (Exception e) {
662 fail("problem deleting: " + e.getMessage());
665 // ==READ/VERIFY DELETE============================
668 readResult = dbProvider.readFaultCurrentList(readinput);
670 } catch (Exception e) {
671 fail("Fault log not read: " + e.getMessage());
674 data = readResult.getData();
677 assertEquals(0, data.size());
681 public void testConnectionLog() {
683 // ==CLEAR================================
684 System.out.println("Clear before test");
686 dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
687 } catch (Exception e) {
688 fail("problem deleting: " + e.getMessage());
691 // ==CREATE================================
693 System.out.println("Try create entry");
694 final String initialDbId = "1";
696 String json = "{\n" + "\"timestamp\": \"2019-11-01T11:28:34.7Z\",\n" + "\"status\": \"Connecting\",\n"
697 + "\"node-id\": \"sim2230\",\n"
698 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateConnectionlogInput\"\n"
701 dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
703 assertEquals(initialDbId, dbId);
705 // ==READ================================
706 System.out.println("Try read entry");
708 ReadConnectionlogListInput readinput = new ReadConnectionlogListInputBuilder()
709 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
710 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
711 .setPagination(getPagination(20, 1)).build();
713 ReadConnectionlogListOutputBuilder readResult = null;
715 readResult = dbProvider.readConnectionlogList(readinput);
717 } catch (Exception e) {
718 fail("Connection log not read: " + e.getMessage());
721 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.connectionlog.list.output.Data> data =
722 readResult.getData();
725 assertEquals(1, data.size());
726 assertEquals("Connecting", data.get(0).getStatus().toString());
727 assertEquals("sim2230", data.get(0).getNodeId());
730 // ==UPDATE================================
731 System.out.println("Try update entry");
733 dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
735 // ==READ 2================================
736 System.out.println("Try read updated entry");
738 readinput = new ReadConnectionlogListInputBuilder()
739 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
740 new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
741 .setPagination(getPagination(20, 1)).build();
744 readResult = dbProvider.readConnectionlogList(readinput);
746 } catch (Exception e) {
747 fail("Connection log not read: " + e.getMessage());
750 data = readResult.getData();
753 assertEquals(1, data.size());
754 assertEquals("Connected", data.get(0).getStatus().toString());
755 assertEquals("sim2230", data.get(0).getNodeId());
757 //== DELETE ================================
759 System.out.println("try to clear entry");
761 dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
762 } catch (Exception e) {
763 fail("problem deleting entry: " + e.getMessage());
766 //== VERIFY DELETE ===========================
767 System.out.println("verify entries deleted");
768 readResult = dbProvider.readConnectionlogList(
769 new ReadConnectionlogListInputBuilder().setPagination(getPagination(20, 1)).build());
770 data = readResult.getData();
771 assertEquals(0, data.size());
776 public void testEventLog() {
777 System.out.println("Test event log starting...");
779 // ==CLEAR================================
780 System.out.println("Clear before test");
782 dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
783 } catch (Exception e) {
784 fail("problem deleting: " + e.getMessage());
786 // ==CREATE============================
789 String json = " {\n" + "\"timestamp\": \"2019-11-08T16:39:23.0Z\",\n" + "\"new-value\": \"done\",\n"
790 + "\"object-id\": \"SDN-Controller-0\",\n" + "\"attribute-name\": \"startup\",\n" + "\"counter\": 0,\n"
791 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Eventlog\",\n"
792 + "\"node-id\": \"SDN-Controller-0\"\n" + "}";
794 dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
797 // ==READ===========================
799 ReadEventlogListInput readinput = new ReadEventlogListInputBuilder()
800 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
801 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
802 .setPagination(getPagination(20, 1)).build();
803 ReadEventlogListOutputBuilder readResult = null;
805 readResult = dbProvider.readEventlogList(readinput);
807 } catch (Exception e) {
808 fail("problem reading eventlog");
811 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.eventlog.list.output.Data> data =
812 readResult.getData();
813 assertEquals(1, data.size());
815 //== DELETE ================================
817 System.out.println("try to clear entry");
819 dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
820 } catch (Exception e) {
821 fail("problem deleting entry: " + e.getMessage());
824 //== VERIFY DELETE ===========================
825 System.out.println("verify entries deleted");
827 readResult = dbProvider
828 .readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
829 } catch (IOException e) {
830 fail("problem reading eventlog");
832 data = readResult.getData();
833 assertEquals(0, data.size());
838 public void testInventory() {
840 System.out.println("Test inventory starting...");
842 // ==CLEAR================================
843 System.out.println("Clear before test");
845 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
846 } catch (Exception e) {
847 fail("problem deleting: " + e.getMessage());
851 // ==CREATE============================
854 String json = " {\"tree-level\": 1,\n" + " \"parent-uuid\": \"SHELF-1.1.0.0\",\n"
855 + " \"node-id\": \"sim2\",\n" + " \"uuid\": \"CARD-1.1.8.0\",\n"
856 + " \"contained-holder\": [ ],\n" + " \"manufacturer-name\": \"Lorem Ipsum\",\n"
857 + " \"manufacturer-identifier\": \"ONF-Wireless-Transport\",\n" + " \"serial\": \"sd-dsa-eqw\",\n"
858 + " \"date\": \"2008-10-21T00:00:00.0Z\",\n"
859 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory\",\n"
860 + " \"version\": \"unknown\",\n" + " \"description\": \"WS/DS3\",\n"
861 + " \"part-type-id\": \"unknown\",\n" + " \"model-identifier\": \"model-id-s3s\",\n"
862 + " \"type-name\": \"p4.module\"}";
864 dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
867 // ==READ===========================
868 ReadInventoryListInput readinput = new ReadInventoryListInputBuilder()
869 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
870 new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
871 .setPagination(getPagination(20, 1)).build();
872 ReadInventoryListOutputBuilder readResult = null;
874 readResult = dbProvider.readInventoryList(readinput);
876 } catch (Exception e) {
877 fail("Problem reading inventory list" + e.getMessage());
880 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.inventory.list.output.Data> data =
881 readResult.getData();
882 assertEquals(1, data.size());
883 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
884 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
885 assertEquals("sim2", data.get(0).getNodeId());
886 assertEquals("unknown", data.get(0).getVersion());
887 assertEquals("WS/DS3", data.get(0).getDescription());
888 assertEquals("2008-10-21T00:00:00.0Z", data.get(0).getDate());
889 assertEquals("sd-dsa-eqw", data.get(0).getSerial());
890 System.out.println(data.get(0).getDate());
892 // ==UPDATE============================
893 String updatedDbId = null;
894 final String[] holderArray = {"Lorem Ipsum 1", "Lorem Ipsum 2", "Lorem Ipsum &%/$_2"};
895 String updatejson = " {" + " \"node-id\": \"sim5\",\n"
896 + " \"contained-holder\": [ \"Lorem Ipsum 1\", \"Lorem Ipsum 2\", \"Lorem Ipsum &%/$_2\" ],\n"
897 + " \"serial\": \"sd-dsa-eww\",\n" + " \"date\": \"2008-11-21T00:00:00.0Z\",\n"
898 + " \"part-type-id\": \"not unknown\",\n" + "}";
900 updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
901 assertEquals(dbId, updatedDbId);
904 readResult = dbProvider.readInventoryList(readinput);
906 } catch (Exception e) {
907 fail("Problem reading inventory list" + e.getMessage());
910 data = readResult.getData();
912 assertEquals(1, data.size());
913 assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
914 assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
915 assertEquals("sim5", data.get(0).getNodeId());
916 assertEquals("not unknown", data.get(0).getPartTypeId());
917 assertEquals("WS/DS3", data.get(0).getDescription());
918 assertEquals("2008-11-21T00:00:00.0Z", data.get(0).getDate());
919 assertEquals("sd-dsa-eww", data.get(0).getSerial());
920 assertEquals(holderArray.length, data.get(0).getContainedHolder().size());
921 assertEquals(holderArray[0], data.get(0).getContainedHolder().get(0));
922 assertEquals(holderArray[1], data.get(0).getContainedHolder().get(1));
923 assertEquals(holderArray[2], data.get(0).getContainedHolder().get(2));
925 // ==DELETE============================
927 System.out.println("delete after test");
929 dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
930 } catch (Exception e) {
931 fail("problem deleting: " + e.getMessage());
934 // ==VERIFY DELETE ============================
937 readResult = dbProvider.readInventoryList(readinput);
939 } catch (Exception e) {
940 fail("Problem reading inventory list" + e.getMessage());
943 data = readResult.getData();
944 assertEquals(0, data.size());
949 public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
951 System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
954 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
955 } catch (Exception e) {
956 fail("problem deleting: " + e.getMessage());
959 System.out.println("create entries...");
961 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
962 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
964 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
965 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
966 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
967 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
969 System.out.println("trying to read, should throw exception...");
972 ReadPmdata15mLtpListInput readLtp =
973 new ReadPmdata15mLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
975 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
978 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
979 fail("No exception thrown!");
980 } catch (Exception e) {
981 System.out.println(e);
982 assertTrue(e instanceof IllegalArgumentException);
983 assertEquals("no nodename in filter found ", e.getMessage());
986 assertNull(readltpResult);
988 //== DELETE ================================
990 System.out.println("try to clear entry");
992 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
993 } catch (Exception e) {
994 fail("problem deleting entry: " + e.getMessage());
997 //== VERIFY DELETE ===========================
998 System.out.println("verify entries deleted");
999 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data> data =
1002 new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build())
1005 assertEquals(0, data.size());
1009 public void test15MinPerformanceData() {
1010 // == CLEAR BEFORE TESTS ============================
1011 System.out.println("Test 15 min performance...");
1014 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1015 } catch (Exception e) {
1016 fail("problem deleting: " + e.getMessage());
1019 // == CREATE ============================
1021 System.out.println("create entries...");
1023 createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1024 createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1026 createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1027 createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1028 createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1029 createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1031 // == READ ============================
1032 System.out.println("read list entries...");
1034 ReadPmdata15mListInput read = new ReadPmdata15mListInputBuilder()
1035 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1036 new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1037 .setPagination(getPagination(20, 1)).build();
1039 ReadPmdata15mListOutputBuilder readResult = null;
1042 readResult = dbProvider.readPmdata15mList(read);
1043 } catch (Exception e) {
1044 fail("Problem reading 15m data");
1047 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data> data =
1048 readResult.getData();
1050 assertNotNull(data);
1051 assertEquals(2, data.size());
1053 System.out.println("read ltp entries with node name set...");
1055 ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
1056 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1057 new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1058 .setPagination(getPagination(20, 1)).build();
1060 ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1063 readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1064 } catch (Exception e) {
1065 fail("Problem reading 15m ltp data");
1068 List<String> dataLtp = readltpResult.getData();
1070 assertNotNull(dataLtp);
1071 assertEquals(2, dataLtp.size());
1072 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1073 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1075 System.out.println("read device entries...");
1077 ReadPmdata15mDeviceListInput readDevices =
1078 new ReadPmdata15mDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1080 ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
1083 readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
1084 } catch (Exception e) {
1085 fail("Problem reading 15m device data");
1088 List<String> dataDevice = readDeviceResult.getData();
1090 assertNotNull(dataDevice);
1091 assertEquals(2, dataDevice.size());
1092 assertTrue(dataDevice.contains("a2"));
1093 assertTrue(dataDevice.contains("a3"));
1095 //== DELETE ================================
1097 System.out.println("try to clear entry");
1099 dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1100 } catch (Exception e) {
1101 fail("problem deleting entry: " + e.getMessage());
1104 //== VERIFY DELETE ===========================
1105 System.out.println("verify entries deleted");
1106 readResult = dbProvider
1107 .readPmdata15mList(new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build());
1108 data = readResult.getData();
1109 assertEquals(0, data.size());
1114 public void test24hPerformanceData() {
1115 System.out.println("Test 24h performance...");
1118 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1119 } catch (Exception e) {
1120 fail("problem deleting: " + e.getMessage());
1123 System.out.println("create entries...");
1124 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1125 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1126 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1127 String aDbId = createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-06", "a2");
1129 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1130 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1131 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1133 System.out.println("read all list entries...");
1135 ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build();
1137 ReadPmdata24hListOutputBuilder readResult = null;
1140 readResult = dbProvider.readPmdata24hList(read);
1141 } catch (Exception e) {
1142 fail("Problem reading 24h data");
1145 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._24h.list.output.Data> data =
1146 readResult.getData();
1148 assertNotNull(data);
1149 assertEquals(6, data.size());
1152 System.out.println("filter list entries...");
1154 read = new ReadPmdata24hListInputBuilder()
1155 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1156 new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1157 .setPagination(getPagination(20, 1)).build();
1162 readResult = dbProvider.readPmdata24hList(read);
1163 } catch (Exception e) {
1164 fail("Problem reading 24h data");
1167 data = readResult.getData();
1169 assertNotNull(data);
1170 assertEquals(3, data.size());
1172 System.out.println("read ltp entries with node name set...");
1174 ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1175 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1176 new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1177 .setPagination(getPagination(20, 1)).build();
1179 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1182 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1183 } catch (Exception e) {
1184 fail("Problem reading 24h ltp data");
1187 List<String> dataLtp = readltpResult.getData();
1189 assertNotNull(dataLtp);
1190 assertEquals(3, dataLtp.size());
1191 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1192 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1193 assertTrue(dataLtp.contains("LP-MWPS-TTP-06"));
1196 System.out.println("read device entries...");
1198 ReadPmdata24hDeviceListInput readDevices =
1199 new ReadPmdata24hDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1201 ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
1204 readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
1205 } catch (Exception e) {
1206 fail("Problem reading 24h device data");
1209 List<String> dataDevice = readDeviceResult.getData();
1211 assertNotNull(dataDevice);
1212 assertEquals(2, dataDevice.size());
1213 assertTrue(dataDevice.contains("a2"));
1214 assertTrue(dataDevice.contains("a3"));
1216 // == UPDATE ==============================
1218 boolean success = dbRawProvider.doUpdate(Entity.Historicalperformance24h.getName(),
1219 "{'uuid-interface':'LTP-TEST-MWP-097'}", QueryBuilders.termQuery("_id", aDbId));
1220 assertTrue("update dbentry not succeeded", success);
1222 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1223 } catch (Exception e) {
1224 fail("Problem reading 24h ltp data");
1227 // == VERIFY UPDATE ==============================
1229 dataLtp = readltpResult.getData();
1231 assertNotNull(dataLtp);
1232 assertEquals(3, dataLtp.size());
1233 assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1234 assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1235 assertTrue(dataLtp.contains("LTP-TEST-MWP-097"));
1239 //== DELETE ===========================
1241 System.out.println("try to clear entries");
1243 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1244 } catch (Exception e) {
1245 fail("problem deleting entry: " + e.getMessage());
1248 //== VERIFY DELETE ===========================
1249 System.out.println("verify entries deleted");
1250 readResult = dbProvider
1251 .readPmdata24hList(new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build());
1252 data = readResult.getData();
1253 assertEquals(0, data.size());
1257 public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
1258 System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
1261 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1262 } catch (Exception e) {
1263 fail("problem deleting: " + e.getMessage());
1266 System.out.println("create entries...");
1268 GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1269 createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1270 createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1272 createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1273 createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1274 createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1275 createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1277 System.out.println("trying to read, should throw exception...");
1280 ReadPmdata24hLtpListInput readLtp =
1281 new ReadPmdata24hLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
1283 ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1286 readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1287 fail("No exception thrown!");
1288 } catch (Exception e) {
1289 System.out.println(e);
1290 assertTrue(e instanceof IllegalArgumentException);
1291 assertEquals("no nodename in filter found ", e.getMessage());
1294 assertNull(readltpResult);
1297 dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1298 } catch (Exception e) {
1299 fail("problem deleting: " + e.getMessage());
1304 public void testUrlEncoding() {
1305 System.out.println("Testing url encding");
1307 final String test = "Lorem Ipsum";
1308 final String test1 = "Lorem/Ipsum";
1309 final String test2 = "Lorem_Ipsum";
1310 final String test3 = "Lorem%Ipsum";
1312 assertEquals("Lorem%20Ipsum", BaseRequest.urlEncodeValue(test));
1313 assertEquals("Lorem%2FIpsum", BaseRequest.urlEncodeValue(test1));
1314 assertEquals("Lorem_Ipsum", BaseRequest.urlEncodeValue(test2));
1315 assertEquals("Lorem%25Ipsum", BaseRequest.urlEncodeValue(test3));
1319 public void testDoUpdateOrCreateWithNullId() {
1320 System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
1322 String dbId = clearAndCreatefaultEntity(null, Entity.Faultlog.getName(),
1323 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultlogInput",
1324 SeverityType.Critical);
1329 public void readTestFaultCurrentViaRawDbProvider() {
1330 System.out.println("Starting faultCurrent test...");
1332 dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
1333 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
1334 SeverityType.Critical);
1335 assertEquals("1", dbId);
1337 // ==READ===========================
1338 System.out.println("Trying to read...");
1340 String readResult = null;
1342 readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
1344 } catch (Exception e) {
1345 fail("Fault log not read: " + e.getMessage());
1349 String expectedDbResult =
1350 "{\"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\"}";
1352 System.out.println(readResult);
1353 assertNotNull(readResult);
1354 assertEquals(expectedDbResult, readResult);
1356 SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1357 assertNotNull(searchResult);
1359 List<SearchHit> hits = searchResult.getHits();
1361 assertNotNull(hits);
1362 assertEquals(1, searchResult.getTotal());
1363 assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
1365 //== DELETE ==============================
1367 dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
1368 } catch (Exception e) {
1369 fail("problem deleting: " + e.getMessage());
1371 //== VERIFY DELETE ========================
1372 searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1373 hits = searchResult.getHits();
1374 assertNotNull(hits);
1375 assertEquals(0, searchResult.getTotal());
1380 public void testOutputCamelCase() throws ClassNotFoundException {
1382 String jsonString = "{\n" + "\"timestamp\": \"2020-02-20T09:31:22.3Z\",\n"
1383 + "\"object-id\": \"LP-MWPS-RADIO\",\n" + "\"severity\": \"Critical\",\n" + "\"counter\": 10,\n"
1384 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog\",\n"
1385 + "\"source-type\": \"Netconf\",\n" + "\"node-id\": \"sim4\",\n" + "\"problem\": \"signalIsLost\"\n"
1387 DataProviderYangToolsMapper yangtoolsMapper = new DataProviderYangToolsMapper();
1388 Faultlog log = yangtoolsMapper.readValue(jsonString, Faultlog.class);
1389 System.out.println(yangtoolsMapper.writeValueAsString((new FaultlogBuilder(log).build())));
1390 System.out.println("Check3");
1391 } catch (IOException e) {
1392 e.printStackTrace();
1399 public void testUserdata() {
1400 final String USERNAME = "admin";
1401 final String DATA1 = "{\n" + " \"networkMap\":{\n"
1402 + " \"startupPosition\": {\"lat\": 52.5095, \"lon\":13.329, \"zoom\": 10},\n"
1403 + " \"tileOpacity\": 90,\n" + " \"styling\":{\n" + " \"theme\": \"light\"\n"
1404 + " }\n" + " },\n" + " \"dashboard\":{\n" + " \"color\":\"#F00\"\n" + " }\n"
1406 HtUserdataManagerImpl client = new HtUserdataManagerImpl(dbRawProvider);
1407 boolean success = client.setUserdata(USERNAME, DATA1);
1408 assertTrue(success);
1409 String data = client.getUserdata(USERNAME);
1410 //JSONAssert.assertEquals(DATA1,data,false);
1412 assertEquals("admin", UserdataHttpServlet.decodeJWTPayloadUsername(String.format("Bearer %s",
1413 "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbkBzZG4iLCJyb2xlcyI6WyJ1c2VyIiwiYWRtaW4iXSwiaXN"
1414 + "zIjoiT3BlbmRheWxpZ2h0IiwibmFtZSI6ImFkbWluQHNkbiIsImV4cCI6MTYxNTc5NTg1NywiZmFtaWx5X25hbWUiOiIifQ.wB"
1415 + "PdB45_bryU6_kSCu3be3dq3yth24niSXi6b2_1ufc"),
1419 private Pagination getPagination(long pageSize, int page) {
1420 return new PaginationBuilder().setPage(YangHelper2.getBigIntegerOrUint64(BigInteger.valueOf(page)))
1421 .setSize(YangHelper2.getLongOrUint32(pageSize)).build();
1425 private String clearAndCreatefaultEntity(String initialDbId, String entityType, String implementedInterface,
1426 SeverityType severity) {
1427 // ==CLEAR BEFORE TEST============================
1428 System.out.println("try to clear entry");
1430 dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1431 } catch (Exception e) {
1432 fail("problem deleting: " + e.getMessage());
1436 return createFaultEntity(initialDbId, entityType, implementedInterface, severity);
1439 private String createFaultEntity(String initialDbId, String entityType, String implementedInterface,
1440 SeverityType severity) {
1441 // ==CREATE============================
1442 System.out.println("try to create entry");
1447 dbId = dbRawProvider.doUpdateOrCreate(entityType, initialDbId,
1448 "{\n" + "\"timestamp\": \"2019-10-28T11:55:58.3Z\",\n" + "\"object-id\": \"LP-MWPS-RADIO\",\n"
1449 + "\"severity\": \"" + severity.toString() + "\",\n" + "\"node-id\": \"s1\",\n"
1450 + "\"implemented-interface\": \"" + implementedInterface + "\",\n" + "\"counter\": 4340,\n"
1451 + "\"problem\": \"signalIsLost\",\n" + "\"type\": \"ProblemNotificationXml\"\n" + "}");
1455 } catch (Exception e) {
1456 fail("Problem creating fault log entry" + e.getMessage());
1462 private String createPerformanceData(String initialDbId, GranularityPeriodType timeInterval, String scannerId,
1463 String uuidInterface, String nodename) {
1465 String json = "{\n" + "\"node-name\": \"" + nodename + "\",\n" + "\"uuid-interface\": \"" + uuidInterface
1466 + "\",\n" + "\"layer-protocol-name\": \"MWPS\",\n" + "\"radio-signal-id\": \"Test8\",\n"
1467 + "\"time-stamp\": \"2017-03-01T06:15:00.0Z\",\n" + "\"granularity-period\": \""
1468 + timeInterval.toString() + "\",\n" + "\"scanner-id\": \"" + scannerId + "\",\n"
1469 + "\"performance-data\": {\n" + "\"cses\": 0,\n" + "\"ses\": 0,\n" + "\"es\": 0,\n"
1470 + "\"tx-level-max\": 3,\n" + "\"tx-level-avg\": 3,\n" + "\"rx-level-min\": -44,\n"
1471 + "\"rx-level-max\": -45,\n" + "\"rx-level-avg\": -44,\n" + "\"time2-states\": 0,\n"
1472 + "\"time4-states-s\": 0,\n" + "\"time4-states\": 0,\n" + "\"time8-states\": -1,\n"
1473 + "\"time16-states-s\": -1,\n" + "\"time16-states\": 0,\n" + "\"time32-states\": -1,\n"
1474 + "\"time64-states\": 900,\n" + "\"time128-states\": -1,\n" + "\"time256-states\": -1,\n"
1475 + "\"time512-states\": -1,\n" + "\"time512-states-l\": -1,\n" + "\"unavailability\": 0,\n"
1476 + "\"tx-level-min\": 3,\n" + "\"time1024-states\": -1,\n" + "\"time1024-states-l\": -1,\n"
1477 + "\"time2048-states\": -1,\n" + "\"time2048-states-l\": -1,\n" + "\"time4096-states\": -1,\n"
1478 + "\"time4096-states-l\": -1,\n" + "\"time8192-states\": -1,\n" + "\"time8192-states-l\": -1,\n"
1479 + "\"snir-min\": -99,\n" + "\"snir-max\": -99,\n" + "\"snir-avg\": -99,\n" + "\"xpd-min\": -99,\n"
1480 + "\"xpd-max\": -99,\n" + "\"xpd-avg\": -99,\n" + "\"rf-temp-min\": -99,\n" + "\"rf-temp-max\": -99,\n"
1481 + "\"rf-temp-avg\": -99,\n" + "\"defect-blocks-sum\": -1,\n" + "\"time-period\": 900\n" + "},\n"
1482 + "\"suspect-interval-flag\": false\n" + "}";
1484 if (timeInterval.equals(GranularityPeriodType.Period15Min)) {
1485 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
1487 return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);