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