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 )