diff options
author | Tobi Oetiker <tobi@oetiker.ch> | 2007-07-09 22:27:48 +0200 |
---|---|---|
committer | Tobi Oetiker <tobi@oetiker.ch> | 2007-07-09 22:27:48 +0200 |
commit | b1d582fbc5d72229be60160fda13f9e92e6f50ca (patch) | |
tree | eddcebcf648e68d8c004ac97d81fa2f66379b9a2 | |
parent | 700759a76d39dc1cfd729414508f542fd37f66ed (diff) | |
download | smokeping-b1d582fbc5d72229be60160fda13f9e92e6f50ca.tar.gz smokeping-b1d582fbc5d72229be60160fda13f9e92e6f50ca.tar.xz |
initial master slave modules
-rw-r--r-- | lib/Smokeping/Master.pm | 85 | ||||
-rw-r--r-- | lib/Smokeping/Slave.pm | 86 |
2 files changed, 171 insertions, 0 deletions
diff --git a/lib/Smokeping/Master.pm b/lib/Smokeping/Master.pm new file mode 100644 index 0000000..d6d4caa --- /dev/null +++ b/lib/Smokeping/Master.pm @@ -0,0 +1,85 @@ +# -*- perl -*- +package Smokeping::Master; +use HTTP::Request; + + +=head1 NAME + +Smokeping::Master - Master Functionality for Smokeping + +=head1 OVERVIEW + +This module handles all special functionality required by smokeping running +in master mode. + +=head2 IMPLEMENTATION + +=head3 slave_cfg=extract_config(cfg,slave) + +Extract the relevant configuration information for the selected slave. The +configuration will only contain the information that is relevant for the +slave. Any parameters overwritten in the B<Slaves> section of the configuration +file will be patched for the slave. + +=cut + +sub extract_config($$){ + my $cfg = shift; + my $slave = shift; +} + +=head3 poll_slave(cfg,slave) + +Get latest measurement results from the slave + +=cut + +sub poll_slave($$){ + my $cfg = shift; + my $slave = shift; +} + + +=head3 push_config(cfg,slave) + +Upload new config information to the slave if the poll result shows that it needs an update. + +=cut + +sub push_config ($$){ + my $cfg = shift; + my $slave = shift; +} + +1; + +__END__ + +=head1 COPYRIGHT + +Copyright 2007 by Tobias Oetiker + +=head1 LICENSE + +This program is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied +warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the GNU General Public License for more +details. + +You should have received a copy of the GNU General Public +License along with this program; if not, write to the Free +Software Foundation, Inc., 675 Mass Ave, Cambridge, MA +02139, USA. + +=head1 AUTHOR + +Tobias Oetiker E<lt>tobi@oetiker.chE<gt> + +=cut diff --git a/lib/Smokeping/Slave.pm b/lib/Smokeping/Slave.pm new file mode 100644 index 0000000..42c71c5 --- /dev/null +++ b/lib/Smokeping/Slave.pm @@ -0,0 +1,86 @@ +# -*- perl -*- +package Smokeping::Slave; +use HTTP::Daemon; +use HTTP::Status; + +=head1 NAME + +Smokeping::Slave - Slave Functionality for Smokeping + +=head1 OVERVIEW + +This module handles all special functionality required by smokeping running +in slave mode. + +=head2 IMPLEMENTATION + +=head3 slave_cfg=extract_config(cfg,slave) + +Extract the relevant configuration information for the selected slave. The +configuration will only contain the information that is relevant for the +slave. Any parameters overwritten in the B<Slaves> section of the configuration +file will be patched for the slave. + +=cut + +sub extract_config($$){ + my $cfg = shift; + my $slave = shift; +} + +=head3 expect_request(cfg) + +=cut + +sub expect_request($){ + my $cfg = shift; + my $daemon = HTTP::Daemon->new or die "Creating HTTP daemon"; + print "Please contact me at: <URL:", $d->url, ">\n"; + while (my $c = $d->accept) { + while (my $r = $c->get_request) { + if ($r->method eq 'GET' and $r->url->path eq "/xyzzy") { + # remember, this is *not* recommended practice :-) + $c->send_file_response("/etc/passwd"); + } + else { + $c->send_error(RC_FORBIDDEN) + } + } + $c->close; + undef($c); + } + +} + +1; + +__END__ + +=head1 COPYRIGHT + +Copyright 2007 by Tobias Oetiker + +=head1 LICENSE + +This program is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied +warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the GNU General Public License for more +details. + +You should have received a copy of the GNU General Public +License along with this program; if not, write to the Free +Software Foundation, Inc., 675 Mass Ave, Cambridge, MA +02139, USA. + +=head1 AUTHOR + +Tobias Oetiker E<lt>tobi@oetiker.chE<gt> + +=cut |