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