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