##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
## Fonction de support pour virsh
##@cooked nocomments
uprovide virsh

function virsh_filter() {
    # filtrer une sortie liste de virsh. En pratique, ne prendre que les lignes
    # non vides à partir de la ligne "----*"
    awk '
      BEGIN { dump = 0 }
      /^---/ { dump = 1; next }
      dump && $0 != "" { print }
    '
}

function virsh_list() {
    virsh list "$@" | virsh_filter
}

function virsh_pool_list() {
    virsh pool-list "$@" | virsh_filter
}

function guess_vm_type() {
    # Afficher hn, kvm, vmware, virtualbox ou openvz suivant que l'on est
    # *probablement* respectivement sur une machine physique, une machine
    # virtuelle kvm, vmware, virtualbox, openvz
    # XXX pour le moment, seuls openvz, kvm et hn sont supportés
    local ctid="$(grep envID /proc/self/status | awk '{print $2}')"
    if [ -n "$ctid" -a "$ctid" != "0" ]; then
        echo openvz
        return 0
    fi
    local cpuid="$(grep 'model name' /proc/cpuinfo)"
    if quietgrep QEMU <<<"$cpuid"; then
        echo kvm
    else
        echo hn
    fi
}