From 471dafabda15677d67b5ef11ce2f4060b8c81f5b Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Mon, 21 Aug 2017 14:44:05 -0400 Subject: Add ODL + SLI container Add docker container that starts up OpenDaylight with SLI preinstalled Change-Id: Iffbc21e0437108608fc35fc573d8ef47e413eca8 Issue-ID: CCSDK-27 Signed-off-by: Dan Timoney --- odlsli/src/main/scripts/installFeatures.sh | 106 +++++++++++++++++++++++++ odlsli/src/main/scripts/installSdncDb.sh | 45 +++++++++++ odlsli/src/main/scripts/installZips.sh | 121 +++++++++++++++++++++++++++++ odlsli/src/main/scripts/startODL.sh | 66 ++++++++++++++++ 4 files changed, 338 insertions(+) create mode 100644 odlsli/src/main/scripts/installFeatures.sh create mode 100644 odlsli/src/main/scripts/installSdncDb.sh create mode 100644 odlsli/src/main/scripts/installZips.sh create mode 100644 odlsli/src/main/scripts/startODL.sh (limited to 'odlsli/src/main/scripts') diff --git a/odlsli/src/main/scripts/installFeatures.sh b/odlsli/src/main/scripts/installFeatures.sh new file mode 100644 index 00000000..8a45362b --- /dev/null +++ b/odlsli/src/main/scripts/installFeatures.sh @@ -0,0 +1,106 @@ +#!/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_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} +SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} +SDNC_FEATURE_DIR=${SDNC_FEATURE_DIR:-${SDNC_HOME}/features} + +SDNC_CORE_FEATURES=" \ + dblib \ + filters \ + sli \ + sliPluginUtils \ + sliapi" + +SDNC_ADAPTORS_FEATURES=" \ + aai-service \ + mdsal-resource \ + resource-assignment \ + sql-resource" + +SDNC_NORTHBOUND_FEATURES=" \ + asdcApi \ + dataChange + +SDNC_PLUGINS_FEATURES=" \ + properties-node \ + restapi-call-node" + + +SDNC_CORE_VERSION=${SDNC_CORE_VERSION:-0.0.1-SNAPSHOT} +SDNC_ADAPTORS_VERSION=${SDNC_ADAPTORS_VERSION:-0.0.1-SNAPSHOT} +SDNC_NORTHBOUND_VERSION=${SDNC_NORTHBOUND_VERSION:-0.0.1-SNAPSHOT} +SDNC_PLUGINS_VERSION=${SDNC_PLUGINS_VERSION:-0.0.1-SNAPSHOT} + +echo "Enabling core features" +${ODL_HOME}/bin/client -u karaf feature:install odl-mdsal-all +${ODL_HOME}/bin/client -u karaf feature:install odl-mdsal-apidocs +${ODL_HOME}/bin/client -u karaf feature:install odl-restconf-all + + + + +echo "Installing SDN-C core" +for feature in ${SDNC_CORE_FEATURES} +do + if [ -f ${SDNC_FEATURE_DIR}/sdnc-${feature}/install-feature.sh ] + then + ${SDNC_FEATURE_DIR}/sdnc-${feature}/install-feature.sh + else + echo "No installer found for feature sdnc-${feature}" + fi +done + +echo "Installing SDN-C adaptors" +for feature in ${SDNC_ADAPTORS_FEATURES} +do + if [ -f ${SDNC_FEATURE_DIR}/sdnc-${feature}/install-feature.sh ] + then + ${SDNC_FEATURE_DIR}/sdnc-${feature}/install-feature.sh + else + echo "No installer found for feature sdnc-${feature}" + fi +done + +echo "Installing SDN-C northbound" +for feature in ${SDNC_NORTHBOUND_FEATURES} +do + if [ -f ${SDNC_FEATURE_DIR}/sdnc-${feature}/install-feature.sh ] + then + ${SDNC_FEATURE_DIR}/sdnc-${feature}/install-feature.sh + else + echo "No installer found for feature sdnc-${feature}" + fi +done + +echo "Installing SDN-C plugins" +for feature in ${SDNC_PLUGINS_FEATURES} +do + if [ -f ${SDNC_FEATURE_DIR}/sdnc-${feature}/install-feature.sh ] + then + ${SDNC_FEATURE_DIR}/sdnc-${feature}/install-feature.sh + else + echo "No installer found for feature sdnc-${feature}" + fi +done diff --git a/odlsli/src/main/scripts/installSdncDb.sh b/odlsli/src/main/scripts/installSdncDb.sh new file mode 100644 index 00000000..37329d7b --- /dev/null +++ b/odlsli/src/main/scripts/installSdncDb.sh @@ -0,0 +1,45 @@ +#!/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========================================================= +### + +SDNC_HOME=${SDNC_HOME:-/opt/openecomp/sdnc} +MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0} + +SDNC_DB_USER=${SDNC_DB_USER:-sdnctl} +SDNC_DB_PASSWD=${SDNC_DB_PASSWD:-gamma} +SDNC_DB_DATABASE=${SDN_DB_DATABASE:-sdnctl} + + +# Create tablespace and user account +mysql -h dbhost -u root -p${MYSQL_PASSWD} mysql <<-END +CREATE DATABASE ${SDNC_DB_DATABASE}; +CREATE USER '${SDNC_DB_USER}'@'localhost' IDENTIFIED BY '${SDNC_DB_PASSWD}'; +CREATE USER '${SDNC_DB_USER}'@'%' IDENTIFIED BY '${SDNC_DB_PASSWD}'; +GRANT ALL PRIVILEGES ON ${SDNC_DB_DATABASE}.* TO '${SDNC_DB_USER}'@'localhost' WITH GRANT OPTION; +GRANT ALL PRIVILEGES ON ${SDNC_DB_DATABASE}.* TO '${SDNC_DB_USER}'@'%' WITH GRANT OPTION; +commit; +END + +if [ -f ${SDNC_HOME}/data/sdnctl.dump ] +then + mysql -h dbhost -u root -p${MYSQL_PASSWD} sdnctl < ${SDNC_HOME}/data/sdnctl.dump +fi diff --git a/odlsli/src/main/scripts/installZips.sh b/odlsli/src/main/scripts/installZips.sh new file mode 100644 index 00000000..8abf172f --- /dev/null +++ b/odlsli/src/main/scripts/installZips.sh @@ -0,0 +1,121 @@ +#!/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========================================================= +### + +if [ -z "$SETTINGS_FILE" -a -z "$GLOBAL_SETTINGS_FILE" -a -s "$HOME"/.m2/settings.xml ] +then + DEFAULT_MAVEN_SETTINGS=${HOME}/.m2/settings.xml + SETTINGS_FILE=${SETTINGS_FILE:-${DEFAULT_MAVEN_SETTINGS}} + GLOBAL_SETTINGS_FILE=${GLOBAL_SETTINGS_FILE:-${DEFAULT_MAVEN_SETTINGS}} +fi + +SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} + +targetDir=${1:-${SDNC_HOME}} +featureDir=${targetDir}/features + +SDNC_CORE_FEATURES=" \ + dblib \ + filters \ + sli \ + sliPluginUtils \ + sliapi" + +SDNC_ADAPTORS_FEATURES=" \ + aai-service \ + mdsal-resource \ + resource-assignment \ + sql-resource" + +SDNC_NORTHBOUND_FEATURES=" \ + asdcApi \ + dataChange " + +SDNC_PLUGINS_FEATURES=" \ + properties-node \ + restapi-call-node" + + +SDNC_CORE_VERSION=${SDNC_CORE_VERSION:-0.1.1} +SDNC_ADAPTORS_VERSION=${SDNC_ADAPTORS_VERSION:-0.1.1} +SDNC_NORTHBOUND_VERSION=${SDNC_NORTHBOUND_VERSION:-0.1.1} +SDNC_PLUGINS_VERSION=${SDNC_PLUGINS_VERSION:-0.1.1} +SDNC_OAM_VERSION=${SDNC_OAM_VERSION:-0.1.1} + +if [ ! -d ${targetDir} ] +then + mkdir -p ${targetDir} +fi + +if [ ! -d ${featureDir} ] +then + mkdir -p ${featureDir} +fi + +cwd=$(pwd) + +mavenOpts=${2:-"-s ${SETTINGS_FILE} -gs ${GLOBAL_SETTINGS_FILE}"} +cd /tmp + +echo "Installing SDN-C core version ${SDNC_CORE_VERSION}" +for feature in ${SDNC_CORE_FEATURES} +do + rm -f /tmp/${feature}-installer*.zip +mvn -U ${mavenOpts} org.apache.maven.plugins:maven-dependency-plugin:2.9:copy -Dartifact=org.onap.ccsdk.sli.core:${feature}-installer:${SDNC_CORE_VERSION}:zip -DoutputDirectory=/tmp -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.ssl.insecure=true + unzip -d ${featureDir} /tmp/${feature}-installer*zip +done + +echo "Installing SDN-C adaptors version ${SDNC_ADAPTORS_VERSION}" +for feature in ${SDNC_ADAPTORS_FEATURES} +do + rm -f /tmp/${feature}-installer*.zip +mvn -U ${mavenOpts} org.apache.maven.plugins:maven-dependency-plugin:2.9:copy -Dartifact=org.onap.ccsdk.sli.adaptors:${feature}-installer:${SDNC_ADAPTORS_VERSION}:zip -DoutputDirectory=/tmp -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.ssl.insecure=true + unzip -d ${featureDir} /tmp/${feature}-installer*zip +done + +echo "Installing SDN-C northbound version ${SDNC_NORTHBOUND_VERSION}" +for feature in ${SDNC_NORTHBOUND_FEATURES} +do + rm -f /tmp/${feature}-installer*.zip +mvn -U ${mavenOpts} org.apache.maven.plugins:maven-dependency-plugin:2.9:copy -Dartifact=org.onap.ccsdk.sli.northbound:${feature}-installer:${SDNC_NORTHBOUND_VERSION}:zip -DoutputDirectory=/tmp -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.ssl.insecure=true + unzip -d ${featureDir} /tmp/${feature}-installer*zip +done + +echo "Installing SDN-C plugins version ${SDNC_PLUGINS_VERSION}" +for feature in ${SDNC_PLUGINS_FEATURES} +do + rm -f /tmp/${feature}-installer*.zip +mvn -U ${mavenOpts} org.apache.maven.plugins:maven-dependency-plugin:2.9:copy -Dartifact=org.onap.ccsdk.sli.plugins:${feature}-installer:${SDNC_PLUGINS_VERSION}:zip -DoutputDirectory=/tmp -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.ssl.insecure=true + unzip -d ${featureDir} /tmp/${feature}-installer*zip +done + + + +echo "Installing platform-logic" +rm -f /tmp/platform-logic-installer*.zip +mvn -U ${mavenOpts} org.apache.maven.plugins:maven-dependency-plugin:2.9:copy -Dartifact=org.onap.ccsdk.distribution:platform-logic-installer:${SDNC_OAM_VERSION}:zip -DoutputDirectory=/tmp -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.ssl.insecure=true +unzip -d ${targetDir} /tmp/platform-logic-installer*.zip + +find ${targetDir} -name '*.sh' -exec chmod +x '{}' \; + +cd $cwd + diff --git a/odlsli/src/main/scripts/startODL.sh b/odlsli/src/main/scripts/startODL.sh new file mode 100644 index 00000000..cbc856d9 --- /dev/null +++ b/odlsli/src/main/scripts/startODL.sh @@ -0,0 +1,66 @@ +#!/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========================================================= +### + + +# Install SDN-C platform components if not already installed and start container + +ODL_HOME=${ODL_HOME:-/opt/opendaylight/current} +ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} +SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} +SLEEP_TIME=${SLEEP_TIME:-120} +MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0} + +# +# Wait for database +# +echo "Waiting for mysql" +until mysql -h dbhost -u root -p${MYSQL_PASSWD} mysql &> /dev/null +do + printf "." + sleep 1 +done +echo -e "\nmysql ready" + +if [ ! -f ${SDNC_HOME}/.installed ] +then + echo "Installing SDN-C database" + ${SDNC_HOME}/bin/installSdncDb.sh + echo "Starting OpenDaylight" + ${ODL_HOME}/bin/start + echo "Waiting ${SLEEP_TIME} seconds for OpenDaylight to initialize" + sleep ${SLEEP_TIME} + echo "Installing SDN-C platform features" + ${SDNC_HOME}/bin/installFeatures.sh + if [ -x ${SDNC_HOME}/svclogic/bin/install.sh ] + then + echo "Installing directed graphs" + ${SDNC_HOME}/svclogic/bin/install.sh + fi + + + echo "Restarting OpenDaylight" + ${ODL_HOME}/bin/stop + echo "Installed at `date`" > ${SDNC_HOME}/.installed +fi + +exec ${ODL_HOME}/bin/karaf -- cgit 1.2.3-korg