From b1d582fbc5d72229be60160fda13f9e92e6f50ca Mon Sep 17 00:00:00 2001 From: Tobi Oetiker Date: Mon, 9 Jul 2007 20:27:48 +0000 Subject: initial master slave modules --- lib/Smokeping/Master.pm | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/Smokeping/Slave.pm | 86 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 lib/Smokeping/Master.pm create mode 100644 lib/Smokeping/Slave.pm 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 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 Etobi@oetiker.chE + +=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 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, ">\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 Etobi@oetiker.chE + +=cut -- cgit v1.2.3-24-g4f1b