X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=features%2Fdevicemanager%2Fo-ran%2Fru-fh%2Fprovider%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Foam%2Ffeatures%2Fdevicemanager%2Foran%2Fimpl%2FDeviceManagerORanImpl.java;fp=features%2Fdevicemanager%2Fo-ran%2Fru-fh%2Fprovider%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Foam%2Ffeatures%2Fdevicemanager%2Foran%2Fimpl%2FDeviceManagerORanImpl.java;h=aeaf3121fb7047a1b9774a87e22d1546d81a5819;hb=2215cc53ac8a8988e89dc503dedafd25c746ed36;hp=0000000000000000000000000000000000000000;hpb=0fc640d9fe0a52a2d9b1c790d86a22b5925ded70;p=oam.git diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/java/org/oransc/oam/features/devicemanager/oran/impl/DeviceManagerORanImpl.java b/features/devicemanager/o-ran/ru-fh/provider/src/main/java/org/oransc/oam/features/devicemanager/oran/impl/DeviceManagerORanImpl.java new file mode 100644 index 0000000..aeaf312 --- /dev/null +++ b/features/devicemanager/o-ran/ru-fh/provider/src/main/java/org/oransc/oam/features/devicemanager/oran/impl/DeviceManagerORanImpl.java @@ -0,0 +1,89 @@ +/* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + */ +package org.oransc.oam.features.devicemanager.oran.impl; + +import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.FactoryRegistration; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class DeviceManagerORanImpl implements AutoCloseable { + + private static final Logger LOG = LoggerFactory.getLogger(DeviceManagerORanImpl.class); + private static final String APPLICATION_NAME = "DeviceManagerORan"; + @SuppressWarnings("unused") + private static final String CONFIGURATIONFILE = "etc/devicemanager-oran.properties"; + + + private NetconfNetworkElementService netconfNetworkElementService; + + private HtDatabaseClient htDatabaseClient; + private Boolean devicemanagerInitializationOk = false; + private FactoryRegistration resORan; + + // Blueprint begin + public DeviceManagerORanImpl() { + LOG.info("Creating provider for {}", APPLICATION_NAME); + resORan = null; + } + + public void setNetconfNetworkElementService(NetconfNetworkElementService netconfNetworkElementService) { + this.netconfNetworkElementService = netconfNetworkElementService; + } + + public void init() throws Exception { + + LOG.info("Session Initiated start {}", APPLICATION_NAME); + + resORan = netconfNetworkElementService.registerNetworkElementFactory(new ORanNetworkElementFactory()); + + + netconfNetworkElementService.writeToEventLog(APPLICATION_NAME, "startup", "done"); + this.devicemanagerInitializationOk = true; + + LOG.info("Session Initiated end. Initialization done {}", devicemanagerInitializationOk); + } + // Blueprint end + + @Override + public void close() throws Exception { + LOG.info("closing ..."); + close(htDatabaseClient); + close(resORan); + LOG.info("closing done"); + } + + /** + * Used to close all Services, that should support AutoCloseable Pattern + * + * @param toClose + * @throws Exception + */ + private void close(AutoCloseable... toCloseList) { + for (AutoCloseable element : toCloseList) { + if (element != null) { + try { + element.close(); + } catch (Exception e) { + LOG.warn("Fail during close: ", e); + } + } + } + } +}