+++ /dev/null
-/*
- * ============LICENSE_START==========================================
- * Copyright (c) 2019 PANTHEON.tech s.r.o.
- * ===================================================================
- * 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.onap.ccsdk.distribution.lighty;
-
-import com.google.common.collect.ImmutableSet;
-import io.lighty.core.controller.api.AbstractLightyModule;
-import java.util.Set;
-import org.onap.ccsdk.sli.adaptors.lighty.CcsdkAdaptorsLightyModule;
-import org.onap.ccsdk.sli.core.dblib.lighty.DblibModule;
-import org.onap.ccsdk.sli.core.lighty.common.CcsdkLightyUtils;
-import org.onap.ccsdk.sli.core.sli.lighty.SliModule;
-import org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder;
-import org.onap.ccsdk.sli.core.sliapi.lighty.SliApiModule;
-import org.onap.ccsdk.sli.core.slipluginutils.lighty.SliPluginUtilsModule;
-import org.onap.ccsdk.sli.northbound.lighty.CcsdkNorhboundLightyModule;
-import org.onap.ccsdk.sli.plugins.lighty.CcsdkPluginsLightyModule;
-import org.opendaylight.aaa.encrypt.AAAEncryptionService;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The implementation of the {@link io.lighty.core.controller.api.LightyModule} that groups all other LightyModules
- * from the CCSDK project so they can be all treated as one component (for example started/stopped at once).
- * For more information about the lighty.io visit the website https://lighty.io.
- */
-public class CcsdkLightyModule extends AbstractLightyModule {
-
- private static final Logger LOG = LoggerFactory.getLogger(CcsdkLightyModule.class);
-
- public static final Set<YangModuleInfo> YANG_MODELS = ImmutableSet.of(
- org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.$YangModuleInfoImpl.getInstance(),
- org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.lcm.rev180329.$YangModuleInfoImpl.getInstance(),
- org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.datachange.rev150519.$YangModuleInfoImpl.getInstance(),
- org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.asdcapi.common.rev170201.$YangModuleInfoImpl.getInstance(),
- org.opendaylight.yang.gen.v1.http.xmlns.onap.org.asdc.license.model._1._0.rev160427.$YangModuleInfoImpl.getInstance(),
- org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.$YangModuleInfoImpl.getInstance()
- );
-
- private final DataBroker dataBroker;
- private final NotificationPublishService notificationPublishService;
- private final RpcProviderRegistry rpcProviderRegistry;
- private final AAAEncryptionService aaaEncryptionService;
-
- private CcsdkAdaptorsLightyModule ccsdkAdaptorsLightyModule;
- private CcsdkNorhboundLightyModule ccsdkNorhboundLightyModule;
- private CcsdkPluginsLightyModule ccsdkPluginsLightyModule;
- private DblibModule dblibModule;
- private SliModule sliModule;
- private SliApiModule sliApiModule;
- private SliPluginUtilsModule sliPluginUtilsModule;
-
- public CcsdkLightyModule(DataBroker dataBroker, NotificationPublishService notificationPublishService,
- RpcProviderRegistry rpcProviderRegistry, AAAEncryptionService aaaEncryptionService) {
- this.dataBroker = dataBroker;
- this.notificationPublishService = notificationPublishService;
- this.rpcProviderRegistry = rpcProviderRegistry;
- this.aaaEncryptionService = aaaEncryptionService;
- }
-
- protected boolean initProcedure() {
- // FIXME modules from CcsdkCoreLightyModule need to be started separately (not through CcsdkCoreLightyModule
- // itself) because SliApiModule is dependent on the adaptors
- try {
- LOG.debug("Initializing CCSDK Lighty module...");
-
- this.dblibModule = new DblibModule(aaaEncryptionService);
- if (!CcsdkLightyUtils.startLightyModule(dblibModule)) {
- LOG.error("Unable to start DblibModule in CCSDK Core Lighty module!");
- return false;
- }
-
- this.ccsdkAdaptorsLightyModule = new CcsdkAdaptorsLightyModule(dblibModule.getDbLibService());
- if (!CcsdkLightyUtils.startLightyModule(ccsdkAdaptorsLightyModule)) {
- LOG.error("Unable to start CcsdkAdaptorsLightyModule in CCSDK Lighty module!");
- return false;
- }
-
- this.sliModule = new SliModule(dblibModule.getDbLibService(),
- ccsdkAdaptorsLightyModule.getAaaServiceModule().getAAIService(), new Slf4jRecorder(),
- ccsdkAdaptorsLightyModule.getAaaServiceModule().getAAIService(), null);
- if (!CcsdkLightyUtils.startLightyModule(sliModule)) {
- LOG.error("Unable to start SliModule in CCSDK Core Lighty module!");
- return false;
- }
-
- this.sliApiModule = new SliApiModule(dataBroker, notificationPublishService, rpcProviderRegistry, sliModule.getSvcLogicServiceImpl());
- if (!CcsdkLightyUtils.startLightyModule(sliApiModule)) {
- LOG.error("Unable to start SliApiModule in CCSDK Core Lighty module!");
- return false;
- }
-
- this.sliPluginUtilsModule = new SliPluginUtilsModule();
- if (!CcsdkLightyUtils.startLightyModule(sliPluginUtilsModule)) {
- LOG.error("Unable to start SliPluginUtilsModule in CCSDK Core Lighty module!");
- return false;
- }
-
- this.ccsdkPluginsLightyModule = new CcsdkPluginsLightyModule();
- if (!CcsdkLightyUtils.startLightyModule(ccsdkPluginsLightyModule)) {
- LOG.error("Unable to start CcsdkPluginsLightyModule in CCSDK Lighty module!");
- return false;
- }
-
- this.ccsdkNorhboundLightyModule =
- new CcsdkNorhboundLightyModule(sliModule.getSvcLogicServiceImpl(), dataBroker,
- notificationPublishService, rpcProviderRegistry);
- if (!CcsdkLightyUtils.startLightyModule(ccsdkNorhboundLightyModule)) {
- LOG.error("Unable to start CcsdkNorhboundLightyModule in CCSDK Lighty module!");
- return false;
- }
-
- LOG.debug("CCSDK Lighty module was initialized successfully");
- return true;
- } catch (Exception e) {
- LOG.error("Exception caught!", e);
- throw e;
- }
- }
-
- protected boolean stopProcedure() {
- LOG.debug("Stopping CCSDK Lighty module...");
-
- boolean stopSuccessful = true;
-
- if (!CcsdkLightyUtils.stopLightyModule(ccsdkPluginsLightyModule)) {
- stopSuccessful = false;
- }
-
- if (!CcsdkLightyUtils.stopLightyModule(ccsdkNorhboundLightyModule)) {
- stopSuccessful = false;
- }
-
- if (!CcsdkLightyUtils.stopLightyModule(ccsdkAdaptorsLightyModule)) {
- stopSuccessful = false;
- }
-
- if (!CcsdkLightyUtils.stopLightyModule(sliPluginUtilsModule)) {
- stopSuccessful = false;
- }
-
- if (!CcsdkLightyUtils.stopLightyModule(sliApiModule)) {
- stopSuccessful = false;
- }
-
- if (!CcsdkLightyUtils.stopLightyModule(sliModule)) {
- stopSuccessful = false;
- }
-
- if (!CcsdkLightyUtils.stopLightyModule(dblibModule)) {
- stopSuccessful = false;
- }
-
- if (stopSuccessful) {
- LOG.debug("CCSDK Lighty module was stopped successfully");
- } else {
- LOG.error("CCSDK Lighty module was not stopped successfully!");
- }
- return stopSuccessful;
- }
-
- public CcsdkAdaptorsLightyModule getCcsdkAdaptorsLightyModule() {
- return ccsdkAdaptorsLightyModule;
- }
-
- public CcsdkNorhboundLightyModule getCcsdkNorhboundLightyModule() {
- return ccsdkNorhboundLightyModule;
- }
-
- public CcsdkPluginsLightyModule getCcsdkPluginsLightyModule() {
- return ccsdkPluginsLightyModule;
- }
-
- public DblibModule getDblibModule() {
- return dblibModule;
- }
-
- public SliModule getSliModule() {
- return sliModule;
- }
-
- public SliApiModule getSliApiModule() {
- return sliApiModule;
- }
-
- public SliPluginUtilsModule getSliPluginUtilsModule() {
- return sliPluginUtilsModule;
- }
-}