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