class common::location {
$address = extlookup("address")
$aptproxy = extlookup("aptproxy")
$citystate = extlookup("citystate")
$nameservers = extlookup("nameservers")
$nodenets = extlookup("nodenets")
$nscaserver = extlookup("nscaserver")
$puppetserver = extlookup("puppetserver")
$trustednets = extlookup("trustednets")
}

class nsca::client {
package {
"libmcrypt4": ensure => "present";
"nagios-plugins": ensure => "present";
}

cron {
"check_psv_cronjob":
command => "/usr/lib/nagios/plugins/check_psv",
environment => "MAILTO=''",
minute => "*/3",
require => File["check_psv"],
user => "root",
}

file {
"check_psv":
content => template("nsca/check_psv.erb"),
group => "root",
ensure => "present",
mode => "750",
owner => "root",
path => "/usr/lib/nagios/plugins/check_psv",
require => [ Class["common::location"], File["send_nsca"], Package["libmcrypt4"], Package["nagios-plugins"] ];
"send_nsca":
ensure => "present",
group => "root",
mode => "750",
owner => "root",
path => "/usr/lib/nagios/plugins/send_nsca",
require => [ File["/etc/send_nsca.cfg"], Package["libmcrypt4"], Package["nagios-plugins"] ],
source => "puppet://$server/nsca/send_nsca.$lsbdistcodename.$architecture";
"/etc/send_nsca.cfg":
ensure => "present",
group => "root",
mode => "640",
owner => "root",
source => "puppet://$server/nsca/send_nsca.cfg";
}
}