c407859d50c2887609618baa51bd61549ee1acf6
[ccsdk/features.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP : ccsdk features
4  * ================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
6  * All rights reserved.
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
11  *
12  *     http://www.apache.org/licenses/LICENSE-2.0
13  *
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=========================================================
20  *
21  */
22 package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
23
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;
126
127 public class TestCRUDforDatabase {
128
129     private static DatabaseDataProvider dbProvider;
130     private static HtDatabaseClient dbRawProvider;
131
132     @BeforeClass
133     public static void init() throws Exception {
134
135         HostInfo[] hosts = HostInfoForTest.get();
136         dbProvider = new ElasticSearchDataProvider(hosts);
137         dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
138         dbRawProvider = HtDatabaseClient.getClient(hosts);
139     }
140
141     public static void trySleep(long ms) {
142         try {
143             Thread.sleep(ms);
144         } catch (Exception e) {
145             Thread.currentThread().interrupt();
146         }
147     }
148
149     public static void trySleep() {
150         trySleep(0);
151     }
152
153     @Test
154     public void testStatus() throws IOException {
155
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",
162                 SeverityType.Major);
163         createFaultEntity("3", Entity.Faultcurrent.getName(),
164                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
165                 SeverityType.Minor);
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);
169
170         //== READ ================================
171
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);
175
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());
180
181         //== DELETE ================================
182
183         System.out.println("try to delete entries");
184         try {
185             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
186         } catch (Exception e) {
187             fail("problem deleting entry: " + e.getMessage());
188         }
189
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());
197     }
198
199     @Test
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";
205
206         // ==CLEAR BEFORE TEST============================
207         System.out.println("try to clear entry");
208         try {
209             dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
210         } catch (Exception e) {
211             fail("problem deleting entry: " + e.getMessage());
212         }
213         trySleep();
214         // ==CREATE============================
215         System.out.println("try to create entry");
216         CreateMediatorServerOutputBuilder createOutput = null;
217         CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
218         String dbId = null;
219
220         try {
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());
226         }
227         assertNotNull(createOutput);
228         assertNotNull(dbId);
229         trySleep();
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();
238         assertNotNull(data);
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;
250         try {
251             updateOutput = dbProvider.updateMediatorServer(updateInput);
252             System.out.println(updateOutput);
253         } catch (Exception e) {
254             fail("problem updating entry:" + e.getMessage());
255         }
256         assertNotNull(updateOutput);
257         trySleep();
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();
275         try {
276             dbProvider.deleteMediatorServer(deleteInput);
277         } catch (Exception e) {
278             fail("problem deleting entry: " + e.getMessage());
279         }
280
281         trySleep();
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());
292     }
293
294     @Test
295     public void testNetworkElementConnectionCurrent() {
296
297         System.out.println("networkElementConnection test start");
298
299         // ==CLEAR BEFORE TEST============================
300         System.out.println("try to clear entry");
301         try {
302             dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
303         } catch (Exception e) {
304             fail("problem deleting entry: " + e.getMessage());
305         }
306
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;
312
313         CreateNetworkElementConnectionOutputBuilder create = null;
314         CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
315                 .setIsRequired(true).setHost(url).setPort(YangHelper2.getLongOrUint32(port)).build();
316         String dbId = null;
317
318         try {
319             create = dbProvider.createNetworkElementConnection(input);
320             dbId = create.getId();
321         } catch (Exception e) {
322             fail("networkElementConnection create failed" + e.getMessage());
323         }
324
325         assertNotNull(dbId);
326         assertNotNull(create);
327
328         // ==READ===========================
329
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();
334
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();
339
340         assertNotNull(data);
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());
345
346         // ==UPDATE============================
347         System.out.println("Trying to update...");
348         final String url2 = "10.5.10.2";
349         final long port2 = 5960;
350
351         UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId)
352                 .setHost(url2).setPort(YangHelper2.getLongOrUint32(port2)).setIsRequired(false).build();
353         UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
354         try {
355             updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
356         } catch (Exception e) {
357             fail("update failed: " + e.getMessage());
358         }
359
360         assertNotNull(updateOutput);
361
362         // == Verify UPDATE============================
363         System.out.println("Verfiying update...");
364
365         readOperation = dbProvider.readNetworkElementConnectionList(readInput);
366         data = readOperation.getData();
367
368         assertNotNull(data);
369         assertEquals(url2, data.get(0).getHost());
370         assertEquals(port2, data.get(0).getPort().longValue());
371
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();
376         try {
377             updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
378         } catch (Exception e) {
379             fail("update failed: " + e.getMessage());
380         }
381
382         assertNotNull(updateOutput);
383
384         readOperation = dbProvider.readNetworkElementConnectionList(readInput);
385         data = readOperation.getData();
386
387         assertEquals(true, data.get(0).isIsRequired());
388         assertEquals(url2, data.get(0).getHost());
389         assertEquals(port2, data.get(0).getPort().longValue());
390
391         // ==DELETE============================
392         System.out.println("Try delete...");
393
394         DeleteNetworkElementConnectionInput deleteInput =
395                 new DeleteNetworkElementConnectionInputBuilder().setId(dbId).build();
396         try {
397             dbProvider.deleteNetworkElementConnection(deleteInput);
398         } catch (Exception e) {
399             fail("problem deleting " + e.getMessage());
400         }
401
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());
409
410     }
411
412     @Test
413     public void testMaintenance() {
414         System.out.println("Starting Maintenance tests...");
415
416         // ==CLEAR BEFORE TEST============================
417         System.out.println("try to clear entry");
418         try {
419             dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
420         } catch (Exception e) {
421             fail("problem deleting entry: " + e.getMessage());
422         }
423
424         // ==CREATE============================
425
426         final String nodeId = "Lorem Ipsum";
427         final boolean isActive = true;
428
429         CreateMaintenanceOutputBuilder create = null;
430         CreateMaintenanceInput input =
431                 new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive).build();
432         String dbId = null;
433         try {
434             create = dbProvider.createMaintenance(input);
435             dbId = create.getId();
436         } catch (Exception e) {
437             fail("Failed to create:" + e.getMessage());
438         }
439
440         System.out.println(dbId);
441         assertNotNull(create);
442         assertNotNull(dbId);
443
444         // ==READ===========================
445         System.out.println("Try read...");
446
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();
454
455         assertNotEquals(0, data.size());
456         assertNotNull(data);
457         assertEquals(nodeId, data.get(0).getNodeId());
458         assertEquals(isActive, data.get(0).isActive());
459
460         // ==UPDATE============================
461
462         System.out.println("Trying to update...");
463         final String nodeId2 = "Name2";
464         final boolean isActive2 = false;
465
466         UpdateMaintenanceInput updateInput =
467                 new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2).setActive(isActive2).build();
468         UpdateMaintenanceOutputBuilder updateResult = null;
469         try {
470             updateResult = dbProvider.updateMaintenance(updateInput);
471         } catch (Exception e) {
472             fail("maintenance update failed..." + e.getMessage());
473         }
474
475         assertNotNull(updateResult);
476
477         // == VERIFY UPDATE============================
478         System.out.println("Verfify update...");
479         readResult = dbProvider.readMaintenanceList(readinput);
480         data = readResult.getData();
481
482         assertNotNull(data);
483         assertEquals(nodeId2, data.get(0).getNodeId());
484         assertEquals(isActive2, data.get(0).isActive());
485
486         // ==DELETE================================
487         System.out.println("Trying to delete...");
488
489         DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
490         try {
491             dbProvider.deleteMaintenance(deleteInput);
492         } catch (Exception e) {
493             fail("Maintenance entry couldn't be deleted" + e.getMessage());
494         }
495
496         readResult = dbProvider.readMaintenanceList(readinput);
497         data = readResult.getData();
498
499         assertEquals(0, data.size());
500     }
501
502     @Test
503     public void testFaultLog() {
504
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);
509
510         // ==READ===========================
511         System.out.println("try to read entry");
512
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();
517
518         ReadFaultlogListOutputBuilder readResult = null;
519         try {
520             readResult = dbProvider.readFaultLogList(readinput);
521
522         } catch (Exception e) {
523             fail("Fault log not read: " + e.getMessage());
524         }
525
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();
528
529         assertNotNull(data);
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());
534
535         //== UPDATE ================================
536         System.out.println("try to update entry");
537
538         dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1",
539                 "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
540
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();
546
547         //== VERIFY UPDATE ================================
548         readResult = dbProvider.readFaultLogList(readinput);
549         data = readResult.getData();
550
551
552         assertNotNull(data);
553         System.out.println(data);
554         assertEquals(0, data.size());
555
556         System.out.println("try to search entry 2");
557
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();
562
563         readResult = dbProvider.readFaultLogList(readinput);
564         data = readResult.getData();
565
566
567         assertNotNull(data);
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());
572
573         //== DELETE ================================
574
575         System.out.println("try to clear entry");
576         try {
577             dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
578         } catch (Exception e) {
579             fail("problem deleting entry: " + e.getMessage());
580         }
581
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());
588     }
589
590     @Test
591     public void testFaultCurrent() {
592         System.out.println("Starting faultCurrent test...");
593         String dbId = null;
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);
598
599         // ==READ===========================
600         System.out.println("Trying to read...");
601
602
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();
607
608         ReadFaultcurrentListOutputBuilder readResult = null;
609         try {
610             readResult = dbProvider.readFaultCurrentList(readinput);
611
612         } catch (Exception e) {
613             fail("Fault log not read: " + e.getMessage());
614         }
615
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();
618
619
620         assertNotNull(data);
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());
629
630
631         // ==UPDATE============================
632         System.out.println("Trying to update...");
633
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" + "}";
636
637         String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
638         assertEquals(dbId, updatedDbId);
639
640         // ==READ============================
641
642         try {
643             readResult = dbProvider.readFaultCurrentList(readinput);
644
645         } catch (Exception e) {
646             fail("Fault log not read: " + e.getMessage());
647         }
648
649         data = readResult.getData();
650
651         assertNotNull(data);
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());
657
658         // ==DELETE============================
659         try {
660             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
661         } catch (Exception e) {
662             fail("problem deleting: " + e.getMessage());
663         }
664
665         // ==READ/VERIFY DELETE============================
666
667         try {
668             readResult = dbProvider.readFaultCurrentList(readinput);
669
670         } catch (Exception e) {
671             fail("Fault log not read: " + e.getMessage());
672         }
673
674         data = readResult.getData();
675
676         assertNotNull(data);
677         assertEquals(0, data.size());
678     }
679
680     @Test
681     public void testConnectionLog() {
682
683         // ==CLEAR================================
684         System.out.println("Clear before test");
685         try {
686             dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
687         } catch (Exception e) {
688             fail("problem deleting: " + e.getMessage());
689         }
690
691         // ==CREATE================================
692
693         System.out.println("Try create entry");
694         final String initialDbId = "1";
695         String dbId = null;
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"
699                 + "}";
700
701         dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
702
703         assertEquals(initialDbId, dbId);
704
705         // ==READ================================
706         System.out.println("Try read entry");
707
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();
712
713         ReadConnectionlogListOutputBuilder readResult = null;
714         try {
715             readResult = dbProvider.readConnectionlogList(readinput);
716
717         } catch (Exception e) {
718             fail("Connection log not read: " + e.getMessage());
719         }
720
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();
723
724         assertNotNull(data);
725         assertEquals(1, data.size());
726         assertEquals("Connecting", data.get(0).getStatus().toString());
727         assertEquals("sim2230", data.get(0).getNodeId());
728
729
730         // ==UPDATE================================
731         System.out.println("Try update entry");
732
733         dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
734
735         // ==READ 2================================
736         System.out.println("Try read updated entry");
737
738         readinput = new ReadConnectionlogListInputBuilder()
739                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
740                         new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
741                 .setPagination(getPagination(20, 1)).build();
742
743         try {
744             readResult = dbProvider.readConnectionlogList(readinput);
745
746         } catch (Exception e) {
747             fail("Connection log not read: " + e.getMessage());
748         }
749
750         data = readResult.getData();
751
752         assertNotNull(data);
753         assertEquals(1, data.size());
754         assertEquals("Connected", data.get(0).getStatus().toString());
755         assertEquals("sim2230", data.get(0).getNodeId());
756
757         //== DELETE ================================
758
759         System.out.println("try to clear entry");
760         try {
761             dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
762         } catch (Exception e) {
763             fail("problem deleting entry: " + e.getMessage());
764         }
765
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());
772
773     }
774
775     @Test
776     public void testEventLog() {
777         System.out.println("Test event log starting...");
778
779         // ==CLEAR================================
780         System.out.println("Clear before test");
781         try {
782             dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
783         } catch (Exception e) {
784             fail("problem deleting: " + e.getMessage());
785         }
786         // ==CREATE============================
787
788         String dbId = null;
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" + "}";
793
794         dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
795         assertNotNull(dbId);
796
797         // ==READ===========================
798
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;
804         try {
805             readResult = dbProvider.readEventlogList(readinput);
806
807         } catch (Exception e) {
808             fail("problem reading eventlog");
809         }
810
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());
814
815         //== DELETE ================================
816
817         System.out.println("try to clear entry");
818         try {
819             dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
820         } catch (Exception e) {
821             fail("problem deleting entry: " + e.getMessage());
822         }
823
824         //== VERIFY DELETE ===========================
825         System.out.println("verify entries deleted");
826         try {
827             readResult = dbProvider
828                     .readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
829         } catch (IOException e) {
830             fail("problem reading eventlog");
831         }
832         data = readResult.getData();
833         assertEquals(0, data.size());
834
835     }
836
837     @Test
838     public void testInventory() {
839
840         System.out.println("Test inventory starting...");
841
842         // ==CLEAR================================
843         System.out.println("Clear before test");
844         try {
845             dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
846         } catch (Exception e) {
847             fail("problem deleting: " + e.getMessage());
848         }
849
850
851         // ==CREATE============================
852
853         String dbId = null;
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\"}";
863
864         dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
865         assertNotNull(dbId);
866
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;
873         try {
874             readResult = dbProvider.readInventoryList(readinput);
875
876         } catch (Exception e) {
877             fail("Problem reading inventory list" + e.getMessage());
878         }
879
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());
891
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" + "}";
899
900         updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
901         assertEquals(dbId, updatedDbId);
902
903         try {
904             readResult = dbProvider.readInventoryList(readinput);
905
906         } catch (Exception e) {
907             fail("Problem reading inventory list" + e.getMessage());
908         }
909
910         data = readResult.getData();
911
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));
924
925         // ==DELETE============================
926
927         System.out.println("delete after test");
928         try {
929             dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
930         } catch (Exception e) {
931             fail("problem deleting: " + e.getMessage());
932         }
933
934         // ==VERIFY DELETE ============================
935
936         try {
937             readResult = dbProvider.readInventoryList(readinput);
938
939         } catch (Exception e) {
940             fail("Problem reading inventory list" + e.getMessage());
941         }
942
943         data = readResult.getData();
944         assertEquals(0, data.size());
945
946     }
947
948     @Test
949     public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
950
951         System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
952
953         try {
954             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
955         } catch (Exception e) {
956             fail("problem deleting: " + e.getMessage());
957         }
958
959         System.out.println("create entries...");
960
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");
963
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");
968
969         System.out.println("trying to read, should throw exception...");
970
971
972         ReadPmdata15mLtpListInput readLtp =
973                 new ReadPmdata15mLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
974
975         ReadPmdata15mLtpListOutputBuilder readltpResult = null;
976
977         try {
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());
984         }
985
986         assertNull(readltpResult);
987
988         //== DELETE ================================
989
990         System.out.println("try to clear entry");
991         try {
992             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
993         } catch (Exception e) {
994             fail("problem deleting entry: " + e.getMessage());
995         }
996
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 =
1000                 dbProvider
1001                         .readPmdata15mList(
1002                                 new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build())
1003                         .getData();
1004
1005         assertEquals(0, data.size());
1006     }
1007
1008     @Test
1009     public void test15MinPerformanceData() {
1010         // == CLEAR BEFORE TESTS ============================
1011         System.out.println("Test 15 min performance...");
1012
1013         try {
1014             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1015         } catch (Exception e) {
1016             fail("problem deleting: " + e.getMessage());
1017         }
1018
1019         // == CREATE ============================
1020
1021         System.out.println("create entries...");
1022
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");
1025
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");
1030
1031         // == READ ============================
1032         System.out.println("read list entries...");
1033
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();
1038
1039         ReadPmdata15mListOutputBuilder readResult = null;
1040
1041         try {
1042             readResult = dbProvider.readPmdata15mList(read);
1043         } catch (Exception e) {
1044             fail("Problem reading 15m data");
1045         }
1046
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();
1049
1050         assertNotNull(data);
1051         assertEquals(2, data.size());
1052
1053         System.out.println("read ltp entries with node name set...");
1054
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();
1059
1060         ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1061
1062         try {
1063             readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1064         } catch (Exception e) {
1065             fail("Problem reading 15m ltp data");
1066         }
1067
1068         List<String> dataLtp = readltpResult.getData();
1069
1070         assertNotNull(dataLtp);
1071         assertEquals(2, dataLtp.size());
1072         assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1073         assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1074
1075         System.out.println("read device entries...");
1076
1077         ReadPmdata15mDeviceListInput readDevices =
1078                 new ReadPmdata15mDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1079
1080         ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
1081
1082         try {
1083             readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
1084         } catch (Exception e) {
1085             fail("Problem reading 15m device data");
1086         }
1087
1088         List<String> dataDevice = readDeviceResult.getData();
1089
1090         assertNotNull(dataDevice);
1091         assertEquals(2, dataDevice.size());
1092         assertTrue(dataDevice.contains("a2"));
1093         assertTrue(dataDevice.contains("a3"));
1094
1095         //== DELETE ================================
1096
1097         System.out.println("try to clear entry");
1098         try {
1099             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1100         } catch (Exception e) {
1101             fail("problem deleting entry: " + e.getMessage());
1102         }
1103
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());
1110
1111     }
1112
1113     @Test
1114     public void test24hPerformanceData() {
1115         System.out.println("Test 24h performance...");
1116
1117         try {
1118             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1119         } catch (Exception e) {
1120             fail("problem deleting: " + e.getMessage());
1121         }
1122
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");
1128
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");
1132
1133         System.out.println("read all list entries...");
1134
1135         ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build();
1136
1137         ReadPmdata24hListOutputBuilder readResult = null;
1138
1139         try {
1140             readResult = dbProvider.readPmdata24hList(read);
1141         } catch (Exception e) {
1142             fail("Problem reading 24h data");
1143         }
1144
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();
1147
1148         assertNotNull(data);
1149         assertEquals(6, data.size());
1150
1151
1152         System.out.println("filter list entries...");
1153
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();
1158
1159         readResult = null;
1160
1161         try {
1162             readResult = dbProvider.readPmdata24hList(read);
1163         } catch (Exception e) {
1164             fail("Problem reading 24h data");
1165         }
1166
1167         data = readResult.getData();
1168
1169         assertNotNull(data);
1170         assertEquals(3, data.size());
1171
1172         System.out.println("read ltp entries with node name set...");
1173
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();
1178
1179         ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1180
1181         try {
1182             readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1183         } catch (Exception e) {
1184             fail("Problem reading 24h ltp data");
1185         }
1186
1187         List<String> dataLtp = readltpResult.getData();
1188
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"));
1194
1195
1196         System.out.println("read device entries...");
1197
1198         ReadPmdata24hDeviceListInput readDevices =
1199                 new ReadPmdata24hDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1200
1201         ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
1202
1203         try {
1204             readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
1205         } catch (Exception e) {
1206             fail("Problem reading 24h device data");
1207         }
1208
1209         List<String> dataDevice = readDeviceResult.getData();
1210
1211         assertNotNull(dataDevice);
1212         assertEquals(2, dataDevice.size());
1213         assertTrue(dataDevice.contains("a2"));
1214         assertTrue(dataDevice.contains("a3"));
1215
1216         // == UPDATE ==============================
1217
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);
1221         try {
1222             readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1223         } catch (Exception e) {
1224             fail("Problem reading 24h ltp data");
1225         }
1226
1227         // == VERIFY UPDATE ==============================
1228
1229         dataLtp = readltpResult.getData();
1230
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"));
1236
1237
1238
1239         //== DELETE ===========================
1240
1241         System.out.println("try to clear entries");
1242         try {
1243             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1244         } catch (Exception e) {
1245             fail("problem deleting entry: " + e.getMessage());
1246         }
1247
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());
1254     }
1255
1256     @Test
1257     public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
1258         System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
1259
1260         try {
1261             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1262         } catch (Exception e) {
1263             fail("problem deleting: " + e.getMessage());
1264         }
1265
1266         System.out.println("create entries...");
1267
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");
1271
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");
1276
1277         System.out.println("trying to read, should throw exception...");
1278
1279
1280         ReadPmdata24hLtpListInput readLtp =
1281                 new ReadPmdata24hLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
1282
1283         ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1284
1285         try {
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());
1292         }
1293
1294         assertNull(readltpResult);
1295
1296         try {
1297             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1298         } catch (Exception e) {
1299             fail("problem deleting: " + e.getMessage());
1300         }
1301     }
1302
1303     @Test
1304     public void testUrlEncoding() {
1305         System.out.println("Testing url encding");
1306
1307         final String test = "Lorem Ipsum";
1308         final String test1 = "Lorem/Ipsum";
1309         final String test2 = "Lorem_Ipsum";
1310         final String test3 = "Lorem%Ipsum";
1311
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));
1316     }
1317
1318     @Test
1319     public void testDoUpdateOrCreateWithNullId() {
1320         System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
1321
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);
1325         assertNull(dbId);
1326     }
1327
1328     @Test
1329     public void readTestFaultCurrentViaRawDbProvider() {
1330         System.out.println("Starting faultCurrent test...");
1331         String dbId = null;
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);
1336
1337         // ==READ===========================
1338         System.out.println("Trying to read...");
1339
1340         String readResult = null;
1341         try {
1342             readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
1343
1344         } catch (Exception e) {
1345             fail("Fault log not read: " + e.getMessage());
1346         }
1347
1348
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\"}";
1351
1352         System.out.println(readResult);
1353         assertNotNull(readResult);
1354         assertEquals(expectedDbResult, readResult);
1355
1356         SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1357         assertNotNull(searchResult);
1358
1359         List<SearchHit> hits = searchResult.getHits();
1360
1361         assertNotNull(hits);
1362         assertEquals(1, searchResult.getTotal());
1363         assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
1364
1365         //== DELETE ==============================
1366         try {
1367             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
1368         } catch (Exception e) {
1369             fail("problem deleting: " + e.getMessage());
1370         }
1371         //== VERIFY DELETE ========================
1372         searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1373         hits = searchResult.getHits();
1374         assertNotNull(hits);
1375         assertEquals(0, searchResult.getTotal());
1376
1377     }
1378
1379     @Test
1380     public void testOutputCamelCase() throws ClassNotFoundException {
1381         try {
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"
1386                     + "}";
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();
1393             fail("Fail");
1394         }
1395
1396     }
1397
1398     @Test
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"
1405                 + "}";
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);
1411
1412         assertEquals("admin", UserdataHttpServlet.decodeJWTPayloadUsername(String.format("Bearer %s",
1413                 "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbkBzZG4iLCJyb2xlcyI6WyJ1c2VyIiwiYWRtaW4iXSwiaXN"
1414                 + "zIjoiT3BlbmRheWxpZ2h0IiwibmFtZSI6ImFkbWluQHNkbiIsImV4cCI6MTYxNTc5NTg1NywiZmFtaWx5X25hbWUiOiIifQ.wB"
1415                 + "PdB45_bryU6_kSCu3be3dq3yth24niSXi6b2_1ufc"),
1416                 "sub"));
1417     }
1418
1419     private Pagination getPagination(long pageSize, int page) {
1420         return new PaginationBuilder().setPage(YangHelper2.getBigIntegerOrUint64(BigInteger.valueOf(page)))
1421                 .setSize(YangHelper2.getLongOrUint32(pageSize)).build();
1422     }
1423
1424
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");
1429         try {
1430             dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1431         } catch (Exception e) {
1432             fail("problem deleting: " + e.getMessage());
1433         }
1434
1435
1436         return createFaultEntity(initialDbId, entityType, implementedInterface, severity);
1437     }
1438
1439     private String createFaultEntity(String initialDbId, String entityType, String implementedInterface,
1440             SeverityType severity) {
1441         // ==CREATE============================
1442         System.out.println("try to create entry");
1443         String dbId = null;
1444
1445         try {
1446
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" + "}");
1452
1453
1454
1455         } catch (Exception e) {
1456             fail("Problem creating fault log entry" + e.getMessage());
1457         }
1458
1459         return dbId;
1460     }
1461
1462     private String createPerformanceData(String initialDbId, GranularityPeriodType timeInterval, String scannerId,
1463             String uuidInterface, String nodename) {
1464
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" + "}";
1483
1484         if (timeInterval.equals(GranularityPeriodType.Period15Min)) {
1485             return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
1486         } else {
1487             return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);
1488         }
1489     }
1490
1491 }