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