5a8c549d8ab2d27eca9f8e70297791c5e51521f6
[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.data.ElasticSearchDataProvider;
43 import org.onap.ccsdk.features.sdnr.wt.dataprovider.data.HtUserdataManagerImpl;
44 import org.onap.ccsdk.features.sdnr.wt.dataprovider.http.UserdataHttpServlet;
45 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.YangHelper2;
46 import org.onap.ccsdk.features.sdnr.wt.dataprovider.test.util.HostInfoForTest;
47 import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.DataProviderYangToolsMapper;
48 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceInput;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceInputBuilder;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceOutputBuilder;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInput;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInputBuilder;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerOutputBuilder;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionInput;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionInputBuilder;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionOutputBuilder;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInput;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInputBuilder;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInput;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInputBuilder;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInput;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInputBuilder;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListInput;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListInputBuilder;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadConnectionlogListOutputBuilder;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInput;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInputBuilder;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListOutputBuilder;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInput;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInputBuilder;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListOutputBuilder;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListInput;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListInputBuilder;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultlogListOutputBuilder;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListInput;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListInputBuilder;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadInventoryListOutputBuilder;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInput;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInputBuilder;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListOutputBuilder;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListInput;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListInputBuilder;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMediatorServerListOutputBuilder;
89 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInput;
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInputBuilder;
91 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListOutputBuilder;
92 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListInput;
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListInputBuilder;
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListOutputBuilder;
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListInput;
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListInputBuilder;
97 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListOutputBuilder;
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListInput;
99 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListInputBuilder;
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListOutputBuilder;
101 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListInput;
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListInputBuilder;
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListOutputBuilder;
104 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListInput;
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListInputBuilder;
106 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListOutputBuilder;
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListInput;
108 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListInputBuilder;
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListOutputBuilder;
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
111 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInput;
112 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInputBuilder;
113 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceOutputBuilder;
114 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInput;
115 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInputBuilder;
116 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerOutputBuilder;
117 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInput;
118 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInputBuilder;
119 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionOutputBuilder;
120 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder;
121 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterKey;
122 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Pagination;
123 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.PaginationBuilder;
124 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.mediator.server.list.output.Data;
125
126 public class TestCRUDforDatabase {
127
128     private static ElasticSearchDataProvider dbProvider;
129     private static HtDatabaseClient dbRawProvider;
130
131     @BeforeClass
132     public static void init() throws Exception {
133
134         HostInfo[] hosts = HostInfoForTest.get();
135         dbProvider = new ElasticSearchDataProvider(hosts);
136         dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
137         dbRawProvider = HtDatabaseClient.getClient(hosts);
138     }
139
140     public static void trySleep(long ms) {
141         try {
142             Thread.sleep(ms);
143         } catch (Exception e) {
144             Thread.currentThread().interrupt();
145         }
146     }
147
148     public static void trySleep() {
149         trySleep(0);
150     }
151
152     @Test
153     public void testStatus() throws IOException {
154
155         //== CLEAR AND CREATE ================================
156         clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
157                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
158                 SeverityType.Critical);
159         createFaultEntity("Lorem Ipsum", Entity.Faultcurrent.getName(),
160                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
161                 SeverityType.Major);
162         createFaultEntity("3", Entity.Faultcurrent.getName(),
163                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
164                 SeverityType.Minor);
165         createFaultEntity("4", Entity.Faultcurrent.getName(),
166                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
167                 SeverityType.Warning);
168
169         //== READ ================================
170
171         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.status.output.Data> readOutput =
172                 dbProvider.readStatus().getData();
173         System.out.println(readOutput);
174
175         assertEquals(1, readOutput.get(0).getFaults().getMajors().intValue());
176         assertEquals(1, readOutput.get(0).getFaults().getMinors().intValue());
177         assertEquals(1, readOutput.get(0).getFaults().getWarnings().intValue());
178         assertEquals(1, readOutput.get(0).getFaults().getCriticals().intValue());
179
180         //== DELETE ================================
181
182         System.out.println("try to delete entries");
183         try {
184             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
185         } catch (Exception e) {
186             fail("problem deleting entry: " + e.getMessage());
187         }
188
189         //== VERIFY DELETE ===========================
190         System.out.println("verify entries were deleted");
191         readOutput = dbProvider.readStatus().getData();
192         assertEquals(0, readOutput.get(0).getFaults().getMajors().intValue());
193         assertEquals(0, readOutput.get(0).getFaults().getMinors().intValue());
194         assertEquals(0, readOutput.get(0).getFaults().getWarnings().intValue());
195         assertEquals(0, readOutput.get(0).getFaults().getCriticals().intValue());
196     }
197
198     @Test
199     public void testMediatorServer() {
200         final String NAME = "ms1";
201         final String URL = "http://11.23.45.55:4599";
202         final String NAME2 = "ms1-nu";
203         final String URL2 = "http://11.23.45.56:4599";
204
205         // ==CLEAR BEFORE TEST============================
206         System.out.println("try to clear entry");
207         try {
208             dbRawProvider.doRemove(Entity.MediatorServer.getName(), QueryBuilders.matchAllQuery());
209         } catch (Exception e) {
210             fail("problem deleting entry: " + e.getMessage());
211         }
212         trySleep();
213         // ==CREATE============================
214         System.out.println("try to create entry");
215         CreateMediatorServerOutputBuilder createOutput = null;
216         CreateMediatorServerInput input = new CreateMediatorServerInputBuilder().setName(NAME).setUrl(URL).build();
217         String dbId = null;
218
219         try {
220             createOutput = dbProvider.createMediatorServer(input);
221             dbId = createOutput.getId();
222             System.out.println(createOutput);
223         } catch (Exception e) {
224             fail("failed to create " + input.toString() + ":" + e.getMessage());
225         }
226         assertNotNull(createOutput);
227         assertNotNull(dbId);
228         trySleep();
229         // ==READ===========================
230         System.out.println("try to read entry");
231         ReadMediatorServerListInput readinput = new ReadMediatorServerListInputBuilder()
232                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
233                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
234                 .setPagination(getPagination(20, 1)).build();
235         ReadMediatorServerListOutputBuilder readoutput = dbProvider.readMediatorServerList(readinput);
236         List<Data> data = readoutput.getData();
237         assertNotNull(data);
238         assertEquals("no entry found", 1, data.size());
239         assertEquals(NAME, data.get(0).getName());
240         assertEquals(URL, data.get(0).getUrl());
241         String dbId2 = data.get(0).getId();
242         assertEquals(dbId, dbId2);
243         System.out.println(data);
244         // ==UPDATE============================
245         System.out.println("try to update entry");
246         UpdateMediatorServerInput updateInput =
247                 new UpdateMediatorServerInputBuilder().setId(dbId2).setName(NAME2).setUrl(URL2).build();
248         UpdateMediatorServerOutputBuilder updateOutput = null;
249         try {
250             updateOutput = dbProvider.updateMediatorServer(updateInput);
251             System.out.println(updateOutput);
252         } catch (Exception e) {
253             fail("problem updating entry:" + e.getMessage());
254         }
255         assertNotNull(updateOutput);
256         trySleep();
257         // ==READ============================
258         System.out.println("try to read entry");
259         readinput = new ReadMediatorServerListInputBuilder()
260                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
261                         new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
262                 .setPagination(getPagination(20, 1)).build();
263         readoutput = dbProvider.readMediatorServerList(readinput);
264         data = readoutput.getData();
265         System.out.println(data);
266         assertNotNull("no update response", data);
267         assertEquals("update not verifiied", 1, data.size());
268         assertEquals("update not verifiied", NAME2, data.get(0).getName());
269         assertEquals("update not verifiied", URL2, data.get(0).getUrl());
270         assertEquals("update not verifiied", dbId, data.get(0).getId());
271         // ==DELETE============================
272         System.out.println("try to delete entry");
273         DeleteMediatorServerInput deleteInput = new DeleteMediatorServerInputBuilder().setId(dbId).build();
274         try {
275             dbProvider.deleteMediatorServer(deleteInput);
276         } catch (Exception e) {
277             fail("problem deleting entry: " + e.getMessage());
278         }
279
280         trySleep();
281         // ==READ/VERIFY DELETE============================
282         System.out.println("try to read entry");
283         readinput = new ReadMediatorServerListInputBuilder()
284                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
285                         new FilterBuilder().setProperty("name").setFiltervalue(NAME2).build()))
286                 .setPagination(getPagination(20, 1)).build();
287         readoutput = dbProvider.readMediatorServerList(readinput);
288         data = readoutput.getData();
289         assertNotNull("delete not verifiied", data);
290         assertEquals("delete not verifiied", 0, data.size());
291     }
292
293     @Test
294     public void testNetworkElementConnectionCurrent() {
295
296         System.out.println("networkElementConnection test start");
297
298         // ==CLEAR BEFORE TEST============================
299         System.out.println("try to clear entry");
300         try {
301             dbRawProvider.doRemove(Entity.NetworkelementConnection.getName(), QueryBuilders.matchAllQuery());
302         } catch (Exception e) {
303             fail("problem deleting entry: " + e.getMessage());
304         }
305
306         // ==CREATE============================
307         System.out.println("try to create");
308         final String name = "sim87";
309         final String url = "10.5.10.1";
310         final long port = 5959;
311
312         CreateNetworkElementConnectionOutputBuilder create = null;
313         CreateNetworkElementConnectionInput input = new CreateNetworkElementConnectionInputBuilder().setNodeId(name)
314                 .setIsRequired(true).setHost(url).setPort(YangHelper2.getLongOrUint32(port)).build();
315         String dbId = null;
316
317         try {
318             create = dbProvider.createNetworkElementConnection(input);
319             dbId = create.getId();
320         } catch (Exception e) {
321             fail("networkElementConnection create failed" + e.getMessage());
322         }
323
324         assertNotNull(dbId);
325         assertNotNull(create);
326
327         // ==READ===========================
328
329         ReadNetworkElementConnectionListInput readInput = new ReadNetworkElementConnectionListInputBuilder()
330                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
331                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
332                 .setPagination(getPagination(20, 1)).build();
333
334         ReadNetworkElementConnectionListOutputBuilder readOperation =
335                 dbProvider.readNetworkElementConnectionList(readInput);
336         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.network.element.connection.list.output.Data> data =
337                 readOperation.getData();
338
339         assertNotNull(data);
340         assertEquals(dbId, data.get(0).getId());
341         assertEquals(name, data.get(0).getNodeId());
342         assertEquals(url, data.get(0).getHost());
343         assertEquals(port, data.get(0).getPort().longValue());
344
345         // ==UPDATE============================
346         System.out.println("Trying to update...");
347         final String url2 = "10.5.10.2";
348         final long port2 = 5960;
349
350         UpdateNetworkElementConnectionInput updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId)
351                 .setHost(url2).setPort(YangHelper2.getLongOrUint32(port2)).setIsRequired(false).build();
352         UpdateNetworkElementConnectionOutputBuilder updateOutput = null;
353         try {
354             updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
355         } catch (Exception e) {
356             fail("update failed: " + e.getMessage());
357         }
358
359         assertNotNull(updateOutput);
360
361         // == Verify UPDATE============================
362         System.out.println("Verfiying update...");
363
364         readOperation = dbProvider.readNetworkElementConnectionList(readInput);
365         data = readOperation.getData();
366
367         assertNotNull(data);
368         assertEquals(url2, data.get(0).getHost());
369         assertEquals(port2, data.get(0).getPort().longValue());
370
371         // ==PARTIAL UPDATE============================
372         System.out.println("Try partial update...");
373         assertEquals(false, data.get(0).isIsRequired());
374         updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build();
375         try {
376             updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
377         } catch (Exception e) {
378             fail("update failed: " + e.getMessage());
379         }
380
381         assertNotNull(updateOutput);
382
383         readOperation = dbProvider.readNetworkElementConnectionList(readInput);
384         data = readOperation.getData();
385
386         assertEquals(true, data.get(0).isIsRequired());
387         assertEquals(url2, data.get(0).getHost());
388         assertEquals(port2, data.get(0).getPort().longValue());
389
390         // ==DELETE============================
391         System.out.println("Try delete...");
392
393         DeleteNetworkElementConnectionInput deleteInput =
394                 new DeleteNetworkElementConnectionInputBuilder().setId(dbId).build();
395         try {
396             dbProvider.deleteNetworkElementConnection(deleteInput);
397         } catch (Exception e) {
398             fail("problem deleting " + e.getMessage());
399         }
400
401         readInput = new ReadNetworkElementConnectionListInputBuilder()
402                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
403                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
404                 .setPagination(getPagination(20, 1)).build();
405         readOperation = dbProvider.readNetworkElementConnectionList(readInput);
406         data = readOperation.getData();
407         assertEquals(0, data.size());
408
409     }
410
411     @Test
412     public void testMaintenance() {
413         System.out.println("Starting Maintenance tests...");
414
415         // ==CLEAR BEFORE TEST============================
416         System.out.println("try to clear entry");
417         try {
418             dbRawProvider.doRemove(Entity.Maintenancemode.getName(), QueryBuilders.matchAllQuery());
419         } catch (Exception e) {
420             fail("problem deleting entry: " + e.getMessage());
421         }
422
423         // ==CREATE============================
424
425         final String nodeId = "Lorem Ipsum";
426         final boolean isActive = true;
427
428         CreateMaintenanceOutputBuilder create = null;
429         CreateMaintenanceInput input =
430                 new CreateMaintenanceInputBuilder().setNodeId(nodeId).setActive(isActive).build();
431         String dbId = null;
432         try {
433             create = dbProvider.createMaintenance(input);
434             dbId = create.getId();
435         } catch (Exception e) {
436             fail("Failed to create:" + e.getMessage());
437         }
438
439         System.out.println(dbId);
440         assertNotNull(create);
441         assertNotNull(dbId);
442
443         // ==READ===========================
444         System.out.println("Try read...");
445
446         ReadMaintenanceListInput readinput = new ReadMaintenanceListInputBuilder()
447                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
448                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
449                 .setPagination(getPagination(20, 1)).build();
450         ReadMaintenanceListOutputBuilder readResult = dbProvider.readMaintenanceList(readinput);
451         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.maintenance.list.output.Data> data =
452                 readResult.getData();
453
454         assertNotEquals(0, data.size());
455         assertNotNull(data);
456         assertEquals(nodeId, data.get(0).getNodeId());
457         assertEquals(isActive, data.get(0).isActive());
458
459         // ==UPDATE============================
460
461         System.out.println("Trying to update...");
462         final String nodeId2 = "Name2";
463         final boolean isActive2 = false;
464
465         UpdateMaintenanceInput updateInput =
466                 new UpdateMaintenanceInputBuilder().setId(dbId).setNodeId(nodeId2).setActive(isActive2).build();
467         UpdateMaintenanceOutputBuilder updateResult = null;
468         try {
469             updateResult = dbProvider.updateMaintenance(updateInput);
470         } catch (Exception e) {
471             fail("maintenance update failed..." + e.getMessage());
472         }
473
474         assertNotNull(updateResult);
475
476         // == VERIFY UPDATE============================
477         System.out.println("Verfify update...");
478         readResult = dbProvider.readMaintenanceList(readinput);
479         data = readResult.getData();
480
481         assertNotNull(data);
482         assertEquals(nodeId2, data.get(0).getNodeId());
483         assertEquals(isActive2, data.get(0).isActive());
484
485         // ==DELETE================================
486         System.out.println("Trying to delete...");
487
488         DeleteMaintenanceInput deleteInput = new DeleteMaintenanceInputBuilder().setId(dbId).build();
489         try {
490             dbProvider.deleteMaintenance(deleteInput);
491         } catch (Exception e) {
492             fail("Maintenance entry couldn't be deleted" + e.getMessage());
493         }
494
495         readResult = dbProvider.readMaintenanceList(readinput);
496         data = readResult.getData();
497
498         assertEquals(0, data.size());
499     }
500
501     @Test
502     public void testFaultLog() {
503
504         System.out.println("Starting fault log tests...");
505         String dbId = clearAndCreatefaultEntity("1", Entity.Faultlog.getName(),
506                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultlogInput",
507                 SeverityType.Critical);
508
509         // ==READ===========================
510         System.out.println("try to read entry");
511
512         ReadFaultlogListInput readinput = new ReadFaultlogListInputBuilder()
513                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
514                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
515                 .setPagination(getPagination(20, 1)).build();
516
517         ReadFaultlogListOutputBuilder readResult = null;
518         try {
519             readResult = dbProvider.readFaultLogList(readinput);
520
521         } catch (Exception e) {
522             fail("Fault log not read: " + e.getMessage());
523         }
524
525         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultlog.list.output.Data> data =
526                 readResult.getData();
527
528         assertNotNull(data);
529         assertEquals(1, data.size());
530         assertEquals("signalIsLost", data.get(0).getProblem());
531         assertEquals("Critical", data.get(0).getSeverity().toString());
532         assertEquals("s1", data.get(0).getNodeId());
533
534         //== UPDATE ================================
535         System.out.println("try to update entry");
536
537         dbRawProvider.doUpdateOrCreate(Entity.Faultlog.getName(), "1",
538                 "{'problem': 'CableLOS', 'severity': 'Major', 'node-id': 'test4657-78'}");
539
540         System.out.println("try to search entry 1");
541         readinput = new ReadFaultlogListInputBuilder()
542                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
543                         new FilterBuilder().setProperty("node-id").setFiltervalue("test").build()))
544                 .setPagination(getPagination(20, 1)).build();
545
546         //== VERIFY UPDATE ================================
547         readResult = dbProvider.readFaultLogList(readinput);
548         data = readResult.getData();
549
550
551         assertNotNull(data);
552         System.out.println(data);
553         assertEquals(0, data.size());
554
555         System.out.println("try to search entry 2");
556
557         readinput = new ReadFaultlogListInputBuilder()
558                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
559                         new FilterBuilder().setProperty("node-id").setFiltervalue("test*").build()))
560                 .setPagination(getPagination(20, 1)).build();
561
562         readResult = dbProvider.readFaultLogList(readinput);
563         data = readResult.getData();
564
565
566         assertNotNull(data);
567         assertEquals(1, data.size());
568         assertEquals("CableLOS", data.get(0).getProblem());
569         assertEquals("Major", data.get(0).getSeverity().toString());
570         assertEquals("test4657-78", data.get(0).getNodeId());
571
572         //== DELETE ================================
573
574         System.out.println("try to clear entry");
575         try {
576             dbRawProvider.doRemove(Entity.Faultlog.getName(), dbId);
577         } catch (Exception e) {
578             fail("problem deleting entry: " + e.getMessage());
579         }
580
581         //== VERIFY DELETE ===========================
582         System.out.println("verify entries deleted");
583         readResult = dbProvider
584                 .readFaultLogList(new ReadFaultlogListInputBuilder().setPagination(getPagination(20, 1)).build());
585         data = readResult.getData();
586         assertEquals(0, data.size());
587     }
588
589     @Test
590     public void testFaultCurrent() {
591         System.out.println("Starting faultCurrent test...");
592         String dbId = null;
593         dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
594                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
595                 SeverityType.NonAlarmed);
596         assertEquals("1", dbId);
597
598         // ==READ===========================
599         System.out.println("Trying to read...");
600
601
602         ReadFaultcurrentListInput readinput = new ReadFaultcurrentListInputBuilder()
603                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
604                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
605                 .setPagination(getPagination(20, 1)).build();
606
607         ReadFaultcurrentListOutputBuilder readResult = null;
608         try {
609             readResult = dbProvider.readFaultCurrentList(readinput);
610
611         } catch (Exception e) {
612             fail("Fault log not read: " + e.getMessage());
613         }
614
615         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultcurrent.list.output.Data> data =
616                 readResult.getData();
617
618
619         assertNotNull(data);
620         assertEquals(1, data.size());
621         assertEquals("signalIsLost", data.get(0).getProblem());
622         assertEquals("NonAlarmed", data.get(0).getSeverity().toString());
623         assertEquals("s1", data.get(0).getNodeId());
624         assertEquals(4340, data.get(0).getCounter().intValue());
625         assertEquals(new DateAndTime("2019-10-28T11:55:58.3Z"), data.get(0).getTimestamp());
626         assertEquals(4340, data.get(0).getCounter().intValue());
627         assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
628
629
630         // ==UPDATE============================
631         System.out.println("Trying to update...");
632
633         String json = "{\n" + "\"timestamp\": \"2019-12-28T11:55:58.3Z\",\n" + "\"node-id\": \"SDN-Controller-0\",\n"
634                 + "\"counter\": 75,\n" + "\"problem\": \"connectionLossNeOAM\",\n" + "}";
635
636         String updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Faultcurrent.getName(), dbId, json);
637         assertEquals(dbId, updatedDbId);
638
639         // ==READ============================
640
641         try {
642             readResult = dbProvider.readFaultCurrentList(readinput);
643
644         } catch (Exception e) {
645             fail("Fault log not read: " + e.getMessage());
646         }
647
648         data = readResult.getData();
649
650         assertNotNull(data);
651         assertEquals(1, data.size());
652         assertEquals("connectionLossNeOAM", data.get(0).getProblem());
653         assertEquals("SDN-Controller-0", data.get(0).getNodeId());
654         assertEquals(75, data.get(0).getCounter().intValue());
655         assertEquals("LP-MWPS-RADIO", data.get(0).getObjectId());
656
657         // ==DELETE============================
658         try {
659             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
660         } catch (Exception e) {
661             fail("problem deleting: " + e.getMessage());
662         }
663
664         // ==READ/VERIFY DELETE============================
665
666         try {
667             readResult = dbProvider.readFaultCurrentList(readinput);
668
669         } catch (Exception e) {
670             fail("Fault log not read: " + e.getMessage());
671         }
672
673         data = readResult.getData();
674
675         assertNotNull(data);
676         assertEquals(0, data.size());
677     }
678
679     @Test
680     public void testConnectionLog() {
681
682         // ==CLEAR================================
683         System.out.println("Clear before test");
684         try {
685             dbRawProvider.doRemove(Entity.Connectionlog.getName(), QueryBuilders.matchAllQuery());
686         } catch (Exception e) {
687             fail("problem deleting: " + e.getMessage());
688         }
689
690         // ==CREATE================================
691
692         System.out.println("Try create entry");
693         final String initialDbId = "1";
694         String dbId = null;
695         String json = "{\n" + "\"timestamp\": \"2019-11-01T11:28:34.7Z\",\n" + "\"status\": \"Connecting\",\n"
696                 + "\"node-id\": \"sim2230\",\n"
697                 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateConnectionlogInput\"\n"
698                 + "}";
699
700         dbId = dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), initialDbId, json);
701
702         assertEquals(initialDbId, dbId);
703
704         // ==READ================================
705         System.out.println("Try read entry");
706
707         ReadConnectionlogListInput readinput = new ReadConnectionlogListInputBuilder()
708                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
709                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
710                 .setPagination(getPagination(20, 1)).build();
711
712         ReadConnectionlogListOutputBuilder readResult = null;
713         try {
714             readResult = dbProvider.readConnectionlogList(readinput);
715
716         } catch (Exception e) {
717             fail("Connection log not read: " + e.getMessage());
718         }
719
720         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.connectionlog.list.output.Data> data =
721                 readResult.getData();
722
723         assertNotNull(data);
724         assertEquals(1, data.size());
725         assertEquals("Connecting", data.get(0).getStatus().toString());
726         assertEquals("sim2230", data.get(0).getNodeId());
727
728
729         // ==UPDATE================================
730         System.out.println("Try update entry");
731
732         dbRawProvider.doUpdateOrCreate(Entity.Connectionlog.getName(), dbId, "{'status' : 'Connected'}");
733
734         // ==READ 2================================
735         System.out.println("Try read updated entry");
736
737         readinput = new ReadConnectionlogListInputBuilder()
738                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
739                         new FilterBuilder().setProperty("status").setFiltervalue("Connected").build()))
740                 .setPagination(getPagination(20, 1)).build();
741
742         try {
743             readResult = dbProvider.readConnectionlogList(readinput);
744
745         } catch (Exception e) {
746             fail("Connection log not read: " + e.getMessage());
747         }
748
749         data = readResult.getData();
750
751         assertNotNull(data);
752         assertEquals(1, data.size());
753         assertEquals("Connected", data.get(0).getStatus().toString());
754         assertEquals("sim2230", data.get(0).getNodeId());
755
756         //== DELETE ================================
757
758         System.out.println("try to clear entry");
759         try {
760             dbRawProvider.doRemove(Entity.Connectionlog.getName(), dbId);
761         } catch (Exception e) {
762             fail("problem deleting entry: " + e.getMessage());
763         }
764
765         //== VERIFY DELETE ===========================
766         System.out.println("verify entries deleted");
767         readResult = dbProvider.readConnectionlogList(
768                 new ReadConnectionlogListInputBuilder().setPagination(getPagination(20, 1)).build());
769         data = readResult.getData();
770         assertEquals(0, data.size());
771
772     }
773
774     @Test
775     public void testEventLog() {
776         System.out.println("Test event log starting...");
777
778         // ==CLEAR================================
779         System.out.println("Clear before test");
780         try {
781             dbRawProvider.doRemove(Entity.Eventlog.getName(), QueryBuilders.matchAllQuery());
782         } catch (Exception e) {
783             fail("problem deleting: " + e.getMessage());
784         }
785         // ==CREATE============================
786
787         String dbId = null;
788         String json = " {\n" + "\"timestamp\": \"2019-11-08T16:39:23.0Z\",\n" + "\"new-value\": \"done\",\n"
789                 + "\"object-id\": \"SDN-Controller-0\",\n" + "\"attribute-name\": \"startup\",\n" + "\"counter\": 0,\n"
790                 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Eventlog\",\n"
791                 + "\"node-id\": \"SDN-Controller-0\"\n" + "}";
792
793         dbId = dbRawProvider.doUpdateOrCreate(Entity.Eventlog.getName(), "1", json);
794         assertNotNull(dbId);
795
796         // ==READ===========================
797
798         ReadEventlogListInput readinput = new ReadEventlogListInputBuilder()
799                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
800                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
801                 .setPagination(getPagination(20, 1)).build();
802         ReadEventlogListOutputBuilder readResult = null;
803         try {
804             readResult = dbProvider.readEventlogList(readinput);
805
806         } catch (Exception e) {
807             fail("problem reading eventlog");
808         }
809
810         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.eventlog.list.output.Data> data =
811                 readResult.getData();
812         assertEquals(1, data.size());
813
814         //== DELETE ================================
815
816         System.out.println("try to clear entry");
817         try {
818             dbRawProvider.doRemove(Entity.Eventlog.getName(), dbId);
819         } catch (Exception e) {
820             fail("problem deleting entry: " + e.getMessage());
821         }
822
823         //== VERIFY DELETE ===========================
824         System.out.println("verify entries deleted");
825         try {
826             readResult = dbProvider
827                     .readEventlogList(new ReadEventlogListInputBuilder().setPagination(getPagination(20, 1)).build());
828         } catch (IOException e) {
829             fail("problem reading eventlog");
830         }
831         data = readResult.getData();
832         assertEquals(0, data.size());
833
834     }
835
836     @Test
837     public void testInventory() {
838
839         System.out.println("Test inventory starting...");
840
841         // ==CLEAR================================
842         System.out.println("Clear before test");
843         try {
844             dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
845         } catch (Exception e) {
846             fail("problem deleting: " + e.getMessage());
847         }
848
849
850         // ==CREATE============================
851
852         String dbId = null;
853         String json = " {\"tree-level\": 1,\n" + "    \"parent-uuid\": \"SHELF-1.1.0.0\",\n"
854                 + "    \"node-id\": \"sim2\",\n" + "    \"uuid\": \"CARD-1.1.8.0\",\n"
855                 + "    \"contained-holder\": [ ],\n" + "    \"manufacturer-name\": \"Lorem Ipsum\",\n"
856                 + "    \"manufacturer-identifier\": \"ONF-Wireless-Transport\",\n" + "    \"serial\": \"sd-dsa-eqw\",\n"
857                 + "    \"date\": \"2008-10-21T00:00:00.0Z\",\n"
858                 + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory\",\n"
859                 + "    \"version\": \"unknown\",\n" + "    \"description\": \"WS/DS3\",\n"
860                 + "    \"part-type-id\": \"unknown\",\n" + "    \"model-identifier\": \"model-id-s3s\",\n"
861                 + "    \"type-name\": \"p4.module\"}";
862
863         dbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), "1 1", json);
864         assertNotNull(dbId);
865
866         // ==READ===========================
867         ReadInventoryListInput readinput = new ReadInventoryListInputBuilder()
868                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
869                         new FilterBuilder().setProperty("id").setFiltervalue(dbId).build()))
870                 .setPagination(getPagination(20, 1)).build();
871         ReadInventoryListOutputBuilder readResult = null;
872         try {
873             readResult = dbProvider.readInventoryList(readinput);
874
875         } catch (Exception e) {
876             fail("Problem reading inventory list" + e.getMessage());
877         }
878
879         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.inventory.list.output.Data> data =
880                 readResult.getData();
881         assertEquals(1, data.size());
882         assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
883         assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
884         assertEquals("sim2", data.get(0).getNodeId());
885         assertEquals("unknown", data.get(0).getVersion());
886         assertEquals("WS/DS3", data.get(0).getDescription());
887         assertEquals("2008-10-21T00:00:00.0Z", data.get(0).getDate());
888         assertEquals("sd-dsa-eqw", data.get(0).getSerial());
889         System.out.println(data.get(0).getDate());
890
891         // ==UPDATE============================
892         String updatedDbId = null;
893         final String[] holderArray = {"Lorem Ipsum 1", "Lorem Ipsum 2", "Lorem Ipsum &%/$_2"};
894         String updatejson = " {" + "    \"node-id\": \"sim5\",\n"
895                 + "    \"contained-holder\": [ \"Lorem Ipsum 1\", \"Lorem Ipsum 2\", \"Lorem Ipsum &%/$_2\" ],\n"
896                 + "    \"serial\": \"sd-dsa-eww\",\n" + "    \"date\": \"2008-11-21T00:00:00.0Z\",\n"
897                 + "    \"part-type-id\": \"not unknown\",\n" + "}";
898
899         updatedDbId = dbRawProvider.doUpdateOrCreate(Entity.Inventoryequipment.getName(), dbId, updatejson);
900         assertEquals(dbId, updatedDbId);
901
902         try {
903             readResult = dbProvider.readInventoryList(readinput);
904
905         } catch (Exception e) {
906             fail("Problem reading inventory list" + e.getMessage());
907         }
908
909         data = readResult.getData();
910
911         assertEquals(1, data.size());
912         assertEquals("Lorem Ipsum", data.get(0).getManufacturerName());
913         assertEquals("ONF-Wireless-Transport", data.get(0).getManufacturerIdentifier());
914         assertEquals("sim5", data.get(0).getNodeId());
915         assertEquals("not unknown", data.get(0).getPartTypeId());
916         assertEquals("WS/DS3", data.get(0).getDescription());
917         assertEquals("2008-11-21T00:00:00.0Z", data.get(0).getDate());
918         assertEquals("sd-dsa-eww", data.get(0).getSerial());
919         assertEquals(holderArray.length, data.get(0).getContainedHolder().size());
920         assertEquals(holderArray[0], data.get(0).getContainedHolder().get(0));
921         assertEquals(holderArray[1], data.get(0).getContainedHolder().get(1));
922         assertEquals(holderArray[2], data.get(0).getContainedHolder().get(2));
923
924         // ==DELETE============================
925
926         System.out.println("delete after test");
927         try {
928             dbRawProvider.doRemove(Entity.Inventoryequipment.getName(), QueryBuilders.matchAllQuery());
929         } catch (Exception e) {
930             fail("problem deleting: " + e.getMessage());
931         }
932
933         // ==VERIFY DELETE ============================
934
935         try {
936             readResult = dbProvider.readInventoryList(readinput);
937
938         } catch (Exception e) {
939             fail("Problem reading inventory list" + e.getMessage());
940         }
941
942         data = readResult.getData();
943         assertEquals(0, data.size());
944
945     }
946
947     @Test
948     public void test15MinPerformanceReadLtpListWithoutNodeIdSetThrowsException() {
949
950         System.out.println("Reading 15m ltp list without node id filter set throws an exception test start...");
951
952         try {
953             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
954         } catch (Exception e) {
955             fail("problem deleting: " + e.getMessage());
956         }
957
958         System.out.println("create entries...");
959
960         createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
961         createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
962
963         createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
964         createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
965         createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
966         createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
967
968         System.out.println("trying to read, should throw exception...");
969
970
971         ReadPmdata15mLtpListInput readLtp =
972                 new ReadPmdata15mLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
973
974         ReadPmdata15mLtpListOutputBuilder readltpResult = null;
975
976         try {
977             readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
978             fail("No exception thrown!");
979         } catch (Exception e) {
980             System.out.println(e);
981             assertTrue(e instanceof IllegalArgumentException);
982             assertEquals("no nodename in filter found ", e.getMessage());
983         }
984
985         assertNull(readltpResult);
986
987         //== DELETE ================================
988
989         System.out.println("try to clear entry");
990         try {
991             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
992         } catch (Exception e) {
993             fail("problem deleting entry: " + e.getMessage());
994         }
995
996         //== VERIFY DELETE ===========================
997         System.out.println("verify entries deleted");
998         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data> data =
999                 dbProvider
1000                         .readPmdata15mList(
1001                                 new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build())
1002                         .getData();
1003
1004         assertEquals(0, data.size());
1005     }
1006
1007     @Test
1008     public void test15MinPerformanceData() {
1009         // == CLEAR BEFORE TESTS ============================
1010         System.out.println("Test 15 min performance...");
1011
1012         try {
1013             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1014         } catch (Exception e) {
1015             fail("problem deleting: " + e.getMessage());
1016         }
1017
1018         // == CREATE ============================
1019
1020         System.out.println("create entries...");
1021
1022         createPerformanceData("1", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1023         createPerformanceData("2", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1024
1025         createPerformanceData("4", GranularityPeriodType.Period15Min, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1026         createPerformanceData("5", GranularityPeriodType.Period15Min, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1027         createPerformanceData("6", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1028         createPerformanceData("3", GranularityPeriodType.Period15Min, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1029
1030         // == READ ============================
1031         System.out.println("read list entries...");
1032
1033         ReadPmdata15mListInput read = new ReadPmdata15mListInputBuilder()
1034                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1035                         new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1036                 .setPagination(getPagination(20, 1)).build();
1037
1038         ReadPmdata15mListOutputBuilder readResult = null;
1039
1040         try {
1041             readResult = dbProvider.readPmdata15mList(read);
1042         } catch (Exception e) {
1043             fail("Problem reading 15m data");
1044         }
1045
1046         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data> data =
1047                 readResult.getData();
1048
1049         assertNotNull(data);
1050         assertEquals(2, data.size());
1051
1052         System.out.println("read ltp entries with node name set...");
1053
1054         ReadPmdata15mLtpListInput readLtp = new ReadPmdata15mLtpListInputBuilder()
1055                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1056                         new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1057                 .setPagination(getPagination(20, 1)).build();
1058
1059         ReadPmdata15mLtpListOutputBuilder readltpResult = null;
1060
1061         try {
1062             readltpResult = dbProvider.readPmdata15mLtpList(readLtp);
1063         } catch (Exception e) {
1064             fail("Problem reading 15m ltp data");
1065         }
1066
1067         List<String> dataLtp = readltpResult.getData();
1068
1069         assertNotNull(dataLtp);
1070         assertEquals(2, dataLtp.size());
1071         assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1072         assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1073
1074         System.out.println("read device entries...");
1075
1076         ReadPmdata15mDeviceListInput readDevices =
1077                 new ReadPmdata15mDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1078
1079         ReadPmdata15mDeviceListOutputBuilder readDeviceResult = null;
1080
1081         try {
1082             readDeviceResult = dbProvider.readPmdata15mDeviceList(readDevices);
1083         } catch (Exception e) {
1084             fail("Problem reading 15m device data");
1085         }
1086
1087         List<String> dataDevice = readDeviceResult.getData();
1088
1089         assertNotNull(dataDevice);
1090         assertEquals(2, dataDevice.size());
1091         assertTrue(dataDevice.contains("a2"));
1092         assertTrue(dataDevice.contains("a3"));
1093
1094         //== DELETE ================================
1095
1096         System.out.println("try to clear entry");
1097         try {
1098             dbRawProvider.doRemove(Entity.Historicalperformance15min.getName(), QueryBuilders.matchAllQuery());
1099         } catch (Exception e) {
1100             fail("problem deleting entry: " + e.getMessage());
1101         }
1102
1103         //== VERIFY DELETE ===========================
1104         System.out.println("verify entries deleted");
1105         readResult = dbProvider
1106                 .readPmdata15mList(new ReadPmdata15mListInputBuilder().setPagination(getPagination(20, 1)).build());
1107         data = readResult.getData();
1108         assertEquals(0, data.size());
1109
1110     }
1111
1112     @Test
1113     public void test24hPerformanceData() {
1114         System.out.println("Test 24h performance...");
1115
1116         try {
1117             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1118         } catch (Exception e) {
1119             fail("problem deleting: " + e.getMessage());
1120         }
1121
1122         System.out.println("create entries...");
1123         GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1124         createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1125         createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1126         String aDbId = createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-06", "a2");
1127
1128         createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1129         createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1130         createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1131
1132         System.out.println("read all list entries...");
1133
1134         ReadPmdata24hListInput read = new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build();
1135
1136         ReadPmdata24hListOutputBuilder readResult = null;
1137
1138         try {
1139             readResult = dbProvider.readPmdata24hList(read);
1140         } catch (Exception e) {
1141             fail("Problem reading 24h data");
1142         }
1143
1144         List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._24h.list.output.Data> data =
1145                 readResult.getData();
1146
1147         assertNotNull(data);
1148         assertEquals(6, data.size());
1149
1150
1151         System.out.println("filter list entries...");
1152
1153         read = new ReadPmdata24hListInputBuilder()
1154                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1155                         new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1156                 .setPagination(getPagination(20, 1)).build();
1157
1158         readResult = null;
1159
1160         try {
1161             readResult = dbProvider.readPmdata24hList(read);
1162         } catch (Exception e) {
1163             fail("Problem reading 24h data");
1164         }
1165
1166         data = readResult.getData();
1167
1168         assertNotNull(data);
1169         assertEquals(3, data.size());
1170
1171         System.out.println("read ltp entries with node name set...");
1172
1173         ReadPmdata24hLtpListInput readLtp = new ReadPmdata24hLtpListInputBuilder()
1174                 .setFilter(YangHelper2.getListOrMap(FilterKey.class,
1175                         new FilterBuilder().setProperty("node-name").setFiltervalue("a2").build()))
1176                 .setPagination(getPagination(20, 1)).build();
1177
1178         ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1179
1180         try {
1181             readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1182         } catch (Exception e) {
1183             fail("Problem reading 24h ltp data");
1184         }
1185
1186         List<String> dataLtp = readltpResult.getData();
1187
1188         assertNotNull(dataLtp);
1189         assertEquals(3, dataLtp.size());
1190         assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1191         assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1192         assertTrue(dataLtp.contains("LP-MWPS-TTP-06"));
1193
1194
1195         System.out.println("read device entries...");
1196
1197         ReadPmdata24hDeviceListInput readDevices =
1198                 new ReadPmdata24hDeviceListInputBuilder().setPagination(getPagination(20, 1)).build();
1199
1200         ReadPmdata24hDeviceListOutputBuilder readDeviceResult = null;
1201
1202         try {
1203             readDeviceResult = dbProvider.readPmdata24hDeviceList(readDevices);
1204         } catch (Exception e) {
1205             fail("Problem reading 24h device data");
1206         }
1207
1208         List<String> dataDevice = readDeviceResult.getData();
1209
1210         assertNotNull(dataDevice);
1211         assertEquals(2, dataDevice.size());
1212         assertTrue(dataDevice.contains("a2"));
1213         assertTrue(dataDevice.contains("a3"));
1214
1215         // == UPDATE ==============================
1216
1217         boolean success = dbRawProvider.doUpdate(Entity.Historicalperformance24h.getName(),
1218                 "{'uuid-interface':'LTP-TEST-MWP-097'}", QueryBuilders.termQuery("_id", aDbId));
1219         assertTrue("update dbentry not succeeded", success);
1220         try {
1221             readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1222         } catch (Exception e) {
1223             fail("Problem reading 24h ltp data");
1224         }
1225
1226         // == VERIFY UPDATE ==============================
1227
1228         dataLtp = readltpResult.getData();
1229
1230         assertNotNull(dataLtp);
1231         assertEquals(3, dataLtp.size());
1232         assertTrue(dataLtp.contains("LP-MWPS-TTP-02"));
1233         assertTrue(dataLtp.contains("LP-MWPS-TTP-01"));
1234         assertTrue(dataLtp.contains("LTP-TEST-MWP-097"));
1235
1236
1237
1238         //== DELETE ===========================
1239
1240         System.out.println("try to clear entries");
1241         try {
1242             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1243         } catch (Exception e) {
1244             fail("problem deleting entry: " + e.getMessage());
1245         }
1246
1247         //== VERIFY DELETE ===========================
1248         System.out.println("verify entries deleted");
1249         readResult = dbProvider
1250                 .readPmdata24hList(new ReadPmdata24hListInputBuilder().setPagination(getPagination(20, 1)).build());
1251         data = readResult.getData();
1252         assertEquals(0, data.size());
1253     }
1254
1255     @Test
1256     public void test24hPerformanceDataReadLtpListWithoutNodeIdSetThrowsException() {
1257         System.out.println("Test 24 hour tp list without node id filter set throws an exception test start...\"...");
1258
1259         try {
1260             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1261         } catch (Exception e) {
1262             fail("problem deleting: " + e.getMessage());
1263         }
1264
1265         System.out.println("create entries...");
1266
1267         GranularityPeriodType timeInterval = GranularityPeriodType.Period24Hours;
1268         createPerformanceData("1", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a2");
1269         createPerformanceData("2", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a2");
1270
1271         createPerformanceData("4", timeInterval, "PM_RADIO_15M_6", "LP-MWPS-TTP-02", "a3");
1272         createPerformanceData("5", timeInterval, "PM_RADIO_15M_4", "LP-MWPS-TTP-01", "a3");
1273         createPerformanceData("6", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-03", "a3");
1274         createPerformanceData("3", timeInterval, "PM_RADIO_15M_7", "LP-MWPS-TTP-05", "a3");
1275
1276         System.out.println("trying to read, should throw exception...");
1277
1278
1279         ReadPmdata24hLtpListInput readLtp =
1280                 new ReadPmdata24hLtpListInputBuilder().setPagination(getPagination(20, 1)).build();
1281
1282         ReadPmdata24hLtpListOutputBuilder readltpResult = null;
1283
1284         try {
1285             readltpResult = dbProvider.readPmdata24hLtpList(readLtp);
1286             fail("No exception thrown!");
1287         } catch (Exception e) {
1288             System.out.println(e);
1289             assertTrue(e instanceof IllegalArgumentException);
1290             assertEquals("no nodename in filter found ", e.getMessage());
1291         }
1292
1293         assertNull(readltpResult);
1294
1295         try {
1296             dbRawProvider.doRemove(Entity.Historicalperformance24h.getName(), QueryBuilders.matchAllQuery());
1297         } catch (Exception e) {
1298             fail("problem deleting: " + e.getMessage());
1299         }
1300     }
1301
1302     @Test
1303     public void testUrlEncoding() {
1304         System.out.println("Testing url encding");
1305
1306         final String test = "Lorem Ipsum";
1307         final String test1 = "Lorem/Ipsum";
1308         final String test2 = "Lorem_Ipsum";
1309         final String test3 = "Lorem%Ipsum";
1310
1311         assertEquals("Lorem%20Ipsum", BaseRequest.urlEncodeValue(test));
1312         assertEquals("Lorem%2FIpsum", BaseRequest.urlEncodeValue(test1));
1313         assertEquals("Lorem_Ipsum", BaseRequest.urlEncodeValue(test2));
1314         assertEquals("Lorem%25Ipsum", BaseRequest.urlEncodeValue(test3));
1315     }
1316
1317     @Test
1318     public void testDoUpdateOrCreateWithNullId() {
1319         System.out.println("Test DoUpdateOrCreate doesn't create new database entry if null is passed");
1320
1321         String dbId = clearAndCreatefaultEntity(null, Entity.Faultlog.getName(),
1322                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultlogInput",
1323                 SeverityType.Critical);
1324         assertNull(dbId);
1325     }
1326
1327     @Test
1328     public void readTestFaultCurrentViaRawDbProvider() {
1329         System.out.println("Starting faultCurrent test...");
1330         String dbId = null;
1331         dbId = clearAndCreatefaultEntity("1", Entity.Faultcurrent.getName(),
1332                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput",
1333                 SeverityType.Critical);
1334         assertEquals("1", dbId);
1335
1336         // ==READ===========================
1337         System.out.println("Trying to read...");
1338
1339         String readResult = null;
1340         try {
1341             readResult = dbRawProvider.doReadJsonData(Entity.Faultcurrent.getName(), dbId);
1342
1343         } catch (Exception e) {
1344             fail("Fault log not read: " + e.getMessage());
1345         }
1346
1347
1348         String expectedDbResult =
1349                 "{\"severity\":\"Critical\",\"node-id\":\"s1\",\"problem\":\"signalIsLost\",\"counter\":4340,\"object-id\":\"LP-MWPS-RADIO\",\"implemented-interface\":\"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateFaultcurrentInput\",\"type\":\"ProblemNotificationXml\",\"timestamp\":\"2019-10-28T11:55:58.3Z\"}";
1350
1351         System.out.println(readResult);
1352         assertNotNull(readResult);
1353         assertEquals(expectedDbResult, readResult);
1354
1355         SearchResult<SearchHit> searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1356         assertNotNull(searchResult);
1357
1358         List<SearchHit> hits = searchResult.getHits();
1359
1360         assertNotNull(hits);
1361         assertEquals(1, searchResult.getTotal());
1362         assertEquals(expectedDbResult, hits.get(0).getSourceAsString());
1363
1364         //== DELETE ==============================
1365         try {
1366             dbRawProvider.doRemove(Entity.Faultcurrent.getName(), QueryBuilders.matchAllQuery());
1367         } catch (Exception e) {
1368             fail("problem deleting: " + e.getMessage());
1369         }
1370         //== VERIFY DELETE ========================
1371         searchResult = dbRawProvider.doReadAllJsonData(Entity.Faultcurrent.getName());
1372         hits = searchResult.getHits();
1373         assertNotNull(hits);
1374         assertEquals(0, searchResult.getTotal());
1375
1376     }
1377
1378     @Test
1379     public void testOutputCamelCase() throws ClassNotFoundException {
1380         try {
1381             String jsonString = "{\n" + "\"timestamp\": \"2020-02-20T09:31:22.3Z\",\n"
1382                     + "\"object-id\": \"LP-MWPS-RADIO\",\n" + "\"severity\": \"Critical\",\n" + "\"counter\": 10,\n"
1383                     + "\"implemented-interface\": \"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog\",\n"
1384                     + "\"source-type\": \"Netconf\",\n" + "\"node-id\": \"sim4\",\n" + "\"problem\": \"signalIsLost\"\n"
1385                     + "}";
1386             DataProviderYangToolsMapper yangtoolsMapper = new DataProviderYangToolsMapper();
1387             Faultlog log = yangtoolsMapper.readValue(jsonString, Faultlog.class);
1388             System.out.println(yangtoolsMapper.writeValueAsString((new FaultlogBuilder(log).build())));
1389             System.out.println("Check3");
1390         } catch (IOException e) {
1391             e.printStackTrace();
1392             fail("Fail");
1393         }
1394
1395     }
1396
1397     @Test
1398     public void testUserdata() {
1399         final String USERNAME = "admin";
1400         final String DATA1 = "{\n" + "    \"networkMap\":{\n"
1401                 + "        \"startupPosition\": {\"lat\": 52.5095, \"lon\":13.329, \"zoom\": 10},\n"
1402                 + "        \"tileOpacity\": 90,\n" + "        \"styling\":{\n" + "            \"theme\": \"light\"\n"
1403                 + "        }\n" + "    },\n" + "    \"dashboard\":{\n" + "        \"color\":\"#F00\"\n" + "    }\n"
1404                 + "}";
1405         HtUserdataManagerImpl client = new HtUserdataManagerImpl(dbRawProvider);
1406         boolean success = client.setUserdata(USERNAME, DATA1);
1407         assertTrue(success);
1408         String data = client.getUserdata(USERNAME);
1409         //JSONAssert.assertEquals(DATA1,data,false);
1410
1411         assertEquals("admin", UserdataHttpServlet.decodeJWTPayloadUsername(String.format("Bearer %s",
1412                 "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbkBzZG4iLCJyb2xlcyI6WyJ1c2VyIiwiYWRtaW4iXSwiaXN"
1413                 + "zIjoiT3BlbmRheWxpZ2h0IiwibmFtZSI6ImFkbWluQHNkbiIsImV4cCI6MTYxNTc5NTg1NywiZmFtaWx5X25hbWUiOiIifQ.wB"
1414                 + "PdB45_bryU6_kSCu3be3dq3yth24niSXi6b2_1ufc"),
1415                 "sub"));
1416     }
1417
1418     private Pagination getPagination(long pageSize, int page) {
1419         return new PaginationBuilder().setPage(YangHelper2.getBigIntegerOrUint64(BigInteger.valueOf(page)))
1420                 .setSize(YangHelper2.getLongOrUint32(pageSize)).build();
1421     }
1422
1423
1424     private String clearAndCreatefaultEntity(String initialDbId, String entityType, String implementedInterface,
1425             SeverityType severity) {
1426         // ==CLEAR BEFORE TEST============================
1427         System.out.println("try to clear entry");
1428         try {
1429             dbRawProvider.doRemove(entityType, QueryBuilders.matchAllQuery());
1430         } catch (Exception e) {
1431             fail("problem deleting: " + e.getMessage());
1432         }
1433
1434
1435         return createFaultEntity(initialDbId, entityType, implementedInterface, severity);
1436     }
1437
1438     private String createFaultEntity(String initialDbId, String entityType, String implementedInterface,
1439             SeverityType severity) {
1440         // ==CREATE============================
1441         System.out.println("try to create entry");
1442         String dbId = null;
1443
1444         try {
1445
1446             dbId = dbRawProvider.doUpdateOrCreate(entityType, initialDbId,
1447                     "{\n" + "\"timestamp\": \"2019-10-28T11:55:58.3Z\",\n" + "\"object-id\": \"LP-MWPS-RADIO\",\n"
1448                             + "\"severity\": \"" + severity.toString() + "\",\n" + "\"node-id\": \"s1\",\n"
1449                             + "\"implemented-interface\": \"" + implementedInterface + "\",\n" + "\"counter\": 4340,\n"
1450                             + "\"problem\": \"signalIsLost\",\n" + "\"type\": \"ProblemNotificationXml\"\n" + "}");
1451
1452
1453
1454         } catch (Exception e) {
1455             fail("Problem creating fault log entry" + e.getMessage());
1456         }
1457
1458         return dbId;
1459     }
1460
1461     private String createPerformanceData(String initialDbId, GranularityPeriodType timeInterval, String scannerId,
1462             String uuidInterface, String nodename) {
1463
1464         String json = "{\n" + "\"node-name\": \"" + nodename + "\",\n" + "\"uuid-interface\": \"" + uuidInterface
1465                 + "\",\n" + "\"layer-protocol-name\": \"MWPS\",\n" + "\"radio-signal-id\": \"Test8\",\n"
1466                 + "\"time-stamp\": \"2017-03-01T06:15:00.0Z\",\n" + "\"granularity-period\": \""
1467                 + timeInterval.toString() + "\",\n" + "\"scanner-id\": \"" + scannerId + "\",\n"
1468                 + "\"performance-data\": {\n" + "\"cses\": 0,\n" + "\"ses\": 0,\n" + "\"es\": 0,\n"
1469                 + "\"tx-level-max\": 3,\n" + "\"tx-level-avg\": 3,\n" + "\"rx-level-min\": -44,\n"
1470                 + "\"rx-level-max\": -45,\n" + "\"rx-level-avg\": -44,\n" + "\"time2-states\": 0,\n"
1471                 + "\"time4-states-s\": 0,\n" + "\"time4-states\": 0,\n" + "\"time8-states\": -1,\n"
1472                 + "\"time16-states-s\": -1,\n" + "\"time16-states\": 0,\n" + "\"time32-states\": -1,\n"
1473                 + "\"time64-states\": 900,\n" + "\"time128-states\": -1,\n" + "\"time256-states\": -1,\n"
1474                 + "\"time512-states\": -1,\n" + "\"time512-states-l\": -1,\n" + "\"unavailability\": 0,\n"
1475                 + "\"tx-level-min\": 3,\n" + "\"time1024-states\": -1,\n" + "\"time1024-states-l\": -1,\n"
1476                 + "\"time2048-states\": -1,\n" + "\"time2048-states-l\": -1,\n" + "\"time4096-states\": -1,\n"
1477                 + "\"time4096-states-l\": -1,\n" + "\"time8192-states\": -1,\n" + "\"time8192-states-l\": -1,\n"
1478                 + "\"snir-min\": -99,\n" + "\"snir-max\": -99,\n" + "\"snir-avg\": -99,\n" + "\"xpd-min\": -99,\n"
1479                 + "\"xpd-max\": -99,\n" + "\"xpd-avg\": -99,\n" + "\"rf-temp-min\": -99,\n" + "\"rf-temp-max\": -99,\n"
1480                 + "\"rf-temp-avg\": -99,\n" + "\"defect-blocks-sum\": -1,\n" + "\"time-period\": 900\n" + "},\n"
1481                 + "\"suspect-interval-flag\": false\n" + "}";
1482
1483         if (timeInterval.equals(GranularityPeriodType.Period15Min)) {
1484             return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance15min.getName(), initialDbId, json);
1485         } else {
1486             return dbRawProvider.doUpdateOrCreate(Entity.Historicalperformance24h.getName(), initialDbId, json);
1487         }
1488     }
1489
1490 }