#!/bin/sh
# -*- sh -*-

: << EOF
=head1 NAME

lvm_ - Wildcard plugin for monitoring disk usage on LVM. Each Volume Group is graphed separately.

=head1 CONFIGURATION

This plugin needs to run as the root user in order to have permission to run lvs and vgs

  [lvm_*]
    user root

=head1 AUTHOR

=over 4

=item * PatrickDK (Original Author)

=item * Niall Donegan

=back

=head1 LICENSE

Unknown license


=head1 MAGIC MARKERS

=begin comment

These magic markers are used by munin-node-configure when installing
munin-node.

=end comment

  #%# family=auto
  #%# capabilities=autoconf suggest

=cut

EOF

. $MUNIN_LIBDIR/plugins/plugin.sh


if [ "$1" = "autoconf" ]; then
    if ! command -v lvs >/dev/null; then
        echo "no (lvs not found)"
    elif ! command -v vgs >/dev/null; then
        echo "no (vgs not found)"
    else
        echo "yes"
    fi
    exit 0
fi

if [ "$1" = "suggest" ]; then
	vgs -o vg_name --noheadings | sed -e 's/\ *//'
	exit 0
fi


vg=`echo $0 | awk '{ sub(".*lvm_","",\$1); print \$1; }'`

clean_name() {
    echo "$(clean_fieldname "$1")"
}


if [ "$1" = "config" ]; then

        echo "graph_title Logical Volume Usage($vg)"
        echo 'graph_args --base 1024 -l 0'
        echo 'graph_category disk'
        echo 'graph_info This graph shows disk usage on the machine.'
        echo "free.label free"
        echo "free.draw AREA"
        lvs --units b --nosuffix --noheadings | grep "$vg" | while read i; do
                name=`clean_name $i`
                echo -n "$name.label "
                echo $i | awk '{ print $1 }'
                echo "$name.draw STACK"
        done
        exit 0
fi

i=`vgs --units b --nosuffix --noheadings | grep "$vg"`
echo -n "free.value "
echo $i | awk '{ print $7 }'

lvs --units b --nosuffix --noheadings | grep "$vg" | while read i; do
        name=`clean_name $i`
        echo -n "$name.value "
        echo $i | awk '{ print $4 }'
done
