mirror of
				https://github.com/opennetworkinglab/onos.git
				synced 2025-11-04 02:01:11 +01:00 
			
		
		
		
	- Add 'olo' command to filter log of remote ONOS instance - Modify 'onos-log' such that it can run on OSX Change-Id: Iddab996564af01672c14caca725397c574267bad
		
			
				
	
	
		
			174 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/bash
 | 
						|
# ONOS developer BASH profile conveniences
 | 
						|
# Simply include in your own .bash_aliases or .bash_profile
 | 
						|
 | 
						|
# Root of the ONOS source tree
 | 
						|
export ONOS_ROOT=${ONOS_ROOT:-~/onos}
 | 
						|
 | 
						|
# Setup some environmental context for developers
 | 
						|
if [ -z "${JAVA_HOME}" ]; then
 | 
						|
    if [ -x /usr/libexec/java_home ]; then
 | 
						|
        export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
 | 
						|
    elif [ -d /usr/lib/jvm/java-8-oracle ]; then
 | 
						|
        export JAVA_HOME="/usr/lib/jvm/java-8-oracle"
 | 
						|
    elif [ -d /usr/lib/jvm/java-7-openjdk-amd64 ]; then
 | 
						|
        export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
export MAVEN=${MAVEN:-~/Applications/apache-maven-3.3.1}
 | 
						|
 | 
						|
export KARAF_VERSION=${KARAF_VERSION:-3.0.3}
 | 
						|
export KARAF_ROOT=${KARAF_ROOT:-~/Applications/apache-karaf-$KARAF_VERSION}
 | 
						|
export KARAF_LOG=$KARAF_ROOT/data/log/karaf.log
 | 
						|
 | 
						|
# Setup a path
 | 
						|
export PATH="$PATH:$ONOS_ROOT/tools/dev/bin:$ONOS_ROOT/tools/test/bin"
 | 
						|
export PATH="$PATH:$ONOS_ROOT/tools/build"
 | 
						|
export PATH="$PATH:$MAVEN/bin:$KARAF_ROOT/bin"
 | 
						|
 | 
						|
# Convenience utility to warp to various ONOS source projects
 | 
						|
# e.g. 'o api', 'o dev', 'o'
 | 
						|
function o {
 | 
						|
    cd $(find $ONOS_ROOT/ -type d | egrep -v '\.git|target|gen-src' | \
 | 
						|
        egrep "${1:-$ONOS_ROOT}" | egrep -v "$ONOS_ROOT/.+/src/" | head -n 1)
 | 
						|
}
 | 
						|
 | 
						|
# Short-hand for 'mvn clean install' for us lazy folk
 | 
						|
alias mci='mvn clean install'
 | 
						|
alias mcis='mvn clean install -DskipTests -Dcheckstyle.skip -U -T 1C'
 | 
						|
alias mis='mvn install -DskipTests -Dcheckstyle.skip -U -T 1C'
 | 
						|
 | 
						|
# Short-hand for ONOS build, package and test.
 | 
						|
alias ob='onos-build'
 | 
						|
alias obi='onos-build -Dmaven.test.failure.ignore=true'
 | 
						|
alias obs='onos-build-selective'
 | 
						|
alias obd='onos-build-docs'
 | 
						|
alias op='onos-package'
 | 
						|
alias ok='onos-karaf'
 | 
						|
alias ot='onos-test'
 | 
						|
alias ol='onos-log'
 | 
						|
alias ow='onos-watch'
 | 
						|
alias oi='setPrimaryInstance'
 | 
						|
# alias go='ob && ot && onos -w'
 | 
						|
alias pub='onos-push-update-bundle'
 | 
						|
 | 
						|
# Short-hand for tailing and searching the ONOS (karaf) log
 | 
						|
alias tl='$ONOS_ROOT/tools/dev/bin/onos-local-log'
 | 
						|
alias ll='less $KARAF_LOG'
 | 
						|
alias gl='grep $KARAF_LOG --colour=auto -E -e '
 | 
						|
 | 
						|
function filterLocalLog {
 | 
						|
    tl | grep --colour=always -E -e "${1-org.onlab|org.onosproject}"
 | 
						|
}
 | 
						|
alias tlo='filterLocalLog'
 | 
						|
 | 
						|
function filterLog {
 | 
						|
    ol | grep --colour=always -E -e "${1-org.onlab|org.onosproject}"
 | 
						|
}
 | 
						|
alias olo='filterLog'
 | 
						|
 | 
						|
# Pretty-print JSON output
 | 
						|
alias pp='python -m json.tool'
 | 
						|
 | 
						|
# Short-hand to launch API docs and sample topology viewer GUI
 | 
						|
alias docs='open $ONOS_ROOT/docs/target/site/apidocs/index.html'
 | 
						|
alias gui='onos-gui'
 | 
						|
 | 
						|
 | 
						|
# Test related conveniences
 | 
						|
 | 
						|
