Bayonne-Server
view release on metacpan or search on metacpan
lib/Bayonne/Server.pm view on Meta::CPAN
package Bayonne::Server;
use 5.008004;
use strict;
use warnings;
require Exporter;
use AutoLoader qw(AUTOLOAD);
use LWP::UserAgent;
use XML::Simple;
use URI::Escape;
our @ISA = qw(Exporter);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.
# This allows declaration use Bayonne::Libexec ':all';
# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
# will save memory.
our %EXPORT_TAGS = ( 'all' => [ qw(
) ] );
our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
our @EXPORT = qw(
);
our $VERSION = '0.01';
sub new {
my $invocant = shift;
my ($class) = ref($invocant) || $invocant;
my $self = {
hostid => undef,
userid => "server",
secret => undef,
@_,
};
$self->{_session} = LWP::UserAgent->new(env_proxy => 1, timeout => 30);
return bless $self, $class;
};
sub xmlreply($$) {
my ($self, $query) = @_;
my $host = $self->{hostid};
my $user = $self->{userid};
my $secret = $self->{secret};
my $session = $self->{_session};
if(index($host, ":") < 1) {
$host .= ":8055";};
my $reply = undef;
my $document = "http://" . $host . "/" . $query;
my $request = new HTTP::Request 'GET', $document;
if($secret) {
$request->authorization_basic($user, $secret);};
my $response = $session->request($request);
my $parser = XML::Simple->new();
if($response->is_success()) {
$reply = $parser->XMLin($response->{_content});};
return $reply;
};
sub reload($) {
my($self) = @_;
my $reply = $self->xmlreply("reload.xml");
if($reply) {
return $reply->{results}->{result}->{value};};
return "failure";
}
sub uptime($) {
my($self) = @_;
my $reply = $self->xmlreply("uptime.xml");
if($reply) {
return $reply->{results}->{result}->{value};};
return undef;
}
sub status($) {
my($self) = @_;
my $reply = $self->xmlreply("status.xml");
if($reply) {
return $reply->{results}->{result}->{value};};
return undef;
}
sub traffic($) {
my($self) = @_;
my $reply = $self->xmlreply("traffic.xml");
my $result = undef;
if($reply) {
$result->{timestamp} =
$reply->{results}->{result}->{timestamp}->{value};
$result->{active} =
$reply->{results}->{result}->{activeCalls}->{value};
$result->{completed}->{incoming} =
$reply->{results}->{result}->{incomingComplete}->{value};
$result->{completed}->{outgoing} =
$reply->{results}->{result}->{outgoingComplete}->{value};
$result->{attempted}->{incoming} =
$reply->{results}->{result}->{incomingAttempts}->{value};
$result->{attempted}->{outgoing} =
$reply->{results}->{result}->{outgoingAttempts}->{value};
}
return $result;
( run in 1.546 second using v1.01-cache-2.11-cpan-437f7b0c052 )