| perfSONAR_PS-Services-Daemon documentation | Contained in the perfSONAR_PS-Services-Daemon distribution. |
perfSONAR_PS::Services::Echo - A simple module that implements perfSONAR echo functionality.
This module aims to provide a request handler that is compatible with the perfSONAR echo specification.
perfSONAR_PS::Services::Base, perfSONAR_PS::Common, perfSONAR_PS::Messages, perfSONAR_PS::RequestHandler
To join the 'perfSONAR-PS' mailing list, please visit:
https://mail.internet2.edu/wws/info/i2-perfsonar
The perfSONAR-PS subversion repository is located at:
https://svn.internet2.edu/svn/perfSONAR-PS
Questions and comments can be directed to the author, or the mailing list.
$Id:$
Aaron Brown, aaron@internet2.edu
You should have received a copy of the Internet2 Intellectual Property Framework along with this software. If not, see <http://www.internet2.edu/membership/ip.html>
Copyright (c) 2004-2007, Internet2 and the University of Delaware
All rights reserved.
| perfSONAR_PS-Services-Daemon documentation | Contained in the perfSONAR_PS-Services-Daemon distribution. |
package perfSONAR_PS::Services::Echo;
use base 'perfSONAR_PS::Services::Base'; use warnings; use strict; use Log::Log4perl qw(get_logger); use Params::Validate qw(:all); use perfSONAR_PS::Common; use perfSONAR_PS::Messages; use perfSONAR_PS::ParameterValidation; our $VERSION = 0.09;
sub init { my ($self, $handler) = @_; my $logger = get_logger("perfSONAR_PS::Services::Echo"); $handler->registerEventHandler("EchoRequest", "http://schemas.perfsonar.net/tools/admin/echo/2.0", $self); $handler->registerEventHandler("EchoRequest", "http://schemas.perfsonar.net/tools/admin/echo/ls/2.0", $self); $handler->registerEventHandler("EchoRequest", "http://schemas.perfsonar.net/tools/admin/echo/ma/2.0", $self); $handler->registerEventHandler_Regex("EchoRequest", "^echo.*", $self); $handler->registerEventEquivalence("EchoRequest", "echo.ma", "http://schemas.perfsonar.net/tools/admin/echo/2.0"); $handler->registerEventEquivalence("EchoRequest", "echo.ma", "http://schemas.perfsonar.net/tools/admin/echo/ma/2.0"); $handler->registerEventEquivalence("EchoRequest", "echo.ma", "http://schemas.perfsonar.net/tools/admin/echo/ls/2.0"); return 0; }
sub needLS { my ($self) = @_; return 0; }
sub registerLS { my ($self, $ret_sleep_time) = @_; my $logger = get_logger("perfSONAR_PS::Services::Echo"); $logger->warn("Can't register an echo handler with an LS"); return -1; }
sub handleEvent { my ($self, @args) = @_; my $parameters = validateParams(@args, { output => 1, messageId => 1, messageType => 1, messageParameters => 1, eventType => 1, subject => 1, filterChain => 1, data => 1, rawRequest => 1, doOutputMetadata => 1, }); my $output = $parameters->{"output"}; my $messageId = $parameters->{"messageId"}; my $messageType = $parameters->{"messageType"}; my $message_parameters = $parameters->{"messageParameters"}; my $eventType = $parameters->{"eventType"}; my $d = $parameters->{"data"}; my $raw_request = $parameters->{"rawRequest"}; my @subjects = @{ $parameters->{'subject'} }; my $md = $subjects[0]; my $mdID = "metadata.".genuid(); my $msg = "The echo request has passed."; getResultCodeMetadata($output, $mdID, $md->getAttribute("id"), "success.echo"); getResultCodeData($output, "data.".genuid(), $mdID, $msg, 1); return; } 1; __END__
# vim: expandtab shiftwidth=4 tabstop=4