#!/usr/bin/perl -w
###########################################
use strict;
use RRDTool::OO;
use Getopt::Std;
use Pod::Usage;
use Nagios::Clientstatus;

my $N = "TEMPERATURE";

my $nc    = Nagios::Clientstatus->new(
    help_subref    => sub { pod2usage() },
    mandatory_args => [qw(
      crit warn dsname
    )],
);

my $rrd = RRDTool::OO->new(
    file => "/tmp/temperature.rrd" );

my $dsnames = $rrd->meta_data("dsnames");

$rrd->fetch_start(
  start => time() - 6*60,
  end   => time()
);

my $temp;

if(my($time, @values) =
                    $rrd->fetch_next()) {
  for(my $i=0; $i<@$dsnames; $i++) {
     if($dsnames->[$i] eq 
        $nc->get_given_arg("dsname")) {
         $temp = $values[$i];
         last;
     }
  }
}

my $status  = "ok";

if(! defined $temp) {
    $status = "unknown";
}
elsif($temp >= 
      $nc->get_given_arg("crit")) {
    $status = "critical";
}
elsif($temp >= 
      $nc->get_given_arg("warn")) {
    $status = "warning";
}

printf "$N %s - %s: %s\n", 
  uc($status),
  $nc->get_given_arg("dsname"),
  defined $temp ? 
    sprintf("%.1f", $temp) : 
    "NODATA";

exit $nc->exitvalue($status);
