aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--SiteSummary.pm43
-rw-r--r--debian/changelog10
-rwxr-xr-xsitesummary-nodes50
3 files changed, 86 insertions, 17 deletions
diff --git a/SiteSummary.pm b/SiteSummary.pm
index f710e15..fec7b09 100644
--- a/SiteSummary.pm
+++ b/SiteSummary.pm
@@ -12,9 +12,10 @@ our @EXPORT = qw(
get_filepath_current
get_site
get_sitegroup
+ get_hostname
get_linux_kernel_ver
- get_debian_edu_profile
- get_debian_edu_ver
+ get_debian_edu_profile
+ get_debian_edu_ver
);
my $pwd = "/var/lib/sitesummary/entries"; # Path to the entries
@@ -65,6 +66,14 @@ sub get_sitegroup {
}
#
+# Return the hostname string
+#
+sub get_hostname {
+ my $hostid = shift;
+ return get_file_string($hostid, "/system/hostname");
+}
+
+#
# Return Linux kernel version for the machines using Linux.
#
sub get_linux_kernel_ver {
@@ -77,7 +86,7 @@ sub get_linux_kernel_ver {
s/\#.+$//;
next if (/^\s*$/);
my @f = (split(/\s+/, $_));
- $kver = $f[1] if ("Linux" eq $f[0]);
+ $kver = $f[1] if ("Linux" eq $f[0]);
}
close(FILE);
return $kver;
@@ -90,16 +99,16 @@ sub get_debian_edu_profile {
my $hostid = shift;
my $path = get_filepath_current($hostid, $debian_edu_config);
if ( ! -e $path ) {
- return undef;
+ return undef;
}
if (open (FILE, $path)) {
- while (<FILE>) {
- chomp;
+ while (<FILE>) {
+ chomp;
s/\#.+$//;
- next if not (/PROFILE/);
- s/^PROFILE=//;
- return $_;
- }
+ next if not (/PROFILE/);
+ s/^PROFILE=//;
+ return $_;
+ }
}
close(FILE);
}
@@ -108,16 +117,16 @@ sub get_debian_edu_ver {
my $hostid = shift;
my $path = get_filepath_current($hostid, $debian_edu_config);
if ( ! -e $path ) {
- return undef;
+ return undef;
}
if (open (FILE, $path)) {
- while (<FILE>) {
- chomp;
+ while (<FILE>) {
+ chomp;
s/\#.+$//;
- next if not (/VERSION/);
- s/^VERSION=//;
- return $_;
- }
+ next if not (/VERSION/);
+ s/^VERSION=//;
+ return $_;
+ }
}
}
diff --git a/debian/changelog b/debian/changelog
index 35708c7..4ac2b90 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+sitesummary (0.0.25) UNRELEASED; urgency=low
+
+ [ Petter Reinholdtsen ]
+ * New perl function get_hostname() available from the SiteSummary
+ perl module.
+ * Add script sitesummary-nodes to list all reporting nodes. Use -m
+ to list them in the format expected in /etc/munin/munin.conf.
+
+ -- Petter Reinholdtsen <pere@debian.org> Fri, 18 May 2007 09:24:23 +0200
+
sitesummary (0.0.24) unstable; urgency=low
[ Bart Cornelis (cobaco) ]
diff --git a/sitesummary-nodes b/sitesummary-nodes
new file mode 100755
index 0000000..1c3b0df
--- /dev/null
+++ b/sitesummary-nodes
@@ -0,0 +1,50 @@
+#!/usr/bin/perl
+#
+# Generate list of nodes to load from /etc/munin/munin.conf to check
+# all the machines reporting to sitesummary.
+
+use strict;
+use warnings;
+
+use SiteSummary;
+use Getopt::Std;
+
+my %opts;
+getopts("m", \%opts);
+
+my %hostnames;
+
+for_all_hosts(\&handle_host);
+
+if ($opts{'m'}) {
+ print_munin_list();
+} else {
+ print_list();
+}
+
+sub handle_host {
+ my $hostid = shift;
+ my $hostname = get_hostname($hostid);
+ $hostnames{$hostname} = 1;
+}
+
+sub print_list {
+ for my $hostname (sort keys %hostnames) {
+ print "$hostname\n";
+ }
+}
+
+sub print_munin_list {
+ for my $hostname (sort keys %hostnames) {
+
+ # Using hostname as address, to avoid hardcoding IP addresses in
+ # the file. Might be an idea to fetch the IP address from
+ # system/ifconfig-a
+ print <<EOF;
+[$hostname]
+ address $hostname
+ use_node_name yes
+
+EOF
+ }
+}