diff options
Diffstat (limited to 'ccsdk-plugins-lighty')
-rwxr-xr-x | ccsdk-plugins-lighty/pom.xml | 49 | ||||
-rw-r--r-- | ccsdk-plugins-lighty/src/main/java/org/onap/ccsdk/sli/plugins/lighty/CcsdkPluginsLightyModule.java | 133 |
2 files changed, 182 insertions, 0 deletions
diff --git a/ccsdk-plugins-lighty/pom.xml b/ccsdk-plugins-lighty/pom.xml new file mode 100755 index 00000000..6b9d8eba --- /dev/null +++ b/ccsdk-plugins-lighty/pom.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.onap.ccsdk.parent</groupId> + <artifactId>odlparent-lite</artifactId> + <version>1.4.0-SNAPSHOT</version> + <relativePath/> + </parent> + + <groupId>org.onap.ccsdk.sli.plugins</groupId> + <artifactId>ccsdk-plugins-lighty</artifactId> + <version>0.6.0-SNAPSHOT</version> + <packaging>jar</packaging> + + <dependencies> + <dependency> + <groupId>org.onap.ccsdk.sli.core</groupId> + <artifactId>ccsdk-core-lighty</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.onap.ccsdk.sli.northbound</groupId> + <artifactId>properties-node-lighty</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.onap.ccsdk.sli.northbound</groupId> + <artifactId>restapi-call-node-lighty</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.onap.ccsdk.sli.northbound</groupId> + <artifactId>restconf-client-lighty</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.onap.ccsdk.sli.northbound</groupId> + <artifactId>sshapi-call-node-lighty</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.onap.ccsdk.sli.northbound</groupId> + <artifactId>template-node-lighty</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> +</project> diff --git a/ccsdk-plugins-lighty/src/main/java/org/onap/ccsdk/sli/plugins/lighty/CcsdkPluginsLightyModule.java b/ccsdk-plugins-lighty/src/main/java/org/onap/ccsdk/sli/plugins/lighty/CcsdkPluginsLightyModule.java new file mode 100644 index 00000000..a6d662b8 --- /dev/null +++ b/ccsdk-plugins-lighty/src/main/java/org/onap/ccsdk/sli/plugins/lighty/CcsdkPluginsLightyModule.java @@ -0,0 +1,133 @@ +/* + * ============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.sli.plugins.lighty; + +import io.lighty.core.controller.api.AbstractLightyModule; +import org.onap.ccsdk.sli.core.lighty.common.CcsdkLightyUtils; +import org.onap.ccsdk.sli.plugins.prop.lighty.PropertiesNodeModule; +import org.onap.ccsdk.sli.plugins.prop.lighty.RestApiCallNodeModule; +import org.onap.ccsdk.sli.plugins.restconf.lighty.RestconfClientModule; +import org.onap.ccsdk.sli.plugins.sshapicall.lighty.SshApiCallModule; +import org.onap.ccsdk.sli.plugins.template.lighty.TemplateNodeModule; +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-sli-plugins repository 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 CcsdkPluginsLightyModule extends AbstractLightyModule { + + private static final Logger LOG = LoggerFactory.getLogger(CcsdkPluginsLightyModule.class); + + private PropertiesNodeModule propertiesNodeModule; + private RestApiCallNodeModule restApiCallNodeModule; + private RestconfClientModule restconfClientModule; + private SshApiCallModule sshApiCallModule; + private TemplateNodeModule templateNodeModule; + + protected boolean initProcedure() { + LOG.debug("Initializing CCSDK Plugins Lighty module..."); + + this.propertiesNodeModule = new PropertiesNodeModule(); + if (!CcsdkLightyUtils.startLightyModule(propertiesNodeModule)) { + LOG.error("Unable to start PropertiesNodeModule in CCSDK Plugins Lighty module!"); + return false; + } + + this.restApiCallNodeModule = new RestApiCallNodeModule(); + if (!CcsdkLightyUtils.startLightyModule(restApiCallNodeModule)) { + LOG.error("Unable to start RestApiCallNodeModule in CCSDK Plugins Lighty module!"); + return false; + } + + this.restconfClientModule = new RestconfClientModule(restApiCallNodeModule.getPropertiesNode()); + if (!CcsdkLightyUtils.startLightyModule(restconfClientModule)) { + LOG.error("Unable to start RestconfClientModule in CCSDK Plugins Lighty module!"); + return false; + } + + this.sshApiCallModule = new SshApiCallModule(); + if (!CcsdkLightyUtils.startLightyModule(sshApiCallModule)) { + LOG.error("Unable to start SshApiCallModule in CCSDK Plugins Lighty module!"); + return false; + } + + this.templateNodeModule = new TemplateNodeModule(); + if (!CcsdkLightyUtils.startLightyModule(templateNodeModule)) { + LOG.error("Unable to start TemplateNodeModule in CCSDK Plugins Lighty module!"); + return false; + } + + LOG.debug("CCSDK Plugins Lighty module was initialized successfully"); + return true; + } + + protected boolean stopProcedure() { + LOG.debug("Stopping CCSDK Plugins Lighty module..."); + + boolean stopSuccessful = true; + + if (!CcsdkLightyUtils.stopLightyModule(templateNodeModule)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(sshApiCallModule)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(restconfClientModule)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(restApiCallNodeModule)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(propertiesNodeModule)) { + stopSuccessful = false; + } + + if (stopSuccessful) { + LOG.debug("CCSDK Plugins Lighty module was stopped successfully"); + } else { + LOG.error("CCSDK Plugins Lighty module was not stopped successfully!"); + } + return stopSuccessful; + } + + public PropertiesNodeModule getPropertiesNodeModule() { + return propertiesNodeModule; + } + + public RestApiCallNodeModule getRestApiCallNodeModule() { + return restApiCallNodeModule; + } + + public RestconfClientModule getRestconfClientModule() { + return restconfClientModule; + } + + public SshApiCallModule getSshApiCallModule() { + return sshApiCallModule; + } + + public TemplateNodeModule getTemplateNodeModule() { + return templateNodeModule; + } +} |