#!/bin/sh

get_running_netvms() {
    # Actually get running VMs with PCI devices attached
    RUNNING_VMS=`xl list | tail -n +3 | cut -f 1 -d " "`
    RUNNING_NETVMS=""
    for VM in $RUNNING_VMS; do
        if [ -n "`xl pci-list $VM|tail -n +2`" ]; then
            echo "$VM"
        fi
    done
}

suspend_net()
{
    for VM in `get_running_netvms`; do
        qvm-run -u root --pass-io $VM 'QUBESRPC qubes.SuspendPre dom0'
    done
    # Ignore exit status from netvm...
    return 0
}

resume_net()
{
    for VM in `get_running_netvms`; do
        qvm-run -u root --pass-io $VM 'QUBESRPC qubes.SuspendPost dom0'
    done
    # Ignore exit status from netvm...
    return 0
}

 
case "$1" in
        resume) resume_net ;;
        suspend) suspend_net ;;
        *) exit 0 ;;
esac
