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
10 * http://www.apache.org/licenses/LICENSE-2.0
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
16 * ============LICENSE_END==========================================================================
17 ******************************************************************************/
18 package org.onap.ccsdk.features.sdnr.wt.dataprovider.impl;
20 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
21 import org.onap.ccsdk.features.sdnr.wt.dataprovider.http.AboutHttpServlet;
22 import org.onap.ccsdk.features.sdnr.wt.dataprovider.http.MsServlet;
23 import org.onap.ccsdk.features.sdnr.wt.dataprovider.http.ReadyHttpServlet;
24 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
25 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.HtDatabaseMaintenance;
26 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.IEntityDataProvider;
27 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.IEsConfig;
28 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp;
29 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.StatusChangedHandler.StatusKey;
30 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
31 import org.opendaylight.mdsal.binding.api.RpcProviderService;
32 import org.slf4j.Logger;
33 import org.slf4j.LoggerFactory;
35 public class DataProviderImpl implements IEntityDataProvider, AutoCloseable {
37 private static final Logger LOG = LoggerFactory.getLogger(DataProviderImpl.class);
39 private static final String APPLICATION_NAME = "data-provider";
40 private RpcProviderService rpcProviderService = null;
41 private MsServlet mediatorServerServlet;
42 private DataProviderServiceImpl rpcApiService;
43 private AboutHttpServlet aboutServlet;
44 private HtDatabaseClient dbClient;
48 public DataProviderImpl() {
50 LOG.info("Creating provider for {}", APPLICATION_NAME);
53 public void setRpcProviderService(RpcProviderService rpcProviderService) {
54 this.rpcProviderService = rpcProviderService;
56 public void setMediatorServerServlet(MsServlet servlet) {
57 this.mediatorServerServlet = servlet;
59 public void setAboutServlet(AboutHttpServlet aboutServlet) {
60 this.aboutServlet = aboutServlet;
62 public void init() throws Exception {
64 LOG.info("Session Initiated start {}", APPLICATION_NAME);
67 this.rpcApiService = new DataProviderServiceImpl(rpcProviderService,this.mediatorServerServlet);
70 LOG.info("Session Initiated end. Initialization done");
74 public void close() throws Exception {
75 LOG.info("DeviceManagerImpl closing ...");
79 LOG.info("DeviceManagerImpl closing done");
83 * Used to close all Services, that should support AutoCloseable Pattern
88 private void close(AutoCloseable... toCloseList) throws Exception {
89 for (AutoCloseable element : toCloseList) {
90 if (element != null) {
97 public DataProvider getDataProvider() {
98 return rpcApiService.getDataProvider();
102 public HtDatabaseMaintenance getHtDatabaseMaintenance() {
103 return rpcApiService.getHtDatabaseMaintenance();
107 public IEsConfig getEsConfig() {
108 return rpcApiService.getEsConfig();
112 public NetconfTimeStamp getConverter() {
113 return NetconfTimeStampImpl.getConverter();
117 public void setReadyStatus(boolean status) {
118 ReadyHttpServlet.setStatus(status);
122 public void setStatus(StatusKey key, String value) {
123 if(this.aboutServlet!=null) {
124 if(key==StatusKey.CLUSTER_SIZE) {
125 this.aboutServlet.setClusterSize(value);