https://gist.github.com/scollier/890159751cf04cee67c815d29284dc2b
Script here:
#!/bin/bash
# Set the variables for date, and argument
DATE=$(date +"%m_%d_%Y-%M")
INPUT="$1"
# Grab the password for RHEV-M, don't report it to std out.
echo
echo "Please provide the RHEVM password, password is not echoed out to stdout, enter password and press Enter."
read -p "Enter Password:" -s RHEVM_PASSWORD
echo
# Grab the xml report of all the VMs
curl -s -X GET -H "Accept: application/xml" -u "admin@internal:$RHEVM_PASSWORD" --cacert rhevm.cer https://your.domain.here.com/api/vms > vm-output-$DATE.xml
# Parse the xml output and look for the name of the VM, and the stop time of the VM, put it in a separate file.
xpath vm-output-$DATE.xml '/vms/vm/name | /vms/vm/stop_time' > vm-output-$DATE-formatted.xml 2> /dev/null
# Clean up the file here. joherr helped out with this. Place line breaks after each </stop_time> xml tag, and format it so it's readable in two columns.
sed -e 's/<\/name><stop_time>/ /g' \
-e 's/<\/stop_time><name>/\n/g' \
-e 's/<name>//g' \
-e 's/<\/stop_time>//g' vm-output-$DATE-formatted.xml | \
sort -k 2 | \
awk 'BEGIN { format = "%-60s %s\n"
printf format, "VMs", "Date Stopped"
printf format, "----------", "----------" }
{ printf format, $1, $2 }' > rhevm-vms-$DATE
# By default, output the number of VMs that are listed.
echo
echo "There are $(cat rhevm-vms-$DATE | wc -l) VMs now."
echo
# If it's run with a -p, ouput the entire list and sort by oldest first.
case $INPUT in
-p|--print)
cat rhevm-vms-$DATE
shift # past argument
;;
esac
shift # past argument or value
VMs Date Stopped
---------- ----------
dh-ose-node2 2014-10-23T16:42:27.045-05:00
ospceph-sft 2014-11-10T21:01:23.524-06:00
dh-ose-broker 2014-11-11T16:32:59.985-06:00
ks-sft-test1 2014-11-13T21:00:02.828-06:00
dh-ose-node1 2014-11-24T19:02:53.995-06:00
collier-atomic-pxe 2014-12-18T15:01:45.325-06:00
sat6-pxe-rhel7 2015-03-05T10:54:13.907-06:00
sat6-pxe-rhel6 2015-03-05T10:54:14.401-06:00
rhel-atomic-7.1-GA-mjenner 2015-03-05T10:54:14.489-06:00
workstation-goern-1 2015-04-16T07:59:47.704-05:00
RHEL-Atomic-Test-Sat6 2015-05-29T11:42:58.093-05:00
hk-nfv 2015-09-29T16:36:00.975-05:00
ks-back 2015-09-29T16:36:01.851-05:00
rhel-atomic-mjenner 2015-09-29T16:36:02.026-05:00
dellaccess 2015-09-29T16:36:02.785-05:00
collier-atomic-pxe-1 2015-09-29T16:36:03.663-05:00
....<snip>....
Now I have a decent idea of what VMs are out there, which ones haven't been powered on for months, and are candidates for deletion. Hope this helps.