Skip to content

Instantly share code, notes, and snippets.

@Duologic
Last active February 2, 2017 11:10
Show Gist options
  • Save Duologic/f88138a74b88f42a7871b03c3e1c91f1 to your computer and use it in GitHub Desktop.
Save Duologic/f88138a74b88f42a7871b03c3e1c91f1 to your computer and use it in GitHub Desktop.
#!/usr/bin/env sh
set -euo pipefail
IFS=$'\n\t'
INITIATE=$1
HOSTNAME=$2
IP=$3
# Resources used by VMs
DOMIDS=$(virsh -c qemu+ssh://$IP/system list | awk -F' ' '{ print $1 }' | grep -v 'Id\|-')
[ $INITIATE -eq 1 ] && touch used_resources.csv
[ $INITIATE -eq 1 ] && echo "host,guest,vcpu,mem" > used_resources.csv
for i in ${DOMIDS[@]}
do
virsh -c qemu+ssh://$IP/system dominfo $i | \
awk -F':' '{gsub(/^[ \t]+/, "", $2); print $2 }' | \
awk -v HOSTNAME="$HOSTNAME" 'BEGIN { RS = "" ; FS = "\n" }
{gsub(/ KiB/,"",$8); print HOSTNAME","$2","$6","$8/1024/1024 }' >> used_resources.csv
done
# Resources available on host
[ $INITIATE -eq 1 ] && touch available_resources.csv
[ $INITIATE -eq 1 ] && echo "host,vcpu,mem" > available_resources.csv
virsh -c qemu+ssh://$IP/system nodeinfo | \
awk -F':' '{gsub(/^[ \t]+/, "", $2); print $2 }' | \
awk -v HOSTNAME="$HOSTNAME" 'BEGIN { RS ="" ; FS = "\n" }
{gsub(/ KiB/,"", $8); print HOSTNAME","$2","$8/1024/1024 }' >> available_resources.csv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment