306fe95f406b844d03cf1a876de6d9d803e87480
[ccsdk/features.git] /
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 package org.onap.ccsdk.features.sdnr.wt.dataprovider.data;
19
20 import java.io.IOException;
21 import java.util.concurrent.TimeUnit;
22
23 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
24 import org.onap.ccsdk.features.sdnr.wt.common.database.config.HostInfo;
25 import org.onap.ccsdk.features.sdnr.wt.dataprovider.data.DataObjectAcessorPm.Intervall;
26 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
27 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.IEntityDataProvider;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceInput;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMaintenanceOutputBuilder;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerInput;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateMediatorServerOutputBuilder;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.CreateNetworkElementConnectionOutputBuilder;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMaintenanceInput;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMaintenanceOutputBuilder;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMediatorServerInput;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteMediatorServerOutputBuilder;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteNetworkElementConnectionInput;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.DeleteNetworkElementConnectionOutputBuilder;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Entity;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.EntityInput;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.MaintenanceEntity;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.MediatorServerEntity;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.NetworkElementConnectionEntity;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadConnectionlogListOutputBuilder;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListInput;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadEventlogListOutputBuilder;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultcurrentListOutputBuilder;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadFaultlogListOutputBuilder;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadInventoryListOutputBuilder;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMaintenanceListOutputBuilder;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadMediatorServerListOutputBuilder;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadNetworkElementConnectionListOutputBuilder;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mDeviceListOutputBuilder;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mListOutputBuilder;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata15mLtpListOutputBuilder;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hDeviceListOutputBuilder;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hListOutputBuilder;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadPmdata24hLtpListOutputBuilder;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ReadStatusOutputBuilder;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceInput;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMaintenanceOutputBuilder;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerInput;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateMediatorServerOutputBuilder;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionInput;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.UpdateNetworkElementConnectionOutputBuilder;
66 import org.slf4j.Logger;
67 import org.slf4j.LoggerFactory;
68
69 public class ElasticSearchDataProvider implements IEntityDataProvider {
70
71     private static final Logger LOG = LoggerFactory.getLogger(ElasticSearchDataProvider.class);
72
73     private final HtDatabaseClient dbClient;
74     private final DataObjectAcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultcurrent.list.output.Data> eventRWFaultCurrent;
75     private final DataObjectAcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultlog.list.output.Data> eventRWFaultLog;
76     private final DataObjectAcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.mediator.server.list.output.Data> mediatorserverRW;
77     private final DataObjectAcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.maintenance.list.output.Data> maintenanceRW;
78     private final DataObjectAcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.Data> equipmentRW;
79     private final DataObjectAcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.connectionlog.list.output.Data> connnectionlogRW;
80     private final DataObjectAcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.eventlog.list.output.Data> eventlogRW;
81     private final DataObjectAcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.network.element.connection.list.output.Data> networkelementConnectionRW;
82     private final DataObjectAcessorPm<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data> pm15mRW;
83     private final DataObjectAcessorPm<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.list.output.Data> pm24hRW;
84
85     private final DataObjectAcessorStatus readStatus;
86     private final HtDatabaseEventsService databaseService;
87
88     public ElasticSearchDataProvider(HostInfo[] hosts) throws Exception {
89         LOG.info("Start {}", this.getClass().getName());
90
91         this.dbClient = new HtDatabaseClient(hosts);
92         this.mediatorserverRW = new DataObjectAcessor<>(dbClient, Entity.MediatorServer,
93                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.mediator.server.list.output.Data.class);
94         this.mediatorserverRW.setWriteInterface(MediatorServerEntity.class);
95
96         this.maintenanceRW = new DataObjectAcessor<>(dbClient, Entity.Maintenancemode,
97                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.maintenance.list.output.Data.class);
98         this.maintenanceRW.setWriteInterface(MaintenanceEntity.class);
99
100         this.equipmentRW = new DataObjectAcessor<>(dbClient, Entity.Inventoryequipment,
101                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.Data.class);
102
103         this.eventRWFaultCurrent = new DataObjectAcessor<>(dbClient, Entity.Faultcurrent,
104                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultcurrent.list.output.Data.class);
105
106         this.eventRWFaultLog = new DataObjectAcessor<>(dbClient, Entity.Faultlog,
107                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultlog.list.output.Data.class);
108
109         this.connnectionlogRW = new DataObjectAcessor<>(dbClient, Entity.Connectionlog,
110                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.connectionlog.list.output.Data.class);
111
112         this.eventlogRW = new DataObjectAcessor<>(dbClient, Entity.Eventlog,
113                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.eventlog.list.output.Data.class);
114
115         this.networkelementConnectionRW = new DataObjectAcessor<>(dbClient, Entity.NetworkelementConnection,
116                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.network.element.connection.list.output.Data.class);
117         this.networkelementConnectionRW.setWriteInterface(NetworkElementConnectionEntity.class);
118
119         this.pm15mRW = new DataObjectAcessorPm<>(dbClient, Intervall.PMDATA15M, Entity.Historicalperformance15min,
120                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data.class);
121
122         this.pm24hRW = new DataObjectAcessorPm<>(dbClient, Intervall.PMDATA24H, Entity.Historicalperformance24h,
123                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.list.output.Data.class);
124
125         this.readStatus = new DataObjectAcessorStatus(dbClient, Entity.Faultcurrent );
126
127         this.databaseService = new HtDatabaseEventsService(dbClient);
128     }
129
130     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultcurrent.list.output.Data
131     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultcurrent.list.output.PaginationBuilder
132     //eventRWFaultCurrent
133     public ReadFaultcurrentListOutputBuilder readFaultCurrentList(EntityInput input) {
134
135         ReadFaultcurrentListOutputBuilder outputBuilder = new ReadFaultcurrentListOutputBuilder();
136
137         QueryResult<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultcurrent.list.output.Data> result = this.eventRWFaultCurrent
138                 .getData(input);
139         outputBuilder.setData(result.getResult().getHits());
140         outputBuilder.setPagination(
141                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultcurrent.list.output.PaginationBuilder(
142                         result.getPagination()).build());
143         return outputBuilder;
144     }
145
146     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultlog.list.output.Data
147     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultlog.list.output.PaginationBuilder
148     //eventRWFaultLog
149     public ReadFaultlogListOutputBuilder readFaultLogList(EntityInput input) {
150         ReadFaultlogListOutputBuilder outputBuilder = new ReadFaultlogListOutputBuilder();
151         QueryResult<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultlog.list.output.Data> result = this.eventRWFaultLog
152                 .getData(input);
153         outputBuilder.setData(result.getResult().getHits());
154         outputBuilder.setPagination(
155                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.faultlog.list.output.PaginationBuilder(
156                         result.getPagination()).build());
157         return outputBuilder;
158     }
159
160     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.maintenance.list.output.Data
161     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.maintenance.list.output.PaginationBuilder
162     //maintenanceRW
163     public ReadMaintenanceListOutputBuilder readMaintenanceList(EntityInput input) {
164         ReadMaintenanceListOutputBuilder outputBuilder = new ReadMaintenanceListOutputBuilder();
165         QueryResult<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.maintenance.list.output.Data> result = this.maintenanceRW
166                 .getData(input);
167         outputBuilder.setData(result.getResult().getHits());
168         outputBuilder.setPagination(
169                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.maintenance.list.output.PaginationBuilder(
170                         result.getPagination()).build());
171         return outputBuilder;
172     }
173
174     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.mediator.server.list.output.Data
175     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.mediator.server.list.output.Pagination
176     //mediatorserverRW
177     public ReadMediatorServerListOutputBuilder readMediatorServerList(EntityInput input) {
178
179         ReadMediatorServerListOutputBuilder outputBuilder = new ReadMediatorServerListOutputBuilder();
180         QueryResult<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.mediator.server.list.output.Data> result = this.mediatorserverRW
181                 .getData(input);
182         outputBuilder.setData(result.getResult().getHits());
183         outputBuilder.setPagination(
184                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.mediator.server.list.output.PaginationBuilder(
185                         result.getPagination()).build());
186         return outputBuilder;
187     }
188
189     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.network.element.connection.list.output.Data
190     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.network.element.connection.list.output.PaginationBuilder
191     //networkelementConnectionRW
192     public ReadNetworkElementConnectionListOutputBuilder readNetworkElementConnectionList(
193             EntityInput input) {
194         ReadNetworkElementConnectionListOutputBuilder outputBuilder = new ReadNetworkElementConnectionListOutputBuilder();
195         QueryResult<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.network.element.connection.list.output.Data> result = this.networkelementConnectionRW
196                 .getData(input);
197         outputBuilder.setData(result.getResult().getHits());
198         outputBuilder.setPagination(
199                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.network.element.connection.list.output.PaginationBuilder(
200                         result.getPagination()).build());
201         return outputBuilder;
202     }
203
204     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.Data
205     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.PaginationBuilder
206     //equipmentRW
207     public ReadInventoryListOutputBuilder readInventoryList(EntityInput input) {
208         ReadInventoryListOutputBuilder outputBuilder = new ReadInventoryListOutputBuilder();
209         QueryResult<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.Data> result = this.equipmentRW
210                 .getData(input);
211         outputBuilder.setData(result.getResult().getHits());
212         outputBuilder.setPagination(
213                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.PaginationBuilder(
214                         result.getPagination()).build());
215         return outputBuilder;
216     }
217
218     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.Data
219     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.inventory.list.output.PaginationBuilder
220     //connnectionlogRW
221     public ReadConnectionlogListOutputBuilder readConnectionlogList(EntityInput input) {
222         ReadConnectionlogListOutputBuilder outputBuilder = new ReadConnectionlogListOutputBuilder();
223         QueryResult<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.connectionlog.list.output.Data> result = this.connnectionlogRW
224                 .getData(input);
225         outputBuilder.setData(result.getResult().getHits());
226         outputBuilder.setPagination(
227                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.connectionlog.list.output.PaginationBuilder(
228                         result.getPagination()).build());
229         return outputBuilder;
230     }
231
232     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.eventlog.list.output.Data
233     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.eventlog.list.output.PaginationBuilder
234     //eventlogRW
235     public ReadEventlogListOutputBuilder readEventlogList(ReadEventlogListInput input) throws IOException {
236         ReadEventlogListOutputBuilder outputBuilder = new ReadEventlogListOutputBuilder();
237         QueryResult<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.eventlog.list.output.Data> result = this.eventlogRW
238                 .getData(input);
239         outputBuilder.setData(result.getResult().getHits());
240         outputBuilder.setPagination(
241                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.eventlog.list.output.PaginationBuilder(
242                         result.getPagination()).build());
243         return outputBuilder;
244     }
245
246     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data
247     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.PaginationBuilder
248     public ReadPmdata15mListOutputBuilder readPmdata15mList(EntityInput input) {
249         ReadPmdata15mListOutputBuilder outputBuilder = new ReadPmdata15mListOutputBuilder();
250         QueryResult<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.Data> result = this.pm15mRW
251                 .getData(input);
252         outputBuilder.setData(result.getResult().getHits());
253         outputBuilder.setPagination(
254                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.list.output.PaginationBuilder(
255                         result.getPagination()).build());
256         return outputBuilder;
257     }
258
259     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.list.output.Data
260     //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.list.output.Pagination
261     public ReadPmdata24hListOutputBuilder readPmdata24hList(EntityInput input) {
262         ReadPmdata24hListOutputBuilder outputBuilder = new ReadPmdata24hListOutputBuilder();
263         QueryResult<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.list.output.Data> result = this.pm24hRW
264                 .getData(input);
265         outputBuilder.setData(result.getResult().getHits());
266         outputBuilder.setPagination(
267                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.list.output.PaginationBuilder(
268                         result.getPagination()).build());
269         return outputBuilder;
270     }
271
272     public ReadPmdata15mLtpListOutputBuilder readPmdata15mLtpList(EntityInput input) throws IOException {
273         ReadPmdata15mLtpListOutputBuilder outputBuilder = new ReadPmdata15mLtpListOutputBuilder();
274         QueryResult<String> result = pm15mRW.getDataLtpList(input);
275         outputBuilder.setPagination(
276                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.ltp.list.output.PaginationBuilder(
277                         result.getPagination()).build());
278         outputBuilder.setData(result.getResult().getHits());
279         return outputBuilder;
280     }
281
282     public ReadPmdata15mDeviceListOutputBuilder readPmdata15mDeviceList(EntityInput input) throws IOException {
283         ReadPmdata15mDeviceListOutputBuilder outputBuilder = new ReadPmdata15mDeviceListOutputBuilder();
284         QueryResult<String> result = pm15mRW.getDataDeviceList(input);
285         outputBuilder.setPagination(
286                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._15m.device.list.output.PaginationBuilder(
287                         result.getPagination()).build());
288         outputBuilder.setData(result.getResult().getHits());
289         return outputBuilder;
290     }
291
292     public ReadPmdata24hLtpListOutputBuilder readPmdata24hLtpList(EntityInput input) throws IOException {
293
294         QueryResult<String> result = pm24hRW.getDataLtpList(input);
295
296         ReadPmdata24hLtpListOutputBuilder outputBuilder = new ReadPmdata24hLtpListOutputBuilder();
297         new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.ltp.list.output.PaginationBuilder();
298         outputBuilder.setPagination(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.ltp.list.output.PaginationBuilder(
299                 result.getPagination()).build());
300         outputBuilder.setData(result.getResult().getHits());
301         return outputBuilder;
302     }
303
304     public ReadPmdata24hDeviceListOutputBuilder readPmdata24hDeviceList(EntityInput input)
305             throws IOException {
306
307         QueryResult<String> result = pm24hRW.getDataDeviceList(input);
308
309         ReadPmdata24hDeviceListOutputBuilder outputBuilder = new ReadPmdata24hDeviceListOutputBuilder();
310         outputBuilder.setPagination(
311                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.pmdata._24h.device.list.output.PaginationBuilder(
312                         result.getPagination()).build());
313         outputBuilder.setData(result.getResult().getHits());
314         return outputBuilder;
315     }
316
317     public ReadStatusOutputBuilder readStatus() throws IOException {
318         QueryResult<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.read.status.output.Data> result = readStatus.getDataStatus();
319
320         ReadStatusOutputBuilder outputBuilder = new ReadStatusOutputBuilder();
321         outputBuilder.setData(result.getResult().getHits());
322         return outputBuilder;
323     }
324
325     public boolean waitForYellowDatabaseStatus(long timeout, TimeUnit unit) {
326         return this.dbClient.waitForYellowStatus(unit.toMillis(timeout));
327     }
328
329      public CreateNetworkElementConnectionOutputBuilder createNetworkElementConnection(
330             NetworkElementConnectionEntity input) throws IOException {
331         String id = this.networkelementConnectionRW.update(input, input.getNodeId());
332         if (id == null) {
333             throw new IOException("unable to write data to database");
334         }
335         CreateNetworkElementConnectionOutputBuilder builder = new CreateNetworkElementConnectionOutputBuilder();
336         builder.setId(id).setNodeId(input.getNodeId()).setHost(input.getHost()).setPort(input.getPort())
337                 .setUsername(input.getUsername()).setPassword(input.getPassword()).setIsRequired(input.isIsRequired())
338                 .setCoreModelCapability(input.getCoreModelCapability()).setDeviceType(input.getDeviceType());
339         return builder;
340     }
341
342     public UpdateNetworkElementConnectionOutputBuilder updateNetworkElementConnection(
343             UpdateNetworkElementConnectionInput input) throws IOException {
344         String id = this.networkelementConnectionRW.update(input, input.getId());
345         if (id == null) {
346             throw new IOException("unable to update data in database");
347         }
348         UpdateNetworkElementConnectionOutputBuilder builder = new UpdateNetworkElementConnectionOutputBuilder();
349         builder.setId(id).setNodeId(input.getNodeId()).setHost(input.getHost()).setPort(input.getPort())
350                 .setUsername(input.getUsername()).setPassword(input.getPassword())
351                 .setCoreModelCapability(input.getCoreModelCapability()).setDeviceType(input.getDeviceType());
352         return builder;
353     }
354
355     public DeleteNetworkElementConnectionOutputBuilder deleteNetworkElementConnection(DeleteNetworkElementConnectionInput input) throws IOException {
356         boolean removed = this.networkelementConnectionRW.remove(input.getId());
357         if (!removed) {
358             throw new IOException("unable to remove data from database");
359         }
360         return new DeleteNetworkElementConnectionOutputBuilder();
361     }
362
363     public DeleteMediatorServerOutputBuilder deleteMediatorServer(DeleteMediatorServerInput input) throws IOException {
364         boolean removed = this.mediatorserverRW.remove(input.getId());
365         if (!removed) {
366             throw new IOException("unable to remove data from database");
367         }
368         return new DeleteMediatorServerOutputBuilder();
369     }
370
371     public DeleteMaintenanceOutputBuilder deleteMaintenance(DeleteMaintenanceInput input) throws IOException {
372         boolean removed = this.maintenanceRW.remove(input.getId());
373         if (!removed) {
374             throw new IOException("unable to remove data from database");
375         }
376         return new DeleteMaintenanceOutputBuilder();
377     }
378
379     public UpdateMaintenanceOutputBuilder updateMaintenance(UpdateMaintenanceInput input) throws IOException {
380         if (input.getId() == null) {
381             throw new IOException("please give the id for updating entry");
382         }
383         String id = this.maintenanceRW.update(input, input.getId());
384         if (id == null) {
385             throw new IOException("unable to update data in database");
386         }
387         UpdateMaintenanceOutputBuilder builder = new UpdateMaintenanceOutputBuilder(input).setId(id);
388         return builder;
389     }
390
391     public UpdateMediatorServerOutputBuilder updateMediatorServer(UpdateMediatorServerInput input) throws IOException {
392         if (input.getId() == null) {
393             throw new IOException("please give the id for updating entry");
394         }
395         String id = this.mediatorserverRW.update(input, input.getId());
396         if (id == null) {
397             throw new IOException("unable to update data in database");
398         }
399         UpdateMediatorServerOutputBuilder builder = new UpdateMediatorServerOutputBuilder();
400         builder.setId(id).setName(input.getName()).setUrl(input.getUrl());
401         return builder;
402     }
403
404     public CreateMaintenanceOutputBuilder createMaintenance(CreateMaintenanceInput input) throws IOException {
405         String id = this.maintenanceRW.write(input, input.getNodeId());
406         if (id == null) {
407             throw new IOException("unable to write data to database");
408         }
409         CreateMaintenanceOutputBuilder builder = new CreateMaintenanceOutputBuilder(input).setId(id);
410         return builder;
411     }
412
413      public CreateMediatorServerOutputBuilder createMediatorServer(CreateMediatorServerInput input) throws IOException {
414         String id = this.mediatorserverRW.write(input, null);
415
416         if (id == null) {
417             throw new IOException("unable to write data to database");
418         }
419         CreateMediatorServerOutputBuilder builder = new CreateMediatorServerOutputBuilder();
420         builder.setId(id).setName(input.getName()).setUrl(input.getUrl());
421         return builder;
422     }
423
424     @Override
425     public DataProvider getDataProvider() {
426         return this.databaseService;
427     }
428
429     /**
430      * no need for implementation
431      */
432         @Override
433         public void setReadyStatus(boolean status) {
434                 
435         }
436
437
438
439 }