# -*- sh -*-
## vim:ft=zsh:foldmethod=marker

local HOST VM

if [ $# -lt 2 ]; then
    echo "Usage: $0 HOST VM"
    return
fi
HOST=$1
VM=$2

LPORT=$(( $RANDOM % 10000 + 5900))
if [ -z "$VNCDISPLAY" ]; then
    VNCDISPLAY=$(ssh $HOST "gnt-instance list --no-headers -o name,network_port | awk '/^$VM/ { print \$2 - 5900 ; exit 0 } END { exit 1; }' || virsh -c qemu:///system vncdisplay $VM | sed 's/.*://'")
    VMHOST=$(ssh $HOST "gnt-instance list --no-headers -o name,pnode | awk '/^$VM/ { print \$2 ; exit 0 } END { exit 1; }'")
    if [ -z "$VMHOST" ]; then
	VMHOST="$HOST" 
    fi
fi

ssh -N -f -L ${LPORT}:localhost:$(( $VNCDISPLAY + 5900 )) $USER@$VMHOST
gvncviewer localhost:$(( $LPORT - 5900 ))
