[Ovirt-devel] [PATCH node-image] Fixed how autotest would exit in the middle of a run.

Mike Burns mburns at redhat.com
Wed Apr 15 19:18:17 UTC 2009


Darryl L. Pierce wrote:
> The ultimate cause was "virsh ttyconsole" setting the return code to 1
> regardless of whether it ran successfully or not. So, for the time
> being, fail-on-error has been disabled in autotest.
>
> Signed-off-by: Darryl L. Pierce <dpierce at redhat.com>
> ---
>  autotest.sh |   29 ++++++++++++++---------------
>  1 files changed, 14 insertions(+), 15 deletions(-)
>
> diff --git a/autotest.sh b/autotest.sh
> index 0dbe934..6cba9fa 100755
> --- a/autotest.sh
> +++ b/autotest.sh
> @@ -45,14 +45,15 @@ warn() { printf '%s: %s\n' "$ME" "$*" >&2; }
>  die() {  warn "$*"; exit 1; }
>  
>  # trap '__st=$?; stop_log; exit $__st' 0
> -trap '__st=$?; cleanup; exit $__st' 0
> -trap 'cleanup; exit $?' 1 2 13 15
> +trap '__st=$?; log "Exiting normally."; cleanup; exit $__st' 0
> +trap '__st=$?; log "Dying a horrible death."; cleanup; exit $__st' 1 2 13 15
>  
>  test -n "$1" && RESULTS=$1 || RESULTS=autotest.log
>  
>  echo "Running oVirt node image Autotest"
>  
> -set -e
> +# BZ#495954 needs to be fixed to uncomment this
> +# set -e
>  # set -v
>  
>  OVIRT_NODE_IMAGE_ISO=$PWD/ovirt-node-image.iso
> @@ -68,7 +69,7 @@ log () {
>  }
>  
>  cleanup () {
> -    destroy_node
> +    log "CLEANING UP"
>      stop_dnsmasq
>      destroy_test_iface
>  }
> @@ -173,8 +174,6 @@ define_node () {
>  
>      # now define the vm
>      sudo virsh define $filename
> -    NODENAME=$nodename
> -    log "Defined VM: name=${NODENAME}"
>  
>      if [ $? != 0 ]; then die "Unable to define virtual machine: $nodename"; fi
>  }
> @@ -210,10 +209,6 @@ start_node () {
>  destroy_node () {
>      local nodename=$1
>  
> -    if [ -z "${nodename}" ]; then
> -	nodename=$NODENAME
> -    fi
> -
>      if [ -n "${nodename}" ]; then
>  	log "Destroying VM: ${nodename}"
>  	check=$(sudo virsh list --all)
> @@ -279,7 +274,7 @@ pxeboot_node_vm () {
>      create_test_iface $bridge
>      define_node $xmlfile $nodename $memsize "$diskfile" "" $bridge "local bootdev='network'; local noapic='yes'"
>      get_mac_address $nodename "node_mac_address"
> -    start_dnsmasq $bridge $tftproot $node_mac_address
> +    start_dnsmasq $bridge $tftproot $node_mac_address $nodename
>      start_node $nodename
>      if [ -n "$verify_method" ]; then
>  	eval $verify_method
> @@ -294,7 +289,7 @@ pxeboot_node_vm () {
>  	log "Test ended in failure"
>      fi
>  
> -    test $return_code == 0 && return 0 || exit 1
> +    test $return_code == 0 && return 0 || return 1
>  }
>  
>  # Launches the node as a virtual machine with a CDROM.
> @@ -389,10 +384,12 @@ destroy_test_iface () {
>  # $1 - the iface on which dnsmasq works
>  # $2 - the root for tftp files
>  # $3 - the mac address for the node (ignored if blank)
> +# $4 - the nodename
>  start_dnsmasq () {
>      local iface=$1
>      local tftproot=$2
>      local macaddress=$3
> +    local nodename=$4
>      local pidfile=$2/dnsmasq.pid
>  
>      stop_dnsmasq
> @@ -405,6 +402,7 @@ start_dnsmasq () {
>                                          --dhcp-boot=tftpboot/pxelinux.0
>                                          --enable-tftp
>                                          --tftp-root=${tftproot}
> +                                        --log-facility=/tmp/dnsmasq-${nodename}.log
>                                          --log-queries
>                                          --log-dhcp
>                                          --pid-file=${pidfile}"
> @@ -414,10 +412,12 @@ start_dnsmasq () {
>      # start dnsmasq
>      eval $dns_startup
>      DNSMASQ_PID=$(sudo cat $pidfile)
> +    log "dnsmasq start: PID=${DNSMASQ_PID}"
>  }
>  
>  # Kills the running instance of dnsmasq.
>  stop_dnsmasq () {
> +    log "Killing dnsmasq: DNSMASQ_PID=${DNSMASQ_PID}"
>      if [ -n "$DNSMASQ_PID" -a "$DNSMASQ_PID" != "0" ]; then
>  	local check=$(ps -ef | awk "/${DNSMASQ_PID}/"' { if ($2 ~ '"${DNSMASQ_PID}"') print $2 }')
>  
> @@ -455,7 +455,7 @@ verify_pxeboot_stateless_standalone () {
>      local port=$(sudo virsh ttyconsole $nodename)
>      local logfile=$2
>  
> -    log "Verifying the node is booted correctly"
> +    log "Verifying ${nodename} is booted correctly"
>      local script='
>  log_file -noappend '"${logfile}"'
>  set timeout 60
> @@ -507,7 +507,7 @@ verify_pxeboot_stateful_standalone () {
>  
>      # leverage the existing stateless test
>      verify_pxeboot_stateless_standalone $nodename
> -    log "Verifying the node is booted correctly"
> +    log "Verifying ${nodename} is booted correctly"
>      local script='
>  log_file -noappend '"${logfile}"'
>  set timeout 180
> @@ -554,7 +554,6 @@ test_cdrom_stateless_standalone () {
>  # automated testing entry points
>  {
>      IFACE_NAME=testbr$$
> -    NODENAME=
>      NETWORK=192.168.$(echo "scale=0; print $$ % 255" | bc -l)
>      NODE_ADDRESS=$NETWORK.100
>      DNSMASQ_PID=0
>   
Applied and autobuild run.  No issues found.

ACK




More information about the ovirt-devel mailing list