API-ParallelsWPB
view release on metacpan or search on metacpan
NAME
API::ParallelsWPB - client for Parallels Presence Builder API
VERSION
version 0.03
SYNOPSIS
my $client = API::ParallelsWPB->new( username => 'admin', password => 'passw0rd', server => 'builder.server.mysite.ru' );
my $response = $client->get_sites_info;
if ( $response->success ) {
for my $site ( @{ $response->response } ) {
say "UUID: ". $site->{uuid};
}
}
else {
warn "Error occured: " . $response->error . ", Status: " . $response->status;
}
METHODS
new($class, %param)
Creates new client instance. Parameters for "new" are:
username
Username for connection to Parallels WebPresence Builder instance.
Required parameter.
password
Password for connection to Parallels WebPresence Builder instance.
Required parameter.
server
Servername or server ip address for connection to Parallels
WebPresence Builder instance. Optional parameter.
api_version
API version, used in API url constructing. Optional parameter.
# NAME
API::ParallelsWPB - client for Parallels Presence Builder API
# SYNOPSIS
```perl
my $client = API::ParallelsWPB->new(username => 'admin', password => 'passw0rd', server => 'builder.server.mysite.ru');
my $response = $client->get_sites_info;
if ($response->success) {
for my $site (@{$response->response}) {
say "UUID: ". $site->{ uuid };
}
}
else {
warn "Error occured: " . $response->error . ", Status: " . $response->status;
}
```
# METHODS
## new
Creates new client instance. Parameters for ```new``` are:
- username
Username for connection to Parallels WebPresence Builder instance. Required parameter.
- password
Password for connection to Parallels WebPresence Builder instance. Required parameter.
- server
Servername or server ip address for connection to Parallels WebPresence Builder instance. Optional parameter.
- api_version
API version, used in API url constructing. Optional parameter.
lib/API/ParallelsWPB.pm view on Meta::CPAN
# Constuctor
sub new {
my $class = shift;
$class = ref $class || $class;
my $self = {
username => '',
password => '',
server => '',
api_version => '5.3',
debug => 0,
timeout => 30,
(@_)
};
map { confess "Field '" . $_ . "' required!" unless $self->{ $_ } } qw/username password server/;
return bless $self, $class;
}
# "free" request. Basic method for requests
sub f_request {
my ( $self, $url_array, $data ) = @_;
lib/API/ParallelsWPB.pm view on Meta::CPAN
my ( $self, $data, $url, $post_data ) = @_;
my $ua = LWP::UserAgent->new();
my $req = HTTP::Request->new( $data->{req_type} => $url );
if ( $data->{req_type} eq 'POST' || $data->{req_type} eq 'PUT' ) {
$req->header( 'content-type' => 'application/json' );
$req->content( $post_data );
}
$req->authorization_basic( $self->{username}, $self->{password} );
$ua->ssl_opts( verify_hostname => 0 );
$ua->timeout( $self->{timeout} );
warn $req->as_string if ( $self->{debug} );
my $res = $ua->request( $req );
warn $res->as_string if ( $self->{debug} );
my $response = API::ParallelsWPB::Response->new( $res );
return $response;
lib/API/ParallelsWPB.pm view on Meta::CPAN
=head1 NAME
API::ParallelsWPB - client for Parallels Presence Builder API
=head1 VERSION
version 0.03
=head1 SYNOPSIS
my $client = API::ParallelsWPB->new( username => 'admin', password => 'passw0rd', server => 'builder.server.mysite.ru' );
my $response = $client->get_sites_info;
if ( $response->success ) {
for my $site ( @{ $response->response } ) {
say "UUID: ". $site->{uuid};
}
}
else {
warn "Error occured: " . $response->error . ", Status: " . $response->status;
}
lib/API/ParallelsWPB.pm view on Meta::CPAN
=head2 B<new($class, %param)>
Creates new client instance. Parameters for C<new> are:
=over
=item username
Username for connection to Parallels WebPresence Builder instance. Required parameter.
=item password
Password for connection to Parallels WebPresence Builder instance. Required parameter.
=item server
Servername or server ip address for connection to Parallels WebPresence Builder instance. Optional parameter.
=item api_version
API version, used in API url constructing. Optional parameter.
lib/API/ParallelsWPB/Requests.pm view on Meta::CPAN
state
trial | suspended | regular
This parameter is optional.
It specifies whether the site is in the trial mode, suspended or active (regular value). Sites in the trial mode can be edited, but cannot be published to a hosting account.
publicationSettings
{
"targetUrl" => "ftp://username:password@ftp.example.com/path",
"webSiteUrl" => "http://example.com",
"fallbackIp" => "192.168.1.3"
}
This parameter is optional.
ownerInfo
{
"personalName" => "John Doe",
t/03_f_request.t view on Meta::CPAN
self => $self,
data => $data,
url => $url,
post_data => $post_data
);
};
}
my $client = API::ParallelsWPB->new(
username => 'test',
password => 'passw0rd',
server => '127.0.0.1'
);
subtest 'Test GET request' => sub {
plan tests => 2;
$client->f_request( [qw/ system version /], { req_type => 'get' } );
is( $transfered_params{url}, 'https://127.0.0.1/api/5.3/system/version/',
t/04_requests.t view on Meta::CPAN
use Test::More;
use Data::Dumper;
use API::ParallelsWPB;
use API::ParallelsWPB::Response;
use t::lib::Mock;
my $client = t::lib::Mock->new(
username => 'test',
password => 'passw0rd',
server => '127.0.0.1'
);
subtest 'get_version' => sub {
plan tests => 2;
$client->get_version;
my $p = $client->get_request_params;
like( $p->{url}, qr{/api/5.3/system/version/},
t/04_requests.t view on Meta::CPAN
is( $p->{data}->{req_type}, 'GET', 'Reqtype for get_version is ok' );
};
subtest 'create_site' => sub {
plan tests => 3;
# after site creation uuid goes to $client, and methods with uuid required can be called without uuid in params
my $client = t::lib::Mock->new(
username => 'test',
password => 'passw0rd',
server => '127.0.0.1'
);
$client->create_site( state => 'regular' );
my $p = $client->get_request_params;
like( $p->{url}, qr{/api/5.3/sites/}, 'URL for create_site is ok' );
like( $p->{post_data}, qr{"state":"regular"},
'post_data for create_site is ok' );
is( $p->{data}->{req_type}, 'POST', 'Reqtype for create_site is ok' );
( run in 0.687 second using v1.01-cache-2.11-cpan-49f99fa48dc )