# SSH to a specified ONOS instance
 | 
						|
alias sshctl='onos-ssh'
 | 
						|
alias sshnet='onos-ssh $OCN'
 | 
						|
 | 
						|
 | 
						|
# Sets the primary instance to the specified instance number.
 | 
						|
function setPrimaryInstance {
 | 
						|
    export OCI=$(env | egrep "OC[0-9]+" | sort | egrep OC${1:-1} | cut -d= -f2)
 | 
						|
    echo $OCI
 | 
						|
}
 | 
						|
 | 
						|
# Applies the settings in the specified cell file or lists current cell definition
 | 
						|
# if no cell file is given.
 | 
						|
function cell {
 | 
						|
    if [ -n "$1" ]; then
 | 
						|
        [ ! -f $ONOS_ROOT/tools/test/cells/$1 ] && \
 | 
						|
            echo "No such cell: $1" >&2 && return 1
 | 
						|
        unset ONOS_CELL ONOS_NIC ONOS_APPS ONOS_BOOT_FEATURES ONOS_USER ONOS_GROUP
 | 
						|
        unset OCI OCN OCT
 | 
						|
        unset ONOS_FEATURES # deprecated
 | 
						|
        unset $(env | sed -n 's:\(^OC[0-9]\{1,\}\)=.*:\1 :g p')
 | 
						|
        export ONOS_CELL=$1
 | 
						|
        . $ONOS_ROOT/tools/test/cells/$1
 | 
						|
        setPrimaryInstance 1 >/dev/null
 | 
						|
        cell
 | 
						|
    else
 | 
						|
        env | egrep "ONOS_CELL"
 | 
						|
        env | egrep "OCI"
 | 
						|
        env | egrep "OC[0-9]+" | sort
 | 
						|
        env | egrep "OC[NT]"
 | 
						|
        env | egrep "ONOS_" | egrep -v 'ONOS_ROOT|ONOS_CELL'
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
cell local >/dev/null  # Default cell is the local VMs
 | 
						|
 | 
						|
# Lists available cells
 | 
						|
function cells {
 | 
						|
    for cell in $(ls -1 $ONOS_ROOT/tools/test/cells); do
 | 
						|
        printf "%-16s  %s\n" \
 | 
						|
            "$([ $cell = $ONOS_CELL ] && echo $cell '*' || echo $cell)" \
 | 
						|
            "$(grep '^#' $ONOS_ROOT/tools/test/cells/$cell | head -n 1)"
 | 
						|
    done
 | 
						|
}
 | 
						|
 | 
						|
# Miscellaneous
 | 
						|
function spy {
 | 
						|
    ps -ef | egrep "$@" | grep -v egrep
 | 
						|
}
 | 
						|
 | 
						|
function nuke {
 | 
						|
    spy "$@" | cut -c7-11 | xargs kill
 | 
						|
}
 | 
						|
 | 
						|
# Edit a cell file by providing a cell name. Opens the cell file in $EDITOR.
 | 
						|
function vicell() {
 | 
						|
  local apply=false
 | 
						|
  local create=false
 | 
						|
  local cdf=""
 | 
						|
  local cpath="${ONOS_ROOT}/tools/test/cells/"
 | 
						|
 | 
						|
  if [ -z "$1" ] || [ "$1" = "-h" ] ; then
 | 
						|
    printf "usage: vicell [file] [options]\n\noptions:\n"
 | 
						|
    printf "\t-a: apply the cell after editing\n"
 | 
						|
    printf "\t-e: [editor] set EDITOR to [editor] (default *vi*)\n"
 | 
						|
    printf "\t-c: create cell file if none exist\n\n"
 | 
						|
    return 1
 | 
						|
  fi
 | 
						|
 | 
						|
  while [ $# -gt 0 ]; do
 | 
						|
    case "$1" in
 | 
						|
      -a) apply=true ;;
 | 
						|
      -e) EDITOR=$2; shift ;;
 | 
						|
      -c) create=true ;;
 | 
						|
      *) cdf="$1" ;;
 | 
						|
    esac
 | 
						|
    shift
 | 
						|
  done
 | 
						|
 | 
						|
  if [ ! -e "${cpath}${cdf}" ] && [ "$create" = "false" ]; then
 | 
						|
       printf "${cdf} : no such cell\n" && return 1
 | 
						|
  fi
 | 
						|
 | 
						|
  if [ -z "${EDITOR}" ] || [ -x "$(which ${EDITOR})" ]; then
 | 
						|
    unset EDITOR && vi ${cpath}${cdf}
 | 
						|
  else
 | 
						|
    $EDITOR ${cpath}${cdf}
 | 
						|
  fi
 | 
						|
  ($apply) && cell ${cdf}
 | 
						|
}
 | 
						|
 | 
						|
# autocomplete for certain utilities
 | 
						|
. ${ONOS_ROOT}/tools/test/bin/ogroup-opts
 |