summaryrefslogtreecommitdiffstats
path: root/sdnr/wireless-transport/code-Carbon-SR1/odl
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wireless-transport/code-Carbon-SR1/odl')
-rwxr-xr-xsdnr/wireless-transport/code-Carbon-SR1/odl925
1 files changed, 925 insertions, 0 deletions
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/odl b/sdnr/wireless-transport/code-Carbon-SR1/odl
new file mode 100755
index 00000000..3dc8c08b
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/odl
@@ -0,0 +1,925 @@
+#!/bin/bash
+# (c) 2016 highstreet technologies
+# History
+# 2.1 Modify to use config/active directory
+# 2.2 Correct problems
+# 2.3 Shift config/active to code/apps/persistentDatabase/activConfig
+# 2.4 Update to Boron
+# 2.5 One feature to start apps
+# 2.6 New variant of install.sh
+# 2.12 CMDBIN, switch of DLUX for prepare
+# 2.13 Adapt ODLBIN to odl.sh and buildv2.sh,
+# Fix "yes" answer for cluster distremove
+# introduce cluster push
+# kill command
+# 2.14 add compile command
+# 2.15 move im install script to odl.cmd
+# 2.16 Add $ODL_KARAF_STARTUP_SCRIPT_CLUSTER for cluster command
+# cp for filecopy
+# 2.17 odl.cmd moved back into bin/odl.sh
+# Added prepare with copy of etc/preload.cache.schema to cache/schema into startup
+# status command delivers version information
+# 2.18 Add loop for cluster commands
+# 2.19 Change startup feature
+# Add parent version variable ODLPARENT
+# 2.20 Added parameter KARAFSLEEPFORSTART
+# 2.21 Typos fixed
+Version=2.21
+
+# ----- Constants not depending on variables specified by $CONFIG
+ODLPARENT="0.5.1-SNAPSHOT"
+STARTFEATURE="odl-dev-all"
+KARAFSLEEPFORSTART=30
+ODLBIN=../bin
+
+CONFIG=dist.conf
+
+# ----- Functions to startup Vanilla ODL
+
+karaf_prepare() {
+ echo "Prepare"
+ echo $ODL_KARAF_HOME
+ ODLCACHESCHEMADIR="$ODL_KARAF_HOME/cache/schema"
+ ETCCACHESCHEMADIR="$ODL_KARAF_HOME/etc/preload.cache.schema"
+
+ if [ -d "$ETCCACHESCHEMADIR" ] ; then
+ echo "Handle YANG preload"
+ if [ -d "$ODLCACHESCHEMADIR" ] ; then
+ echo "Remove all files in YANG cache/schema directory"
+ rm $ODLCACHESCHEMADIR/*
+ else
+ echo "YANG cache/schema directory created"
+ mkdir -p $ODLCACHESCHEMADIR
+ fi
+ cp $ETCCACHESCHEMADIR/* $ODLCACHESCHEMADIR
+ fi
+}
+
+# Startup of single node (no clustering)
+karaf_startup_all() {
+ # Prepare
+ karaf_prepare
+ # Base
+ karafcmd "feature:install odl-netconf-topology"
+ karafcmd "feature:install odl-netconf-connector"
+ karafcmd "feature:install odl-restconf-all"
+ karafcmd "feature:install odl-mdsal-apidocs"
+
+ # Logs and apps
+ karaf_enable_logs
+ karaf_startup_apps
+}
+
+# Startup of clustered nodes (no clustering)
+karaf_startup_cluster_all() {
+ # Prepare
+ karaf_prepare
+ # Base
+ karafcmd "feature:repo-add mvn:org.opendaylight.mwtn/mwtn-parent/$ODLPARENT/xml/features"
+ karafcmd "feature:install odl-mwtn-cluster-preparation"
+
+ # Logs and apps
+ karaf_enable_logs DEBUG
+ karaf_startup_apps
+}
+
+# Sub functions
+
+karaf_startup_apps() {
+ # Wireless (mwtn: microwave transport network)
+ karafcmd "feature:repo-add mvn:org.opendaylight.mwtn/mwtn-parent/$ODLPARENT/xml/features"
+ karafcmd "feature:install $STARTFEATURE"
+
+ #If restart is required set RESTART to true
+ # RESTART="true"
+}
+
+karaf_enable_logs() {
+ if [ -z "$1" ] ; then
+ LOGLEVEL="INFO"
+ else
+ LOGLEVEL="$1"
+ fi
+ karafcmd "log:set $LOGLEVEL com.highstreet.technologies"
+ karafcmd "log:set $LOGLEVEL org.opendaylight.mwtn"
+ karafcmd "log:set $LOGLEVEL org.opendaylight.netconf"
+}
+
+karafcmd() {
+ echo "$@"
+ $ODL_KARAF_HOME/bin/client -u karaf "$@" 2> /dev/null
+ if [ ! -z "$ODL_KARAF_AFTERCMD_DELAY_SECONDS" ] ; then
+ echo "Pause $ODL_KARAF_AFTERCMD_DELAY_SECONDS seconds"
+ sleep "$ODL_KARAF_AFTERCMD_DELAY_SECONDS"
+ fi
+}
+
+install_originM2() {
+ #Network apps
+ cp -r ~/.m2/repository/org/opendaylight/mwtn $ODL_KARAF_HOME/system/org/opendaylight
+ cp -r ~/.m2/repository/com/highstreet $ODL_KARAF_HOME/system/com
+ #Additional package for feature odl-ht-info
+ mkdir -p $ODL_KARAF_HOME/system/org/apache/commons/commons-compress
+ cp -r ~/.m2/repository/org/apache/commons/commons-compress/1.14 $ODL_KARAF_HOME/system/org/apache/commons/commons-compress
+}
+
+# ----- Functions of script to implement commands
+
+#check if tool is installed as prereq
+
+tool_check_installed() {
+ hash $1 2>/dev/null || { echo >&2 "I require $1 but it's not installed. Please install. Aborting."; exit 1; }
+}
+
+#check if karaf instance is running
+karaf_checkrunning() {
+ NETSTATRESULT=$(netstat -ant | grep 8101)
+ if [ -n "$NETSTATRESULT" ] ; then
+ reason="$NETSTATRESULT"
+ running="true"
+ else
+ running1=$(ps -ef | grep -c karaf.jar)
+ sleep 1
+ running2=$(ps -ef | grep -c karaf.jar)
+
+ reason="psResults: $running1 $running2"
+ if [ "$running1" = "2" -o "$running2" = "2" ] ; then
+ running="true"
+ else
+ running="false"
+ fi
+ fi
+ #echo "Test running: $running indication:$reason"
+}
+
+karaf_status() {
+ echo "Version information"
+ cat $ODL_KARAF_HOME/networkAppVersion.txt
+ karaf_checkrunning
+ echo "Karaf is running: $running"
+}
+
+karaf_waittillstopped() {
+ KARAF_WAITFORSTOP="5"
+ anzahl=0
+
+ echo -n "Wait for stop "
+
+ karaf_checkrunning
+ while [ "$running" = "true" -a "$anzahl" -lt 30 ]
+ do
+ (( anzahl++ ))
+ # echo "Wait ($anzahl) for karaf stop. Wait $KARAF_WAITFORSTOP seconds"
+ echo -n "."
+ sleep $KARAF_WAITFORSTOP
+ karaf_checkrunning
+ done
+ echo
+
+ if [ "$running" = "true" ]
+ then
+ echo "Exceeded wait counter. Waited $anzahl * $KARAF_WITFORSTOP seconds. Karaf still running. Reason is $reason"
+ else
+ echo "Karaf reached stop status with $reason"
+ fi
+}
+
+karaf_startifnotrunning() {
+
+ karaf_checkrunning
+ if [ "$running" = "true" ]
+ then
+ echo "Can not start, karaf is already running. Reason: $reason"
+ else
+ if [ "$1" = "clean" ] ; then
+ $ODL_KARAF_HOME/bin/start clean
+ echo "Started with clean"
+ else
+ $ODL_KARAF_HOME/bin/start
+ echo "Started"
+ fi
+ fi
+}
+
+
+# Start all servies
+# see beginning of this script
+
+#Param1 Optional Param2 Optional
+karaf_cleanstart() {
+ echo "start karaf clean with parameters $1 $2"
+ if [ -f "$ODL_KARAF_HOME/etc/opendaylight" ]
+ then
+ echo "Remove old ODL configuration"
+ rm -r $ODL_KARAF_HOME/etc/opendaylight
+ fi
+ echo "Start karaf"
+ $ODL_KARAF_HOME/bin/start clean
+ echo "Wait $KARAFSLEEPFORSTART s till karaf and ssh is in a working level"
+ sleep $KARAFSLEEPFORSTART
+ netstat -ant | grep 8101
+ echo "Provisioning $1"
+ if [ -z "$ODL_KARAF_STARTUP_SCRIPT" ] ; then #Old scripting names
+ if [ "$1" = "1b" ] ; then
+ karaf_startup_1b
+ else
+ karaf_startup_all
+ fi
+ else #Use startup script according to configuration
+ if [ "$1"="cluster" ] ; then
+ echo "Cluster start command"
+ if [ -z "$ODL_KARAF_STARTUP_SCRIPT_CLUSTER" ] ; then
+ echo "Using normal startup script"
+ $ODL_KARAF_STARTUP_SCRIPT
+ else
+ echo "Using cluster startup script"
+ $ODL_KARAF_STARTUP_SCRIPT_CLUSTER
+ fi
+ else
+ $ODL_KARAF_STARTUP_SCRIPT
+ fi
+ fi
+ if [ "$1" = "x" -o "$2" = "x" -o "$RESTART" = "true" ] ; then
+ echo "Executed with restart option .."
+ sleep 5
+ $ODL_KARAF_HOME/bin/stop
+ echo "Re-starting Karaf to finish setup"
+ karaf_waittillstopped
+ if [ "$1" = "d" -o "$2" = "d" ] ; then
+ rp=$ODL_KARAF_HOME/data/log
+ echo "Remove all logs from $rp"
+ rm "$rp"/*
+ fi
+ karaf_startifnotrunning
+ fi
+ echo "Ready"
+}
+
+# Install from dir $1 all subs with mask $2.
+# Example: install_originM2Range "com/highstreet/technologies/solutions" "sdn4*"
+install_originM2Range() {
+ mkdir -p $ODL_KARAF_HOME/system/$1
+ cp -R $HOME/.m2/repository/$1/$2 $ODL_KARAF_HOME/system/$1
+}
+
+install_tarFile() {
+ if [ ! -e "$1" ] ; then
+ echo "No tar file $1"
+ exit 4
+ else
+ echo "Do install file $1 to karaf container"
+ tar -xf "$1" -C "$ODL_KARAF_HOME"
+ echo "Done"
+ fi
+}
+
+install_originBuild() {
+
+ if [ -z "$ODL_BUILD_HOME" ] ; then
+ echo "No ODL_BUILD_HOME defined. Terminate" ; exit 2
+ fi
+ echo "Build home at $ODL_BUILD_HOME"
+ if [ ! -e $ODL_BUILD_HOME/builds/version.txt ] ; then
+ echo "No builds available Terminate." ; exit 2
+ fi
+
+ source $ODL_BUILD_HOME/builds/version.txt
+ echo "Install Version $LASTBUILDTAR"
+ tar -xf "$ODL_BUILD_HOME/builds/$LASTBUILDTAR" -C "$ODL_KARAF_HOME"
+ echo "Version info"
+ cat $ODL_KARAF_HOME/networkAppVersion.txt
+}
+
+clean_repository() {
+ echo Clean repository .m2 and karaf/system
+ rm -r ~/.m2/repository/org/opendaylight/mwtn
+ rm -r ~/.m2/repository/org/opendaylight/apigateway
+ rm -r ~/.m2/repository/cn/com/zte
+ rm -r ~/.m2/repository/com/hcl
+ rm -r ~/.m2/repository/com/highstreet
+ rm -r $ODL_KARAF_HOME/system/com/highstreet
+ rm -r $ODL_KARAF_HOME/system/com/hcl
+ rm -r $ODL_KARAF_HOME/system/cn/com/zte
+ rm -r $ODL_KARAF_HOME/system/org/opendaylight/mwtn
+ rm -r $ODL_KARAF_HOME/system/org/opendaylight/apigateway
+}
+
+# Parameter1 nodlux
+prepare() {
+ #tool_check_installed unzip
+ #tool_check_installed sshpass
+ KARAFDISTBASENAME=$ODL_KARAF_DIST
+ KARAFGZ=$ODL_KARAF_DISTGZ
+ NODLUX="nodlux"
+
+ if [ ! -f "$KARAFGZ" ] ; then
+ echo "ERROR: Could not find tar file with karaf distribution: $KARAFGZ"
+ else
+ if [ "$1" != "$NODLUX" -a ! -f "$TARFILE_DLUXLOADER" ] ; then
+ echo "WARN: Could not find tar with DLUX patch $TARFILE_DLUXLOADER. .. proceeding without Patching"
+ fi
+ if [ -d "$ODL_KARAF_HOME" ] ; then
+ echo "Found existing Karaf distribution at $ODL_KARAF_HOME. Can not proceed. Please remove or rename."
+ else
+ echo "Start installation $KARAFDISTBASENAME"
+ echo "Unpack karaf distribution"
+ cd $HOME
+ cd Downloads
+ tar -xzf $KARAFDISTBASENAME".tar.gz"
+ mv "$KARAFDISTBASENAME" "$ODL_KARAF_HOME"
+ cd "$here"
+
+ if ! [ -d "$ODL_KARAF_HOME" ] ; then
+ echo "ERROR: Could not find ODL_KARAF_HOME. Can not proceed if not existing."
+ else
+ echo "READY, create link dist"
+ ln -s $ODL_KARAF_HOME dist
+ if [ "$1" != "$NODLUX" ] ; then
+ echo "Install DLUX patch"
+ installDluxPatch tar
+ fi
+ fi
+ fi
+ fi
+}
+
+show_env() {
+ echo "ENV settings:"
+ echo " ODL_KARAF_DIST: $ODL_KARAF_DIST"
+ echo " ODL_KARAF_HOME: $ODL_KARAF_HOME"
+ echo " JAVA_HOME: $JAVA_HOME"
+}
+
+#Param1: Mandatory Param2:optional Param3:optional
+do_install() {
+
+ echo "Install from $1 to Karaf"
+ if [ ! -d "$ODL_KARAF_HOME" ] ; then
+ echo "ERROR: Karaf not installed at $ODL_KARAF_HOME. Stop execution."
+ exit 2
+ fi
+ sleep 2
+ karaf_checkrunning
+ if [ "$running" = "true" ]
+ then
+ echo "karaf instance is running. Stop first. Indication '$reason'"
+ else
+ echo "Start install to karaf"
+ case "$1" in
+ build)
+ install_originBuild
+ karaf_cleanstart $2 $3
+ ;;
+ m2)
+ if [ "$(type -t install_originM2)" == "function" ] ; then
+ install_originM2
+ karaf_cleanstart $2 $3
+ else
+ echo "Error: Install function not defined. Exit."
+ fi
+ ;;
+ tar)
+ install_tarFile $2
+ shift
+ karaf_cleanstart $3 $4
+ ;;
+ *)
+ echo "Script error: missing installation command"
+ ;;
+ esac
+ fi
+}
+
+karaf_distremove() {
+ echo "Remove karaf installation"
+ karaf_checkrunning
+ if [ "$running" = "true" ]
+ then
+ echo "karaf instance is running. Stop first"
+ else
+ if [ "$1" = "force" ] ; then
+ answer=yes
+ else
+ read -p "Delete karaf installation. if you are sure type yes<enter> " answer
+ fi
+ if [ "$answer" == "yes" ] ; then
+ echo "Remove ..."
+ rm -r $ODL_KARAF_HOME
+ echo "Remove link"
+ rm dist
+ echo "removed"
+ else
+ echo "Did nothing"
+ fi
+ fi
+}
+
+# Par1 Install command
+installDluxPatch() {
+ #Default is the tar file
+ DLUXAPPHOME="apps/dlux"
+ TARGETDIR="$DLUXAPPHOME/loader/impl/target"
+ LOADERREPO="org/opendaylight/dlux"
+ LOADERNAME="loader.implementation"
+
+ case "$1" in
+ m2)
+ if [ -d $TARGETDIR ] ; then
+ echo "Copy DLUX Patch from repository"
+ cp -r "$HOME/.m2/repository/$LOADERREPO/loader.implementation" "$ODL_KARAF_HOME/system/$LOADERREPO"
+ else
+ echo "ERROR No compiled DLUX Version or tarfile for repositiory found. "
+ echo " - Please compile dlux."
+ echo " - Install DLUX Patch with $ODL/odl.sh dlux m2"
+ fi
+ ;;
+ tar)
+ if [ -f "$TARFILE_DLUXLOADER" ] ; then
+ echo "Install DLUX Patch from existing tar"
+ tar -xzf "$TARFILE_DLUXLOADER" -C "$ODL_KARAF_HOME/system"
+ echo "Done"
+ else
+ echo "DLUX tar file not found: $TARFILE_DLUXLOADER"
+ fi
+ ;;
+ create)
+ echo "Create tar file"
+ if [ -d $TARGETDIR ] ; then
+ HERE=$(pwd)
+
+ stringa=($(cd $TARGETDIR ; ls $LOADERNAME*jar))
+ if [[ ${stringa[0]} =~ $LOADERNAME-(.*).jar ]] ; then
+ version="${BASH_REMATCH[1]}"
+ echo $version
+ M2INPUTNAME="$LOADERREPO/$LOADERNAME/$version"
+ TAROUTPUTNAME="$HERE/$DLUXAPPHOME/$ODL_KARAF_DIST.dluxloader.tar.gz"
+ echo "Creating file: $TAROUTPUTNAME"
+ echo "Reading from: $M2INPUTNAME"
+ cd "$HOME/.m2/repository"
+ tar -czf "$TAROUTPUTNAME" "$M2INPUTNAME"
+ echo Done
+ fi
+ cd $HERE
+ else
+ echo "ERROR No compiled DLUX Version for repositiory found. "
+ echo " - Please compile dlux."
+ fi
+ ;;
+ *)
+ echo "use $ODLBIN/odl.sh dlux [m2|tar|create] to install from m2-repository or install tar file or create tar file"
+ ;;
+ esac
+}
+
+# -----------------------------------------------------
+# ----- Cluster commands
+
+# P1: Passwd P2: Username P3:ServerIP P4, P5: Remote commands
+karafclustercmd() {
+ rcmd="cd $here ; $ODLBIN/odl.sh $4 $5"
+ cmd="sshpass -p$1 ssh -o StrictHostKeyChecking=no $2@$3 $rcmd"
+ echo "--------- Begin at node: $3 -----------"
+ $cmd
+ echo "--------- Ende at node: $3 ------------"
+}
+
+# P1: Passwd P2: Username P3:ServerIP P4, P5: Remote commands
+karafclustercmdnohup() {
+ #Template: nohup myprogram > foo.out 2> foo.err < /dev/null &
+ echo " Start install for node $3"
+ rcmd="cd $here ; nohup $ODLBIN/odl.sh $4 $5 &> odl.log < /dev/null &"
+ cmd="sshpass -p$1 ssh -o StrictHostKeyChecking=no $2@$3 $rcmd"
+ $cmd
+ echo "Command executed in background. Result see odl.log."
+}
+
+karafclustercreate() {
+
+ if [ -z "$1" ] ; then
+ read -p "Please enter password for user $USER: " -r -s USERPWD
+ echo
+ fi
+
+ for i in ${!ODL_CLUSTER_ARRAY[@]} ; do
+ rcmd="cd $here ; $ODL_KARAF_HOME/bin/configure_cluster.sh $((i+1)) ${ODL_CLUSTER_ARRAY[@]}"
+ cmd="sshpass -p$USERPWD ssh -o StrictHostKeyChecking=no $USER@${ODL_CLUSTER_ARRAY[$i]} $rcmd"
+ echo "--------- Start Node: ${ODL_CLUSTER_ARRAY[$i]} ----------- CMD: $rcmd"
+ $cmd
+ echo "--------- Ende Node: ${ODL_CLUSTER_ARRAY[$i]}------------"
+ done
+
+}
+
+pause() {
+ read -p "($1) Hit enter ..." -r -s TMP
+ echo
+}
+
+#Destination is $ODL_BUILD_HOME
+#Source is $ODL_CLUSTER_REPO
+pushbuildinfo() {
+ if [ -z $ODL_CLUSTER_REPO ] ; then
+ echo "No cluster repository specified by ODL_CLUSTER_REPO. Can not proceed."
+ else
+ if [ -z "$ODL_BUILD_HOME" ] ; then
+ echo "No ODL_BUILD_HOME defined. Terminate" ; exit 2
+ fi
+ echo "Build home at $ODL_CLUSTER_REPO"
+ ODL_VERSION_FILE="$ODL_CLUSTER_REPO/builds/version.txt"
+ if [ ! -e $ODL_VERSION_FILE ] ; then
+ echo "No builds available Terminate." ; exit 2
+ fi
+
+ #Read version information
+ source $ODL_VERSION_FILE
+ echo "Prepare cluster with $BUILDTAG and prepare configuration files."
+ echo "Destination repository: $ODL_BUILD_HOME Source repository: $ODL_CLUSTER_REPO"
+ if [ -z "$1" ] ; then
+ read -p "Please enter password for user $USER: " -r -s USERPWD
+ echo
+ fi
+ for i in ${ODL_CLUSTER_ARRAY[@]} ; do
+ echo "Copy to $i:$ODL_BUILD_HOME"
+ sshpass -p$USERPWD ssh -o StrictHostKeyChecking=no $USER@$i "mkdir -p $ODL_BUILD_HOME/builds"
+ sshpass -p$USERPWD scp "$ODL_CLUSTER_REPO/builds/$LASTBUILDTAR" "$i:$ODL_BUILD_HOME/builds"
+ sshpass -p$USERPWD scp "$ODL_VERSION_FILE" "$i:$ODL_BUILD_HOME/builds"
+ sshpass -p$USERPWD scp -r "$ODL_CLUSTER_REPO/bin" "$i:$ODL_BUILD_HOME"
+ sshpass -p$USERPWD ssh -o StrictHostKeyChecking=no $USER@$i "mkdir -p $here"
+ sshpass -p$USERPWD scp "$here/$CONFIG" "$i:$here"
+ # sshpass -p$USERPWD scp "$here/$ODLCMD" "$i:$here"
+ sshpass -p$USERPWD ssh -o StrictHostKeyChecking=no $USER@$i "cd $here ; chmod 755 $ODL_BUILD_HOME/bin/odl.sh ; if [ ! -e odl ] ; then ln -s $ODL_BUILD_HOME/bin/odl.sh odl ; fi"
+ done
+ fi
+}
+
+#Destination is $here/dist
+#Parameter $1 is sourcedirectory
+clusterfilecopy() {
+ if [ -z "$1" ] ; then
+ echo "ERROR: Need a path as parameter"
+ else
+ echo "Copy all files from directory $1/* to $here/dist/$1 on each node."
+ read -p "Please enter password for user $USER: " -r -s USERPWD
+ echo
+ for i in ${ODL_CLUSTER_ARRAY[@]} ; do
+ destpath="$i:$here/dist"
+ echo "Copy $here/$1 to $destpath"
+ sshpass -p$USERPWD scp -r "$1" "$destpath"
+ done
+ fi
+}
+
+karafclusterinfo() {
+ echo "Using user $USER"
+ echo "Cluster: ${ODL_CLUSTER_ARRAY[@]}"
+}
+
+karafcluster() {
+
+ CLUSTERCLI="TRUE"
+
+ while [ $CLUSTERCLI = "TRUE" ] ; do
+
+ if [ -z "$ODL_CLUSTER_ARRAY" ] ; then
+ echo "No cluster in '$ODL_CLUSTER_ARRAY' specified"
+ else
+ tool_check_installed sshpass
+ echo "Cluster: ${ODL_CLUSTER_ARRAY[@]}"
+
+ if [ -z "$1" ] ; then
+ read -p "cluster cmd> " answer
+ set -- $answer
+ else
+ CLUSTERCLI="FALSE"
+ fi
+
+ case "$1" in
+ cp)
+ clusterfilecopy $2
+ ;;
+ create)
+ karafclustercreate
+ ;;
+ distremove)
+ read -p "Confirm karaf cluster installation deletion. If you are sure type yes<enter> " answer
+ if [ "$answer" = "yes" ] ; then
+ echo "Change to forced mode."
+ set -- distremove force
+ function="karafclustercmd"
+ else
+ echo "Terminated by user"
+ fi
+ ;;
+ "" | exit)
+ CLUSTERCLI="FALSE"
+ function=""
+ ;;
+ info)
+ karafclusterinfo
+ ;;
+ im* | ib*)
+ echo "Started on each node in background. See odl.log"
+ function="karafclustercmdnohup"
+ set -- $1 cluster
+ ;;
+ push)
+ pushbuildinfo
+ ;;
+ *)
+ function="karafclustercmd"
+ ;;
+ esac
+
+ if [ ! -z "$function" ] ; then
+ read -p "Please enter password for user $USER: " -r -s USERPWD
+ echo
+ for i in "${ODL_CLUSTER_ARRAY[@]}" ; do
+ $function $USERPWD $USER $i $1 $2
+ done
+ if [ "$1" = "prepare" ] ; then
+ read -p "Proceed with create (y/n): " answer
+ case "$answer" in
+ y*) karafclustercreate $USERPWD
+ ;;
+ esac
+ fi
+ fi
+ fi
+ if [ $CLUSTERCLI = "TRUE" ] ; then
+ set -- ""
+ fi
+
+done
+}
+
+# -----------------------------------------------------
+# ----- Script body
+
+echo "AppToODL installer $Version"
+
+if [ -f $CONFIG ] ; then
+ echo "Load configuration"
+ source "$CONFIG"
+else
+ script_command="Error: No $CONFIG file .. can not proceed. Create this file and specify the right versions:"
+ echo $script_command
+ echo 'ODL_KARAF_DIST="distribution-karaf-0.6.1-Carbon"'
+ echo 'ODL_KARAF_HOME=$HOME/odl/$ODL_KARAF_DIST'
+ echo 'ODL_KARAF_DISTGZ="$HOME/Downloads/"$ODL_KARAF_DIST".tar.gz"'
+ echo 'ODL_BUILD_HOME="$HOME/build/acme"'
+ echo 'ODL_KARAF_STARTUP_SCRIPT="karaf_startup_all"'
+ echo 'export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"'
+ echo
+ echo "Example for downloading the distribution:"
+ echo 'wget https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.6.1-Carbon/distribution-karaf-0.6.1-Carbon.tar.gz'
+
+ exit 1
+fi
+#Since 2.17 moved back to script
+#if [ -f $ODLCMD ] ; then
+# source $ODLCMD
+#else
+# script_command="Error: No $ODLCMD file .. can not proceed"
+# echo $script_command
+# exit 1
+#fi
+
+TARFILE_DLUXLOADER="apps/dlux/$ODL_KARAF_DIST.dluxloader.tar.gz"
+echo "Karaf home: $ODL_KARAF_HOME"
+
+here=$(pwd)
+echo "Executed here: $here"
+echo ""
+
+if [ -z "$ODL_KARAF_HOME" -o -z "$ODL_KARAF_DIST" ]
+then
+ echo "Missing ENV setting ODL_KARAF_HOME or ODL_KARAF_DIST. Can not execute."
+ show_env
+ script_command="Error Incomplete ENV"
+else
+ script_command="ok"
+fi
+
+#echo "Command: $script_command"
+
+if [ "$script_command" = "ok" ] ; then
+
+case "$1" in
+
+ build)
+ if [ -z "$ODL_BUILD_HOME" ] ; then
+ echo "No build configuration found. Specify '$ODL_BUILD_HOME'."
+ else
+ echo "Enter build subsystem at location $ODL_BUILD_HOME"
+ shift
+ $ODLBIN/buildv2.sh $@
+ fi
+ ;;
+
+ cli)
+ shift
+ karafcmd $@
+ ;;
+
+ clu*)
+ shift
+ karafcluster $@
+ ;;
+
+ dlux)
+ echo "Install DLUX Patch"
+ shift
+ installDluxPatch $@
+ ;;
+
+ env)
+ show_env
+ ;;
+ kill)
+ echo "Kill ODL instance"
+ pkill -e -f "Dkaraf.home=.home.herbert.odl.$ODL_KARAF_DIST"
+ ;;
+ test)
+ echo "Test a little bit"
+ here=$(pwd)
+ echo "Path: $here"
+ cd $HOME
+ echo "List1"
+ ls
+ cd $here
+ echo "List2"
+ ls
+
+ karaf_prepare
+ ;;
+ v)
+ echo "List app versions"
+ mvn --version
+ git --version
+ echo "node: " ; node --version
+ echo "npm: " ; npm --version
+ echo "jq: " ; jq --version
+ echo "bower" ; bower --version
+ ;;
+ restart)
+ echo "restart command"
+ karaf_checkrunning
+ if [ "$running" = "true" ] ; then
+ $ODL_KARAF_HOME/bin/stop
+ karaf_waittillstopped
+ karaf_startifnotrunning $2
+ else
+ echo "Already stopped .. do start"
+ karaf_startifnotrunning $2
+ fi
+ ;;
+
+ stop)
+ echo "stop command"
+ karaf_checkrunning
+ if [ "$running" = "true" ] ; then
+ $ODL_KARAF_HOME/bin/stop
+ karaf_waittillstopped
+ else
+ echo "Already stopped"
+ fi
+ ;;
+ start)
+ echo "start command"
+ karaf_startifnotrunning $2
+ ;;
+ bower)
+ echo "Install bower"
+ cd ./ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/
+ ./bowerInstall.sh
+ cd $here
+ ;;
+
+ dbclean)
+ database_cleansetup
+ ;;
+
+ untar)
+ echo "Extract karaf"
+ prepare nodlux
+ ;;
+
+ prepare)
+ echo "Prepare prepare"
+ prepare $2
+ ;;
+
+ a)
+ echo "Compile all"
+ mvn clean install -DskipTests
+ if [[ $? -ne 0 ]] ; then
+ echo "could not complete"
+ else
+ do_install m2
+ fi
+ ;;
+
+ d)
+ app="devicemanager"
+ echo "Compile $app"
+ cd apps/$app
+ mvn clean install -DskipTests
+ rc=$?
+ cd $here
+ if [[ $rc -ne 0 ]] ; then
+ echo "could not complete"
+ else
+ do_install m2 d
+ fi
+ ;;
+
+ distremove)
+ karaf_distremove $2
+ ;;
+
+ ib)
+ do_install build $2
+ ;;
+
+ imd)
+ do_install m2 d $2
+ ;;
+
+ im)
+ do_install m2 $2
+ ;;
+
+ it)
+ do_install tar $2
+ ;;
+
+ karafclean)
+ karaf_cleanstart
+ ;;
+
+ log)
+ vi dist/data/log/karaf.log
+ ;;
+
+ migrate)
+ echo "Migrate index$2 to index$3"
+ elasticdump --input=http://localhost:9200/sdnevents_$2 --output=http://localhost:9200/sdnevents_$3 --type=data --limit=100000
+ ;;
+ mvn)
+ echo "try to compile $2"
+ here=`pwd`
+ cd "$2"
+ mvn clean install -DskipTests
+ cd "$here"
+ ;;
+ status)
+ karaf_status
+ ;;
+
+ debug)
+ karaf_enable_logs $2
+ ;;
+
+ *)
+ if [ ! "$1" == "help" ] ; then
+ echo "ERROR Unknown command $1"
+ fi
+ echo "Commands:"
+ echo " a for build all and install from M2"
+ echo " build enter build subsystem"
+ echo " build, deliver"
+ echo " bower for install bower"
+ echo " cli start karaf command line"
+ echo " cluster xx cluster commands and all other commands"
+ echo " status, ib, im, stop, push, distremove, cp"
+ echo " env List environment variables"
+ echo " d for devicemanager and install from M2"
+ echo " dbclean clean db and load with initial data"
+ echo " debug activate debug for netconf and mwtn"
+ echo " distremove remove existing karaf distribution"
+ echo " dlux install DLUX patch. Use dlux [m2|tar|create] to install from m2-repository or install tar file or create tar file"
+ echo " help List this help"
+ echo " ib for install from Build-directory"
+ echo " im for install from M2-directory"
+ echo " imd for install from M2-directory. Delete logs before start command"
+ echo " it fn install tar file to container"
+ echo " karafclean start clean and install apps on karaf"
+ echo " kill hard termination of ODL instance"
+ echo " log vi karaf.log"
+ echo " migrate migrate Param1 Param2 Migrate on localhost"
+ echo " mvn [folder] compile folder with maven with parameter -DskipTests"
+ echo " prepare [nodlux] to install and prepare a karaf. tar version expected in Downloads."
+ echo " untar to extract karaf."
+ echo " test do some testing"
+ echo " start start karaf"
+ echo " status display karaf status"
+ echo " stop stop and wait karaf"
+ echo " restart stop and start karaf"
+ echo " repoclean clean the repositories"
+ echo " v get Versions"
+ ;;
+esac
+fi
+
+unset install_err
+