From 3cd5e19b313f5835335d04f1f002ff858fcf174f Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Tue, 29 Aug 2017 16:06:22 -0400 Subject: Prune code migrated from sdnc/core to ccsdk Remove code from sdnc/core which has been refactored to the CCSDK sli/core project as part of the ONAP Amsterdam release. Added README.md files for each former sdnc/core component redirecting the reader to the correct CCSDK repo. Change-Id: Ifb1f7752fa5e6e08e4393fb34e68dc1a84f35678 Issue-ID: SDNC-59 Signed-off-by: Dan Timoney --- sliapi/.gitignore | 34 -- sliapi/README.md | 3 + sliapi/README.txt | 35 -- sliapi/features/pom.xml | 134 ----- sliapi/features/src/main/resources/features.xml | 39 -- sliapi/installer/pom.xml | 137 ----- .../src/assembly/assemble_installer_zip.xml | 59 --- .../src/assembly/assemble_mvnrepo_zip.xml | 55 -- .../src/main/resources/scripts/install-feature.sh | 40 -- sliapi/model/pom.xml | 79 --- sliapi/model/src/main/yang/sliapi.yang | 111 ---- sliapi/pom.xml | 61 --- sliapi/provider/pom.xml | 144 ------ .../impl/rev140523/SliapiProviderModule.java | 59 --- .../rev140523/SliapiProviderModuleFactory.java | 34 -- .../org/openecomp/sdnc/sliapi/SliapiHelper.java | 40 -- .../org/openecomp/sdnc/sliapi/sliapiProvider.java | 557 --------------------- .../src/main/resources/initial/sliapi-provider.xml | 72 --- .../src/main/yang/sliapi-provider-impl.yang | 61 --- 19 files changed, 3 insertions(+), 1751 deletions(-) delete mode 100644 sliapi/.gitignore create mode 100644 sliapi/README.md delete mode 100644 sliapi/README.txt delete mode 100644 sliapi/features/pom.xml delete mode 100644 sliapi/features/src/main/resources/features.xml delete mode 100644 sliapi/installer/pom.xml delete mode 100644 sliapi/installer/src/assembly/assemble_installer_zip.xml delete mode 100644 sliapi/installer/src/assembly/assemble_mvnrepo_zip.xml delete mode 100644 sliapi/installer/src/main/resources/scripts/install-feature.sh delete mode 100644 sliapi/model/pom.xml delete mode 100644 sliapi/model/src/main/yang/sliapi.yang delete mode 100644 sliapi/pom.xml delete mode 100644 sliapi/provider/pom.xml delete mode 100644 sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModule.java delete mode 100644 sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModuleFactory.java delete mode 100644 sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/SliapiHelper.java delete mode 100644 sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/sliapiProvider.java delete mode 100644 sliapi/provider/src/main/resources/initial/sliapi-provider.xml delete mode 100644 sliapi/provider/src/main/yang/sliapi-provider-impl.yang (limited to 'sliapi') diff --git a/sliapi/.gitignore b/sliapi/.gitignore deleted file mode 100644 index b73caf3..0000000 --- a/sliapi/.gitignore +++ /dev/null @@ -1,34 +0,0 @@ -#####standard .git ignore entries##### - -## IDE Specific Files ## -org.eclipse.core.resources.prefs -.classpath -.project -.settings -.idea -.externalToolBuilders -maven-eclipse.xml -workspace - -## Compilation Files ## -*.class -**/target -target -target-ide -MANIFEST.MF - -## Misc Ignores (OS specific etc) ## -bin/ -dist -*~ -*.ipr -*.iml -*.iws -classes -out/ -.DS_STORE -.metadata - -## Folders which contain auto generated source code ## -yang-gen-config -yang-gen-sal diff --git a/sliapi/README.md b/sliapi/README.md new file mode 100644 index 0000000..45cd6c2 --- /dev/null +++ b/sliapi/README.md @@ -0,0 +1,3 @@ +SLIAPI HAS MOVED TO CCSDK! + +The new location for sliapi is ccsdk/sli/core/sliapi diff --git a/sliapi/README.txt b/sliapi/README.txt deleted file mode 100644 index f9f4a2a..0000000 --- a/sliapi/README.txt +++ /dev/null @@ -1,35 +0,0 @@ -====================== -Introduction -====================== -You have generated an MD-SAL module using the Brocade Archetype. - -* You should be able to successfully run 'mvn clean install' on this project. -* This will produce a .zip file under the karaf.extension directory which you can deploy using -Brocade's extension deployment mechanism. - -====================== -Next Steps: -====================== -* run a 'mvn clean install' if you haven't already. This will generate some code from the yang models. -* Modify the model yang file under the model project. -* Follow the comments in the generated provider class to wire your new provider into the generated -code. -* Modify the generated provider model to respond to and handle the yang model. Depending on what -you added to your model you may need to inherit additional interfaces or make other changes to -the provider model. - -====================== -Generated Bundles: -====================== -* model - - Provides the yang model for your application. This is your primary northbound interface. -* provider - - Provides a template implementation for a provider to respond to your yang model. -* features - - Defines a karaf feature. If you add dependencies on third-party bundles then you will need to - modify the features.xml to list out the dependencies. -* karaf.extension - - Bundles all of the jars and third party dependencies (minus ODL dependencies) into a single - .zip file with the necessary configuration files to work correctly with the Brocade extension - mechanism. - diff --git a/sliapi/features/pom.xml b/sliapi/features/pom.xml deleted file mode 100644 index 7165505..0000000 --- a/sliapi/features/pom.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - 4.0.0 - - sliapi - org.openecomp.sdnc.core - 1.1.2-SNAPSHOT - - sliapi-features - - jar - - - - org.openecomp.sdnc.core - sliapi-model - - - org.openecomp.sdnc.core - sliapi-provider - config - xml - - - org.openecomp.sdnc.core - sliapi-provider - - - - org.opendaylight.mdsal - features-mdsal - ${odl.mdsal.features.version} - features - xml - - runtime - - - - - - - org.opendaylight.odlparent - opendaylight-karaf-empty - ${odl.karaf.empty.distro.version} - zip - - - - - - org.opendaylight.odlparent - features-test - test - ${odl.commons.opendaylight.version} - - - - org.opendaylight.yangtools - features-yangtools - ${odl.yangtools.version} - features - xml - runtime - - - - - - - true - src/main/resources - - - - - org.apache.maven.plugins - maven-resources-plugin - - - filter - - resources - - generate-resources - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - attach-artifacts - - attach-artifact - - package - - - - ${project.build.directory}/classes/${features.file} - xml - features - - - - - - - - - diff --git a/sliapi/features/src/main/resources/features.xml b/sliapi/features/src/main/resources/features.xml deleted file mode 100644 index 630b111..0000000 --- a/sliapi/features/src/main/resources/features.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - mvn:org.opendaylight.mdsal/features-mdsal/${odl.mdsal.features.version}/xml/features - - - - odl-mdsal-broker - sdnc-sli - mvn:org.openecomp.sdnc.core/sliapi-model/${project.version} - mvn:org.openecomp.sdnc.core/sliapi-provider/${project.version} - mvn:org.openecomp.sdnc.core/sliapi-provider/${project.version}/xml/config - - - diff --git a/sliapi/installer/pom.xml b/sliapi/installer/pom.xml deleted file mode 100644 index 0c09bf2..0000000 --- a/sliapi/installer/pom.xml +++ /dev/null @@ -1,137 +0,0 @@ - - - 4.0.0 - - sliapi - org.openecomp.sdnc.core - 1.1.2-SNAPSHOT - - sliapi-installer - pom - - - sdnc-sliapi - sdnc-sliapi - mvn:org.openecomp.sdnc.core/sliapi-features/${project.version}/xml/features - false - - - - - - org.openecomp.sdnc.core - sliapi-features - ${project.version} - features - xml - - - * - * - - - - - - org.openecomp.sdnc.core - sliapi-provider - ${project.version} - - - - - - - - - maven-assembly-plugin - - - maven-repo-zip - - single - - package - - false - stage/${application.name}-${project.version} - - src/assembly/assemble_mvnrepo_zip.xml - - false - - - - installer-zip - - single - - package - - true - ${application.name}-${project.version}-installer - - src/assembly/assemble_installer_zip.xml - - false - - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - copy-dependencies - - copy-dependencies - - prepare-package - - false - ${project.build.directory}/assembly/system - false - true - true - true - false - false - org.openecomp.sdnc.core - sli-common,sli-provider,dblib-provider - provided - - - - - - maven-resources-plugin - 2.6 - - - copy-version - - copy-resources - - validate - - ${basedir}/target/stage - - - src/main/resources/scripts - - install-feature.sh - - true - - - - - - - - - - - - diff --git a/sliapi/installer/src/assembly/assemble_installer_zip.xml b/sliapi/installer/src/assembly/assemble_installer_zip.xml deleted file mode 100644 index 85e2e1e..0000000 --- a/sliapi/installer/src/assembly/assemble_installer_zip.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - bin - - zip - - - - false - - - - target/stage/ - ${application.name} - 755 - - *.sh - - - - target/stage/ - ${application.name} - 644 - - *.sh - - - - - - - diff --git a/sliapi/installer/src/assembly/assemble_mvnrepo_zip.xml b/sliapi/installer/src/assembly/assemble_mvnrepo_zip.xml deleted file mode 100644 index 18700a1..0000000 --- a/sliapi/installer/src/assembly/assemble_mvnrepo_zip.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - bin - - zip - - - - false - - - - target/assembly/ - . - - - - - - - - ../provider/src/main/resources/initial/${feature-name}-provider.xml - ./etc/opendaylight/karaf/200-${feature-name}provider.xml - - - - - diff --git a/sliapi/installer/src/main/resources/scripts/install-feature.sh b/sliapi/installer/src/main/resources/scripts/install-feature.sh deleted file mode 100644 index 93236c5..0000000 --- a/sliapi/installer/src/main/resources/scripts/install-feature.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -### -# ============LICENSE_START======================================================= -# openECOMP : SDN-C -# ================================================================================ -# Copyright (C) 2017 AT&T 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========================================================= -### - -ODL_HOME=${ODL_HOME:-/opt/opendaylight/current} -ODL_KARAF_CLIENT=${ODL_KARAF_CLIENT:-${ODL_HOME}/bin/client} -ODL_KARAF_CLIENT_OPTS=${ODL_KARAF_CLIENT_OPTS:-"-u karaf"} -INSTALLERDIR=$(dirname $0) - -REPOZIP=${INSTALLERDIR}/${features.boot}-${project.version}.zip - -if [ -f ${REPOZIP} ] -then - unzip -d ${ODL_HOME} ${REPOZIP} -else - echo "ERROR : repo zip ($REPOZIP) not found" - exit 1 -fi - -${ODL_KARAF_CLIENT} ${ODL_KARAF_CLIENT_OPTS} feature:repo-add ${features.repositories} -${ODL_KARAF_CLIENT} ${ODL_KARAF_CLIENT_OPTS} feature:install ${features.boot} diff --git a/sliapi/model/pom.xml b/sliapi/model/pom.xml deleted file mode 100644 index 793aba8..0000000 --- a/sliapi/model/pom.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - 4.0.0 - - sliapi - org.openecomp.sdnc.core - 1.1.2-SNAPSHOT - - sliapi-model - bundle - - - - - - org.apache.felix - maven-bundle-plugin - true - - - * - - - - - org.opendaylight.yangtools - yang-maven-plugin - ${odl.yangtools.yang.maven.plugin.version} - - - org.opendaylight.mdsal - maven-sal-api-gen-plugin - ${odl.sal.api.gen.plugin.version} - jar - - - - - - generate-sources - - - ${yang.file.directory} - - - org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl - ${salGeneratorPath} - - - true - - - - - - - - - org.opendaylight.mdsal - yang-binding - ${odl.mdsal.yang.binding.version} - - - org.opendaylight.yangtools - yang-common - ${odl.yangtools.version} - - - org.opendaylight.mdsal.model - ietf-inet-types - ${odl.ietf-inet-types.version} - - - org.opendaylight.mdsal.model - ietf-yang-types - ${odl.ietf-yang-types.version} - - - diff --git a/sliapi/model/src/main/yang/sliapi.yang b/sliapi/model/src/main/yang/sliapi.yang deleted file mode 100644 index 047fd69..0000000 --- a/sliapi/model/src/main/yang/sliapi.yang +++ /dev/null @@ -1,111 +0,0 @@ -module SLI-API { - - yang-version 1; - - namespace "org:openecomp:sdnc:sliapi"; - - prefix sample; - - import ietf-inet-types { prefix "inet"; revision-date 2010-09-24; } - - organization "openECOMP"; - - contact - "Dan Timoney"; - - description - "Defines API to service logic interpreter"; - - revision "2016-11-10" { - description - "REST API to Service Logic Interpreter"; - } - - grouping parameter-setting { - description - "Parameter setting"; - - leaf parameter-name { - type string; - description "Parameter name"; - } - - leaf int-value { - type int32; - } - leaf string-value { - type string; - } - leaf boolean-value { - type boolean; - } - } - - grouping response-fields { - leaf response-code { - type string; - } - leaf ack-final-indicator { - type string; - } - leaf response-message { - type string; - } - leaf context-memory-json { - type string; - } - } - - container test-results { - description "Test results"; - - list test-result { - key "test-identifier"; - - leaf test-identifier { - type string; - } - - leaf-list results { - type string; - } - } - } - - rpc execute-graph { - description " Method to add a new parameter."; - input { - - leaf module-name { - type string; - } - - leaf rpc-name { - type string; - } - - leaf mode { - type enumeration { - enum sync; - enum async; - } - } - - list sli-parameter { - key "parameter-name"; - uses parameter-setting; - } - } - - output { - uses response-fields; - } - } - - rpc healthcheck { - output { - uses response-fields; - } - } - -} diff --git a/sliapi/pom.xml b/sliapi/pom.xml deleted file mode 100644 index b4d32ed..0000000 --- a/sliapi/pom.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - 4.0.0 - - - - org.openecomp.sdnc.core - sdnc-core - 1.1.2-SNAPSHOT - - - pom - org.openecomp.sdnc.core - sliapi - 1.1.2-SNAPSHOT - - - sliapi - - - - - - - - org.openecomp.sdnc.core - sliapi-features - features - xml - ${project.version} - - - - org.openecomp.sdnc.core - sliapi-model - ${project.version} - - - org.openecomp.sdnc.core - sliapi-provider - ${project.version} - config - xml - - - org.openecomp.sdnc.core - sliapi-provider - ${project.version} - - - - - - - - model - features - provider - installer - - diff --git a/sliapi/provider/pom.xml b/sliapi/provider/pom.xml deleted file mode 100644 index ccc8852..0000000 --- a/sliapi/provider/pom.xml +++ /dev/null @@ -1,144 +0,0 @@ - - - 4.0.0 - - sliapi - org.openecomp.sdnc.core - 1.1.2-SNAPSHOT - - sliapi-provider - bundle - - - - - org.apache.felix - maven-bundle-plugin - true - - - org.opendaylight.controller.config.yang.config.sliapi.impl - * - - - - - org.opendaylight.yangtools - yang-maven-plugin - ${odl.yangtools.yang.maven.plugin.version} - - - config - - generate-sources - - - - - org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator - ${jmxGeneratorPath} - - urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang - - - - org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl - ${salGeneratorPath} - - - true - - - - - - org.opendaylight.mdsal - maven-sal-api-gen-plugin - ${odl.sal.api.gen.plugin.version} - jar - - - org.opendaylight.controller - yang-jmx-generator-plugin - ${odl.yang.jmx.generator.version} - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - attach-artifacts - - attach-artifact - - package - - - - ${project.build.directory}/classes/initial/sliapi-provider.xml - xml - config - - - - - - - - - - - - org.openecomp.sdnc.core - sliapi-model - - - org.opendaylight.controller - config-api - ${odl.controller.config.api.version} - - - - - org.opendaylight.controller - sal-binding-config - ${odl.mdsal.version} - - - - org.opendaylight.controller - sal-binding-api - ${odl.mdsal.version} - - - - org.opendaylight.controller - sal-common-util - ${odl.mdsal.version} - - - - - org.openecomp.sdnc.core - sli-common - ${project.version} - - - org.openecomp.sdnc.core - sli-provider - ${project.version} - - - org.opendaylight.controller - sal-core-api - ${odl.mdsal.version} - - - org.opendaylight.yangtools - yang-data-impl - ${odl.yangtools.version} - - - diff --git a/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModule.java b/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModule.java deleted file mode 100644 index e05103c..0000000 --- a/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModule.java +++ /dev/null @@ -1,59 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T 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.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.provider.impl.rev140523; - -import org.openecomp.sdnc.sliapi.sliapiProvider; - -public class SliapiProviderModule extends org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.provider.impl.rev140523.AbstractSliapiProviderModule { - public SliapiProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { - super(identifier, dependencyResolver); - } - - public SliapiProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.provider.impl.rev140523.SliapiProviderModule oldModule, java.lang.AutoCloseable oldInstance) { - super(identifier, dependencyResolver, oldModule, oldInstance); - } - - @Override - public void customValidation() { - // add custom validation form module attributes here. - } - - @Override - public java.lang.AutoCloseable createInstance() { - - final sliapiProvider provider = new sliapiProvider(); - provider.setDataBroker( getDataBrokerDependency() ); - provider.setNotificationService( getNotificationServiceDependency() ); - provider.setRpcRegistry( getRpcRegistryDependency() ); - provider.initialize(); - return new AutoCloseable() { - - @Override - public void close() throws Exception { - //TODO: CLOSE ANY REGISTRATION OBJECTS CREATED USING ABOVE BROKER/NOTIFICATION - //SERVIE/RPC REGISTRY - provider.close(); - } - }; - } - -} diff --git a/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModuleFactory.java b/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModuleFactory.java deleted file mode 100644 index fbd2036..0000000 --- a/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModuleFactory.java +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T 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========================================================= - */ - -/* -* Generated file -* -* Generated from: yang module name: slitester-provider-impl yang module local name: sliapi-provider-impl -* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator -* Generated at: Fri Oct 21 10:42:49 EDT 2016 -* -* Do not modify this file unless it is present under src/main directory -*/ -package org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.provider.impl.rev140523; -public class SliapiProviderModuleFactory extends org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.provider.impl.rev140523.AbstractSliapiProviderModuleFactory { - -} diff --git a/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/SliapiHelper.java b/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/SliapiHelper.java deleted file mode 100644 index 4ad4f01..0000000 --- a/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/SliapiHelper.java +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T 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.openecomp.sdnc.sliapi; - -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.ExecuteGraphInputBuilder; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.execute.graph.input.SliParameterBuilder; -import org.openecomp.sdnc.sli.provider.MdsalHelper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class SliapiHelper extends MdsalHelper { - - private static final Logger LOG = LoggerFactory.getLogger(SliapiHelper.class); - - static { - ExecuteGraphInputBuilder b1 = new ExecuteGraphInputBuilder(); - SliParameterBuilder b2 = new SliParameterBuilder(); - - } - -} diff --git a/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/sliapiProvider.java b/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/sliapiProvider.java deleted file mode 100644 index 705277c..0000000 --- a/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/sliapiProvider.java +++ /dev/null @@ -1,557 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T 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.openecomp.sdnc.sliapi; - -import java.util.Enumeration; -import java.util.LinkedList; -import java.util.Properties; -import java.util.concurrent.Future; - -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; -import org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException; -import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; -import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; -import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; -import org.opendaylight.controller.sal.binding.api.BindingAwareBroker; -import org.opendaylight.controller.sal.binding.api.NotificationProviderService; -import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.ExecuteGraphInput; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.ExecuteGraphInput.Mode; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.ExecuteGraphInputBuilder; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.ExecuteGraphOutput; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.ExecuteGraphOutputBuilder; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.HealthcheckOutput; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.HealthcheckOutputBuilder; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.SLIAPIService; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.TestResults; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.execute.graph.input.SliParameter; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.test.results.TestResult; -import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.test.results.TestResultBuilder; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.common.RpcResultBuilder; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue; -import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; -import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode; -import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; -import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder; -import org.openecomp.sdnc.sli.provider.SvcLogicService; -import org.osgi.framework.BundleContext; -import org.osgi.framework.FrameworkUtil; -import org.osgi.framework.ServiceReference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.util.concurrent.Futures; - - -/** - * Defines a base implementation for your provider. This class extends from a helper class - * which provides storage for the most commonly used components of the MD-SAL. Additionally the - * base class provides some basic logging and initialization / clean up methods. - * - * To use this, copy and paste (overwrite) the following method into the TestApplicationProviderModule - * class which is auto generated under src/main/java in this project - * (created only once during first compilation): - * - *
-
-    @Override
-    public java.lang.AutoCloseable createInstance() {
-
-         final sliapiProvider provider = new sliapiProvider();
-         provider.setDataBroker( getDataBrokerDependency() );
-         provider.setNotificationService( getNotificationServiceDependency() );
-         provider.setRpcRegistry( getRpcRegistryDependency() );
-         provider.initialize();
-         return new AutoCloseable() {
-
-            @Override
-            public void close() throws Exception {
-                //TODO: CLOSE ANY REGISTRATION OBJECTS CREATED USING ABOVE BROKER/NOTIFICATION
-                //SERVIE/RPC REGISTRY
-                provider.close();
-            }
-        };
-    }
-
-
-    
- */ -public class sliapiProvider implements AutoCloseable, SLIAPIService{ - - private final Logger LOG = LoggerFactory.getLogger( sliapiProvider.class ); - private final String appName = "slitester"; - - protected DataBroker dataBroker; - protected DOMDataBroker domDataBroker; - protected NotificationProviderService notificationService; - protected RpcProviderRegistry rpcRegistry; - - protected BindingAwareBroker.RpcRegistration rpcRegistration; - - private static String SLIAPI_NAMESPACE = "org:openecomp:sdnc:sliapi"; - private static String SLIAPI_REVISION = "2016-11-10"; - - private static QName TEST_RESULTS_QNAME = null; - private static QName TEST_RESULT_QNAME = null; - private static QName TEST_ID_QNAME = null; - private static QName RESULTS_QNAME = null; - - static { - - TEST_RESULTS_QNAME = QName.create(SLIAPI_NAMESPACE, SLIAPI_REVISION, "test-results"); - TEST_RESULT_QNAME = QName.create(TEST_RESULTS_QNAME, "test-result"); - TEST_ID_QNAME = QName.create(TEST_RESULT_QNAME, "test-identifier"); - RESULTS_QNAME = QName.create(TEST_RESULT_QNAME, "results"); - } - - - public sliapiProvider() { - this.LOG.info( "Creating provider for " + appName ); - } - - public void initialize(){ - LOG.info( "Initializing provider for " + appName ); - //initialization code goes here. - - rpcRegistration = rpcRegistry.addRpcImplementation(SLIAPIService.class, this); - LOG.info( "Initialization complete for " + appName ); - } - - protected void initializeChild() { - //Override if you have custom initialization intelligence - } - - @Override - public void close() throws Exception { - LOG.info( "Closing provider for " + appName ); - //closing code goes here - - rpcRegistration.close(); - LOG.info( "Successfully closed provider for " + appName ); - } - - public void setDataBroker(DataBroker dataBroker) { - this.dataBroker = dataBroker; - if (dataBroker instanceof AbstractForwardedDataBroker) { - domDataBroker = ((AbstractForwardedDataBroker) dataBroker).getDelegate(); - } - if( LOG.isDebugEnabled() ){ - LOG.debug( "DataBroker set to " + (dataBroker==null?"null":"non-null") + "." ); - } - } - - public void setNotificationService( - NotificationProviderService notificationService) { - this.notificationService = notificationService; - if( LOG.isDebugEnabled() ){ - LOG.debug( "Notification Service set to " + (notificationService==null?"null":"non-null") + "." ); - } - } - - public void setRpcRegistry(RpcProviderRegistry rpcRegistry) { - this.rpcRegistry = rpcRegistry; - if( LOG.isDebugEnabled() ){ - LOG.debug( "RpcRegistry set to " + (rpcRegistry==null?"null":"non-null") + "." ); - } - } - - @Override - public Future> executeGraph(ExecuteGraphInput input) { - RpcResult rpcResult = null; - - SvcLogicService svcLogic = getSvcLogicService(); - ExecuteGraphOutputBuilder respBuilder = new ExecuteGraphOutputBuilder(); - - String calledModule = input.getModuleName(); - String calledRpc = input.getRpcName(); - Mode calledMode = input.getMode(); - String modeStr = "sync"; - - if (calledMode == Mode.Async) { - modeStr = "async"; - } - - if (svcLogic == null) { - respBuilder.setResponseCode("500"); - respBuilder.setResponseMessage("Could not locate OSGi SvcLogicService service"); - respBuilder.setAckFinalIndicator("Y"); - - rpcResult = RpcResultBuilder. status(true).withResult(respBuilder.build()).build(); - return(Futures.immediateFuture(rpcResult)); - } - - - try { - if (!svcLogic.hasGraph(calledModule, calledRpc, null, modeStr)) { - respBuilder.setResponseCode("404"); - respBuilder.setResponseMessage("Directed graph for "+calledModule+"/"+calledRpc+"/"+modeStr+" not found"); - respBuilder.setAckFinalIndicator("Y"); - - rpcResult = RpcResultBuilder. status(true).withResult(respBuilder.build()).build(); - return(Futures.immediateFuture(rpcResult)); - } - } catch (Exception e) { - LOG.error("Caught exception looking for directed graph for "+calledModule+"/"+calledRpc+"/"+modeStr, e); - - respBuilder.setResponseCode("500"); - respBuilder.setResponseMessage("Internal error : could not determine if target graph exists"); - respBuilder.setAckFinalIndicator("Y"); - - rpcResult = RpcResultBuilder. status(true).withResult(respBuilder.build()).build(); - return(Futures.immediateFuture(rpcResult)); - } - - // Load properties - Properties parms = new Properties(); - - // Pass properties using names from sli-parameters - for (SliParameter sliParm : input.getSliParameter()) { - - String propValue = ""; - - Boolean boolval = sliParm.isBooleanValue(); - - if (boolval != null) { - propValue = boolval.toString(); - } else { - Integer intval = sliParm.getIntValue(); - if (intval != null) { - propValue = intval.toString(); - } else { - propValue = sliParm.getStringValue(); - if (propValue == null) { - propValue = ""; - } - } - } - parms.setProperty(sliParm.getParameterName(), propValue); - } - - // Also, pass "meta" properties (i.e. pass SliParameter objects themselves) - ExecuteGraphInputBuilder inputBuilder = new ExecuteGraphInputBuilder(input); - - SliapiHelper.toProperties(parms, "input", inputBuilder); - - try { - LOG.info("Calling directed graph for "+calledModule+"/"+calledRpc+"/"+modeStr); - - if (LOG.isTraceEnabled()) { - StringBuffer argList = new StringBuffer(); - argList.append("Parameters : {"); - Enumeration e = parms.propertyNames(); - while (e.hasMoreElements()) { - String propName = (String) e.nextElement(); - argList.append(" ("+propName+","+parms.getProperty(propName)+") "); - } - argList.append("}"); - LOG.trace(argList.toString()); - argList = null; - } - - - - Properties respProps = svcLogic.execute(calledModule, calledRpc, - null, modeStr, parms, domDataBroker); - - StringBuilder sb = new StringBuilder("{"); - - for (Object key : respProps.keySet()) { - String keyValue = (String) key; - if (keyValue != null && !"".equals(keyValue) && !keyValue.contains("input.sli-parameter")) { - sb.append("\"").append(keyValue).append("\": \"").append(respProps.getProperty(keyValue)).append("\","); - } - } - - sb.setLength(sb.length() - 1); - sb.append("}"); - - respBuilder.setResponseCode(respProps.getProperty("error-code", "0")); - respBuilder.setResponseMessage(respProps.getProperty("error-message", ""));// TODO change response-text to response-message to match other BVC APIs - respBuilder.setAckFinalIndicator(respProps.getProperty("ack-final", "Y")); - respBuilder.setContextMemoryJson(sb.toString()); - - TestResultBuilder testResultBuilder = new TestResultBuilder(); - - SliapiHelper.toBuilder(respProps, testResultBuilder); - - String testIdentifier = testResultBuilder.getTestIdentifier(); - - if ((testIdentifier != null) && (testIdentifier.length() > 0)) { - - // Add test results to config tree - LOG.debug("Saving test results for test id "+testIdentifier); - - DomSaveTestResult(testResultBuilder.build(), true, LogicalDatastoreType.CONFIGURATION); - - } - - } catch (Exception e) { - LOG.error("Caught exception executing directed graph for" - + calledModule + ":" + calledRpc + "," + modeStr + ">", e); - - respBuilder.setResponseCode("500"); - respBuilder - .setResponseMessage("Internal error : caught exception executing directed graph " - + calledModule - + "/" - + calledRpc - + "/" - + modeStr); - respBuilder.setAckFinalIndicator("Y"); - - } - - rpcResult = RpcResultBuilder. status(true) - .withResult(respBuilder.build()).build(); - return (Futures.immediateFuture(rpcResult)); - } - - - private SvcLogicService getSvcLogicService() { - BundleContext bctx = FrameworkUtil.getBundle(SvcLogicService.class).getBundleContext(); - - SvcLogicService svcLogic = null; - - // Get SvcLogicService reference - ServiceReference sref = bctx.getServiceReference(SvcLogicService.NAME); - if (sref != null) - { - svcLogic = (SvcLogicService) bctx.getService(sref); - - } - else - { - LOG.warn("Cannot find service reference for "+SvcLogicService.NAME); - - } - - return(svcLogic); - } - - @Override - public Future> healthcheck() { - - RpcResult rpcResult = null; - SvcLogicService svcLogic = getSvcLogicService(); - - HealthcheckOutputBuilder respBuilder = new HealthcheckOutputBuilder(); - - String calledModule = "sli"; - String calledRpc = "healthcheck"; - String modeStr = "sync"; - - if (svcLogic == null) { - respBuilder.setResponseCode("500"); - respBuilder.setResponseMessage("Could not locate OSGi SvcLogicService service"); - respBuilder.setAckFinalIndicator("Y"); - - rpcResult = RpcResultBuilder. failed().withResult(respBuilder.build()).build(); - return(Futures.immediateFuture(rpcResult)); - } - - try { - if (!svcLogic.hasGraph(calledModule, calledRpc, null, modeStr)) { - respBuilder.setResponseCode("404"); - respBuilder.setResponseMessage("Directed graph for "+calledModule+"/"+calledRpc+"/"+modeStr+" not found"); - - respBuilder.setAckFinalIndicator("Y"); - - rpcResult = RpcResultBuilder. status(true).withResult(respBuilder.build()).build(); - return(Futures.immediateFuture(rpcResult)); - } - } catch (Exception e) { - LOG.error("Caught exception looking for directed graph for "+calledModule+"/"+calledRpc+"/"+modeStr, e); - - respBuilder.setResponseCode("500"); - respBuilder.setResponseMessage("Internal error : could not determine if target graph exists"); - respBuilder.setAckFinalIndicator("Y"); - - rpcResult = RpcResultBuilder. failed().withResult(respBuilder.build()).build(); - return(Futures.immediateFuture(rpcResult)); - } - - try { - LOG.info("Calling directed graph for "+calledModule+"/"+calledRpc+"/"+modeStr); - - Properties parms = new Properties(); - - Properties respProps = svcLogic.execute(calledModule, calledRpc, - null, modeStr, parms); - - respBuilder.setResponseCode(respProps.getProperty("error-code", "0")); - respBuilder.setResponseMessage(respProps.getProperty("error-message", "")); - respBuilder.setAckFinalIndicator(respProps.getProperty("ack-final", "Y")); - - } catch (Exception e) { - LOG.error("Caught exception executing directed graph for" - + calledModule + ":" + calledRpc + "," + modeStr + ">", e); - - respBuilder.setResponseCode("500"); - respBuilder - .setResponseMessage("Internal error : caught exception executing directed graph " - + calledModule - + "/" - + calledRpc - + "/" - + modeStr); - respBuilder.setAckFinalIndicator("Y"); - - } - - rpcResult = RpcResultBuilder. status(true) - .withResult(respBuilder.build()).build(); - return (Futures.immediateFuture(rpcResult)); - } - - private void DomSaveTestResult(final TestResult entry, boolean merge, LogicalDatastoreType storeType) { - - - if (domDataBroker == null) { - LOG.error("domDataBroker unset - cannot save test result using DOMDataBroker"); - return; - } - - MapEntryNode resultNode = null; - - try { - resultNode = toMapEntryNode(entry); - } catch (Exception e) { - LOG.error("Caught exception trying to create map entry node", e); - } - - if (resultNode == null) { - LOG.error("Could not convert entry to MapEntryNode"); - return; - } - - - YangInstanceIdentifier testResultsPid = YangInstanceIdentifier.builder().node(TEST_RESULTS_QNAME).node(QName.create(TEST_RESULTS_QNAME, "test-result")).build(); - YangInstanceIdentifier testResultPid = testResultsPid.node(new NodeIdentifierWithPredicates(TEST_RESULT_QNAME, resultNode.getIdentifier().getKeyValues())); - - - - int tries = 2; - while(true) { - try { - DOMDataWriteTransaction wtx = domDataBroker.newWriteOnlyTransaction(); - if (merge) { - LOG.info("Merging test identifier "+entry.getTestIdentifier()); - wtx.merge(storeType, testResultPid, resultNode); - } else { - LOG.info("Putting test identifier "+entry.getTestIdentifier()); - wtx.put(storeType, testResultPid, resultNode); - } - wtx.submit().checkedGet(); - LOG.trace("Update DataStore succeeded"); - break; - } catch (final TransactionCommitFailedException e) { - if(e instanceof OptimisticLockFailedException) { - if(--tries <= 0) { - LOG.trace("Got OptimisticLockFailedException on last try - failing "); - throw new IllegalStateException(e); - } - LOG.trace("Got OptimisticLockFailedException - trying again "); - } else { - LOG.trace("Update DataStore failed"); - throw new IllegalStateException(e); - } - } - } - - } - - private void SaveTestResult(final TestResult entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException - { - // Each entry will be identifiable by a unique key, we have to create that identifier - InstanceIdentifier.InstanceIdentifierBuilder testResultIdBuilder = - InstanceIdentifier.builder(TestResults.class) - .child(TestResult.class, entry.getKey()); - InstanceIdentifier path = testResultIdBuilder.toInstance(); - int tries = 2; - while(true) { - try { - WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); - if (merge) { - tx.merge(storeType, path, entry); - } else { - tx.put(storeType, path, entry); - } - tx.submit().checkedGet(); - LOG.trace("Update DataStore succeeded"); - break; - } catch (final TransactionCommitFailedException e) { - if(e instanceof OptimisticLockFailedException) { - if(--tries <= 0) { - LOG.trace("Got OptimisticLockFailedException on last try - failing "); - throw new IllegalStateException(e); - } - LOG.trace("Got OptimisticLockFailedException - trying again "); - } else { - LOG.trace("Update DataStore failed"); - throw new IllegalStateException(e); - } - } - } - } - - private MapEntryNode toMapEntryNode(TestResult testResult) { - - - YangInstanceIdentifier testResultId = YangInstanceIdentifier.builder().node(TEST_RESULTS_QNAME).node(TEST_RESULT_QNAME).build(); - - // Construct results list - LinkedList> entryList = new LinkedList>(); - for (String result : testResult.getResults()) { - LeafSetEntryNode leafSetEntryNode = ImmutableLeafSetEntryNodeBuilder.create() - .withNodeIdentifier(new NodeWithValue(RESULTS_QNAME, result)) - .withValue(result) - .build(); - entryList.add(leafSetEntryNode); - } - // Construct results LeafSetNode - LeafSetNode resultsNode = ImmutableLeafSetNodeBuilder.create().withNodeIdentifier(new NodeIdentifier(RESULTS_QNAME)).withValue(entryList).build(); - - - - // Construct test result ContainerNode with 2 children - test-identifier leaf and results leaf-set - MapEntryNode testResultNode = ImmutableNodes.mapEntryBuilder() - .withNodeIdentifier(new NodeIdentifierWithPredicates(TEST_RESULT_QNAME, TEST_ID_QNAME, testResult.getTestIdentifier())) - .withChild(ImmutableNodes.leafNode(TEST_ID_QNAME, testResult.getTestIdentifier())) - .withChild(resultsNode) - .build(); - - return(testResultNode); - - } - -} diff --git a/sliapi/provider/src/main/resources/initial/sliapi-provider.xml b/sliapi/provider/src/main/resources/initial/sliapi-provider.xml deleted file mode 100644 index fd2ccbe..0000000 --- a/sliapi/provider/src/main/resources/initial/sliapi-provider.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - prefix:sliapi-provider-impl - - sliapi-provider-impl - - - - binding:binding-rpc-registry - binding-rpc-broker - - - - binding:binding-async-data-broker - binding-data-broker - - - - - binding:binding-notification-service - - binding-notification-broker - - - - - - - - - - - org:openecomp:sdnc:sliapi:provider:impl?module=sliapi-provider-impl&revision=2014-05-23 - - - diff --git a/sliapi/provider/src/main/yang/sliapi-provider-impl.yang b/sliapi/provider/src/main/yang/sliapi-provider-impl.yang deleted file mode 100644 index b32ff6c..0000000 --- a/sliapi/provider/src/main/yang/sliapi-provider-impl.yang +++ /dev/null @@ -1,61 +0,0 @@ -module sliapi-provider-impl { - - yang-version 1; - namespace "org:openecomp:sdnc:sliapi:provider:impl"; - prefix "sliapi-provider-impl"; - - import config { prefix config; revision-date 2013-04-05; } - import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; } - - description - "This module contains the base YANG definitions for - sliapi-provider impl implementation."; - - revision "2014-05-23" { - description - "Initial revision."; - } - - // This is the definition of the service implementation as a module identity. - identity sliapi-provider-impl { - base config:module-type; - - // Specifies the prefix for generated java classes. - config:java-name-prefix sliapiProvider; - } - - // Augments the 'configuration' choice node under modules/module. - // We consume the three main services, RPCs, DataStore, and Notifications - augment "/config:modules/config:module/config:configuration" { - case sliapi-provider-impl { - when "/config:modules/config:module/config:type = 'sliapi-provider-impl'"; - - container rpc-registry { - uses config:service-ref { - refine type { - mandatory true; - config:required-identity mdsal:binding-rpc-registry; - } - } - } - - container notification-service { - uses config:service-ref { - refine type { - mandatory true; - config:required-identity mdsal:binding-notification-service; - } - } - } - - container data-broker { - uses config:service-ref { - refine type { - mandatory false; - config:required-identity mdsal:binding-async-data-broker; - } - } - } - } - } -} -- cgit