#!/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 " 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 " 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