diff options
Diffstat (limited to 'sdnr/wireless-transport/code-Carbon-SR1/odl')
-rwxr-xr-x | sdnr/wireless-transport/code-Carbon-SR1/odl | 925 |
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 + |