view release on metacpan or search on metacpan
- Fixed Build.PL (Test::LongString not in prereqs_build list but required )
- Add URI.pm as required module for test stage
1.06 2008-07-13
- More improvements in tests
- Get user domains list by login or client id
1.05 2008-06-15
- Added full support operations with databases and db users
- Fixed errors in pod documentation
1.04 2008-05-29
- Added the ability to fine tuning the abstract_parser sub (for API::PleskExpand)
1.03 2008-05-25
- Small bug fix
lib/API/Plesk/DNS.pm
lib/API/Plesk/Mail.pm
lib/API/Plesk/WebUser.pm
lib/API/Plesk/User.pm
Makefile.PL
MANIFEST This list of files
META.yml
README
t/compoment.t
t/customer.t
t/database.t
t/plesk.t
t/mock.t
t/response.t
t/site.t
t/sitebuilder.t
t/site-alias.t
t/ftp_user.t
t/webuser.t
t/webspace.t
t/dns.t
password => 'pass', # required
url => 'https://127.0.0.1:8443/enterprise/control/agent.php', # required
api_version => '1.6.3.1',
debug => 0,
timeout => 30,
);
my $res = $api->customer->get();
if ($res->is_success) {
for ( @{$res->data} ) {
print "login: $_->{login}\n";
}
}
else {
print $res->error;
}
DESCRIPTION
At present the module provides interaction with Plesk 10.1 (API
1.6.3.1). Distribution was completely rewritten and become more friendly
METHODS
new(%params)
Create new class instance.
Required params: username password url
Additional params: api_version - default 1.6.3.1 debug - default 0
timeout - default 30 sec.
send($operator, $operation, $data, %params)
This method prepare and sends request to Plesk API.
Returns API::Plesk::Response object.
$operator - name of operator XML section of Plesk API.
$operation - mane of operation XML section of Plesk API.
$data - data hash that is converted to XML and is sended to plesk
server.
xml_http_req( $xml )
Internal method. it implements real request sending to Plesk API.
Returns array ( $response_xml, $error ).
SEE ALSO
Plesk XML RPC API http://www.parallels.com/en/products/plesk/docs/
lib/API/Plesk.pm view on Meta::CPAN
# new
customer => [['1.6.3.0', 'Customer']],
webspace => [['1.6.3.0', 'Webspace']],
site => [['1.6.3.0', 'Site']],
subdomain => [['1.6.3.0', 'Subdomain']],
site_alias => [['1.6.3.0', 'SiteAlias']],
sitebuilder => [['1.6.3.0', 'SiteBuilder']],
ftp_user => [['1.6.3.0', 'FTPUser']],
service_plan => [['1.6.3.0', 'ServicePlan']],
service_plan_addon => [['1.6.3.0', 'ServicePlanAddon']],
database => [['1.6.3.0', 'Database']],
webuser => [['1.6.3.0', 'WebUser']],
dns => [['1.6.3.0', 'DNS']],
mail => [['1.6.3.0', 'Mail']],
user => [['1.6.3.0', 'User']],
# old
Accounts => [['1.5.0.0', 'Accounts']],
Domains => [['1.5.0.0', 'Domains']],
);
lib/API/Plesk.pm view on Meta::CPAN
confess "Required username!" unless $self->{username};
confess "Required password!" unless $self->{password};
}
confess "Required url!" unless $self->{url};
return bless $self, $class;
}
# sends request to Plesk API
sub send {
my ( $self, $operator, $operation, $data, %params ) = @_;
confess "Wrong request data!" unless $data && ref $data;
my $xml = { $operator => { $operation => $data } };
$xml = $self->render_xml($xml);
warn "REQUEST $operator => $operation\n$xml" if $self->{debug};
my ($response, $error) = $self->xml_http_req($xml);
warn "RESPONSE $operator => $operation => $error\n$response" if $self->{debug};
unless ( $error ) {
lib/API/Plesk.pm view on Meta::CPAN
password => 'pass', # required
url => 'https://127.0.0.1:8443/enterprise/control/agent.php', # required
api_version => '1.6.3.1',
debug => 0,
timeout => 30,
);
my $res = $api->customer->get();
if ($res->is_success) {
for ( @{$res->data} ) {
print "login: $_->{login}\n";
}
}
else {
print $res->error;
}
=head1 DESCRIPTION
At present the module provides interaction with Plesk 10.1 (API 1.6.3.1).
lib/API/Plesk.pm view on Meta::CPAN
Required params:
username
password
url
Additional params:
api_version - default 1.6.3.1
debug - default 0
timeout - default 30 sec.
=item send($operator, $operation, $data, %params)
This method prepare and sends request to Plesk API.
Returns API::Plesk::Response object.
$operator - name of operator XML section of Plesk API.
$operation - mane of operation XML section of Plesk API.
$data - data hash that is converted to XML and is sended to plesk server.
=item xml_http_req( $xml )
Internal method. it implements real request sending to Plesk API.
Returns array ( $response_xml, $error ).
=back
=head1 SEE ALSO
lib/API/Plesk/Customer.pm view on Meta::CPAN
owner-id
);
sub add {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
my $gen_info = $params{gen_info} || confess "Required gen_info parameter!";
$self->check_required_params($gen_info, qw(pname login passwd));
my $data = {
gen_info => $self->sort_params($params{gen_info}, @gen_info_fields)
};
return $bulk_send ? $data :
$self->plesk->send('customer', 'add', $data);
}
sub get {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : '',
dataset => [ {gen_info => ''}, {stat => ''} ]
};
return $bulk_send ? $data :
$self->plesk->send('customer', 'get', $data);
}
sub set {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
my $filter = $params{filter} || '';
my $gen_info = $params{gen_info} || '';
$gen_info || confess "Required gen_info or stat parameter!";
my $data = {
filter => $filter,
values => {
gen_info => $gen_info,
}
};
return $bulk_send ? $data :
$self->plesk->send('customer', 'set', $data);
}
sub del {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : ''
};
return $bulk_send ? $data :
$self->plesk->send('customer', 'del', $data);
}
1;
__END__
=head1 NAME
API::Plesk::Customer - Managing customer accounts.
lib/API/Plesk/Customer.pm view on Meta::CPAN
gen_info => {
pname => 'Mike',
login => 'mike',
passwd => '12345',
...
}
);
=item get(%params)
Method gets customer data.
%params = (
filter => {...}
);
=item set(%params)
Method sets customer data.
%params = (
filter => {...},
gen_info => {...}
);
=item del(%params)
Method deletes customer from Plesk Panel.
lib/API/Plesk/DNS.pm view on Meta::CPAN
my $bulk_send = delete $params{bulk_send};
my @fields = (
[qw(site-id site-alias-id)],
'type',
'host',
'value'
);
$self->check_required_params(\%params, @fields);
my $data = $self->sort_params(\%params, @fields, 'opt');
return $bulk_send ? $data :
$self->plesk->send('dns', 'add_rec', $data);
}
sub get_rec {
my ( $self, %filter ) = @_;
my $bulk_send = delete $filter{bulk_send};
my $template = delete $filter{template};
my $data = [
{ filter => @_ > 2 ? \%filter : '' },
( $template ? {template => $template} : () ),
];
return $bulk_send ? $data :
$self->plesk->send('dns', 'get_rec', $data);
}
sub del_rec {
my ( $self, %filter ) = @_;
my $bulk_send = delete $filter{bulk_send};
my $template = delete $filter{template};
my $data = [
{ filter => $self->prepare_filter(\%filter) },
( $template ? {template => $template} : () ),
];
return $bulk_send ? $data :
$self->plesk->send('dns', 'del_rec', $data);
}
sub get_soa {
my ( $self, %filter ) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = [
{ filter => @_ > 2 ? \%filter : '' }
];
return $bulk_send ? $data :
$self->plesk->send('dns', 'get', $data);
}
1;
lib/API/Plesk/Database.pm view on Meta::CPAN
use base 'API::Plesk::Component';
sub add_db {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
$self->check_required_params(\%params, qw(webspace-id name type));
return $bulk_send ? \%params :
$self->plesk->send('database', 'add-db', \%params);
}
sub del_db {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : ''
};
return $bulk_send ? $data :
$self->plesk->send('database', 'del-db', $data);
}
sub add_db_user {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
$self->check_required_params(\%params, qw(db-id login password));
my $data = $self->sort_params(\%params, qw(db-id login password));
return $bulk_send ? $data :
$self->plesk->send('database', 'add-db-user', $data);
}
sub del_db_user {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : ''
};
return $bulk_send ? $data :
$self->plesk->send('database', 'del-db-user', $data);
}
1;
__END__
=head1 NAME
API::Plesk::Database - Managing databases.
=head1 SYNOPSIS
$api = API::Plesk->new(...);
$response = $api->database->add_db(..);
$response = $api->database->del_db(..);
$response = $api->database->add_db_user(..);
$response = $api->database->del_db_user(..);
=head1 DESCRIPTION
Module manage databases and database users.
=head1 METHODS
=over 3
=item add_db(%params)
=item del_db(%params)
=item add_db_user(%params)
lib/API/Plesk/FTPUser.pm view on Meta::CPAN
[qw(site-id site-name)],
);
my @required_fields = (
'name',
'password',
[qw(site-id site-name)],
);
$self->check_required_params(\%params, @required_fields);
my $data = $self->sort_params(\%params, @sort_fields);
return $bulk_send ? $data :
$self->plesk->send('ftp-user', 'add', $data);
}
sub get {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : '',
};
return $bulk_send ? $data :
$self->plesk->send('ftp-user', 'get', $data);
}
sub set {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
my $filter = delete $params{filter} || '';
my @sort_fields = (
'name',
'password',
'home',
'create_non_existent',
'quota',
'permissions',
);
my $data = {
filter => $filter,
values => $self->sort_params(\%params, @sort_fields),
};
return $bulk_send ? $data :
$self->plesk->send('ftp-user', 'set', $data);
}
sub del {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : ''
};
return $bulk_send ? $data :
$self->plesk->send('ftl-user', 'del', $data);
}
1;
__END__
=head1 NAME
API::Plesk::Site - Managing sites (domains).
lib/API/Plesk/Response.pm view on Meta::CPAN
};
return bless $self, $class;
}
sub is_success { $_[0]->{is_success} }
sub id { $_[0]->{results}->[0]->{id} }
sub guid { $_[0]->{results}->[0]->{guid} }
sub data {
my ( $self ) = @_;
return [] unless $self->is_success;
return [ map { $_->{data} || () } @{$self->{results}} ];
}
sub results {
my ( $self ) = @_;
return unless $self->is_success;
return $self->{results} || [];
}
sub error_code { $_[0]->error_codes->[0]; }
sub error_text { $_[0]->error_texts->[0]; }
lib/API/Plesk/Response.pm view on Meta::CPAN
$res->is_connection_error;
# get errors
$res->error_code;
$res->error_codes->[0];
$res->error_text;
$res->error_texts->[0];
$res->error;
$res->errors->[0];
# get data sections
$res->data->[0];
# get result sections
$res->results->[0];
# get id and guid
$res->id;
$res->guid;
=head1 DESCRIPTION
lib/API/Plesk/Response.pm view on Meta::CPAN
Create response object.
=item is_success()
Returns true if all results have no errors.
=item is_connection_error()
Returns true if connection error happened.
=item data()
$response->data;
$response->data->[0];
=item results()
$response->results;
$response->results->[0];
=item error_code()
$response->error_code;
lib/API/Plesk/ServicePlan.pm view on Meta::CPAN
name
);
my @main_fields = ( @header_fields, @other_fields );
sub get {
my ($self, %params) = @_;
my $bulk_send = delete $params{bulk_send};
my $filter = delete $params{filter} || '';
my $data = [
{ filter => $filter },
@{ $self->sort_params( \%params, @main_fields ) },
];
return $bulk_send ? $data :
$self->plesk->send('service-plan', 'get', $data);
}
sub set {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
my $filter = delete $params{filter} || '';
$self->check_hosting(\%params);
my $data = [
{ filter => $filter },
@{$self->sort_params(\%params, @main_fields)},
];
return $bulk_send ? $data :
$self->plesk->send('service-plan', 'set', $data);
}
sub del {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : ''
};
return $bulk_send ? $data :
$self->plesk->send('service-plan', 'del', $data);
}
1;
__END__
=head1 NAME
API::Plesk::ServicePlan - Managing service plans.
lib/API/Plesk/ServicePlanAddon.pm view on Meta::CPAN
my @main_fields = qw/
owner-id
owner-login
/;
sub get {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
my $filter = delete $params{filter} || '';
my $data = [
{ filter => $filter },
@{ $self->sort_params( \%params, @main_fields ) },
];
return $bulk_send ? $data :
$self->plesk->send('service-plan-addon', 'get', $data);
}
1;
__END__
=head1 NAME
API::Plesk::ServicePlanAddon - Managing add-on plans.
lib/API/Plesk/Site.pm view on Meta::CPAN
my @fields = (
'name',
[qw(webspace-name webspace-id webspace-guid)]
);
$self->check_required_params($gen_setup, @fields);
$self->check_hosting(\%params);
$params{gen_setup} = $self->sort_params($gen_setup, @fields);
my $data = $self->sort_params(\%params, qw(gen_setup hosting prefs));
return $bulk_send ? $data :
$self->plesk->send('site', 'add', $data);
}
sub get {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $dataset = {gen_info => ''};
if ( my $add = delete $filter{dataset} ) {
$dataset = { map { ( $_ => '' ) } ref $add ? @$add : ($add) };
$dataset->{gen_info} = '';
}
my $data = {
filter => @_ > 2 ? \%filter : '',
dataset => $dataset,
};
return $bulk_send ? $data :
$self->plesk->send('site', 'get', $data);
}
sub set {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
my $filter = delete $params{filter} || '';
$self->check_hosting(\%params);
my $data = {
filter => $filter,
values => $self->sort_params(\%params, qw(gen_setup prefs hosting disk_usage)),
};
return $bulk_send ? $data :
$self->plesk->send('site', 'set', $data);
}
sub del {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : ''
};
return $bulk_send ? $data :
$self->plesk->send('site', 'del', $data);
}
sub get_physical_hosting_descriptor {
my ( $self, %filter ) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : ''
};
return $bulk_send ? $data :
$self->plesk->send(
'site',
'get-physical-hosting-descriptor',
$data
);
}
1;
__END__
=head1 NAME
API::Plesk::Site - Managing sites (domains).
lib/API/Plesk/SiteAlias.pm view on Meta::CPAN
$self->check_required_params(\%params, [qw(site-id name)]);
return $bulk_send ? \%params :
$self->plesk->send('site-alias', 'create', \%params);
}
sub get {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : '',
};
return $bulk_send ? $data :
$self->plesk->send('site-alias', 'get', $data);
}
sub set {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
return $bulk_send ? \%params :
$self->plesk->send('site-alias', 'set', \%params);
}
sub del {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : ''
};
return $bulk_send ? $data :
$self->plesk->send('site-alias', 'del', $data);
}
1;
__END__
=head1 NAME
API::Plesk::SiteAlias - Managing site aliases.
lib/API/Plesk/User.pm view on Meta::CPAN
);
sub add {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
my $gen_info = $params{gen_info} || confess "Required gen_info parameter!";
my $roles = $params{roles} || confess "Required roles parameter!";
$self->check_required_params($gen_info, qw(name login passwd));
my $unsorteddata = {
'gen-info' => $self->sort_params($params{gen_info}, @gen_info_fields),
roles => $roles,
};
my $data = $self->sort_params($unsorteddata, qw(gen-info roles));
return $bulk_send ? $data :
$self->plesk->send('user', 'add', $data);
}
sub get {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : '',
dataset => [ {'gen-info' => ''}, {roles => ''} ]
};
return $bulk_send ? $data :
$self->plesk->send('user', 'get', $data);
}
sub set {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
my $filter = $params{filter} || '';
my $gen_info = $params{gen_info} || '';
$gen_info || confess "Required gen_info or stat parameter!";
my $data = {
filter => $filter,
values => {
gen_info => $gen_info,
}
};
return $bulk_send ? $data :
$self->plesk->send('user', 'set', $data);
}
sub del {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : ''
};
return $bulk_send ? $data :
$self->plesk->send('user', 'del', $data);
}
1;
__END__
=head1 NAME
API::Plesk::Customer - Managing user (e.g. auxiliary) accounts.
lib/API/Plesk/User.pm view on Meta::CPAN
...
}
# required
roles => {
name => 'WebMaster',
...
);
=item get(%params)
Method gets user data.
%params = ( %filter );
=item set(%params)
Method sets user data.
%params = (
filter => {...},
gen_info => {...}
);
=item del(%params)
Method deletes user from Plesk Panel.
lib/API/Plesk/WebUser.pm view on Meta::CPAN
use base 'API::Plesk::Component';
#TODO
sub add {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
$self->check_required_params(\%params, qw(site-id login));
my $data = $self->sort_params(\%params, qw(site-id login password password-type ftp-quota services));
return $bulk_send ? $data :
$self->plesk->send('webuser', 'add', $data);
}
sub get {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : '',
};
return $bulk_send ? $data :
$self->plesk->send('webuser', 'get', $data);
}
sub get_prefs {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : '',
};
return $bulk_send ? $data :
$self->plesk->send('webuser', 'get-prefs', $data);
}
sub set {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
my $filter = delete $params{filter} || '';
my $data = {
filter => $filter,
values => $self->sort_params(\%params, qw(password password-type ftp-quota services)),
};
return $bulk_send ? $data :
$self->plesk->send('webuser', 'set', $data);
}
sub del {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : ''
};
return $bulk_send ? $data :
$self->plesk->send('webuser', 'del', $data);
}
1;
__END__
=head1 NAME
API::Plesk::WebUser - Managing webusers.
lib/API/Plesk/Webspace.pm view on Meta::CPAN
my $bulk_send = delete $params{bulk_send};
my $gen_setup = $params{gen_setup} || confess "Required gen_setup parameter!";
$self->check_hosting(\%params);
$self->check_required_params(\%params, [qw(plan-id plan-name plan-guid plan-external-id)]);
$self->check_required_params($gen_setup, qw(name ip_address));
$params{gen_setup} = $self->sort_params($gen_setup, @gen_setup_fields);
my $data = $self->sort_params(\%params, @main_fields);
return $bulk_send ? $data :
$self->plesk->send('webspace', 'add', $data);
}
sub get {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $dataset = {gen_info => ''};
if ( my $add = delete $filter{dataset} ) {
$dataset = { map { ( $_ => '' ) } ref $add ? @$add : ($add) };
$dataset->{gen_info} = '';
}
my $data = {
filter => @_ > 2 ? \%filter : '',
dataset => $dataset,
};
return $bulk_send ? $data :
$self->plesk->send('webspace', 'get', $data);
}
sub set {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
my $filter = delete $params{filter} || '';
my $gen_setup = $params{gen_setup};
$params{gen_setup} = $self->sort_params($gen_setup, @gen_setup_fields) if $gen_setup;
$self->check_hosting(\%params);
my $data = [
{ filter => $filter },
{ values => $self->sort_params(\%params, @main_fields) },
];
return $bulk_send ? $data :
$self->plesk->send('webspace', 'set', $data);
}
sub del {
my ($self, %filter) = @_;
my $bulk_send = delete $filter{bulk_send};
my $data = {
filter => @_ > 2 ? \%filter : ''
};
return $bulk_send ? $data :
$self->plesk->send('webspace', 'del', $data);
}
sub add_plan_item {
my ( $self, %params ) = @_;
my $bulk_send = delete $params{bulk_send};
my $filter = delete $params{filter} || '';
my $name = $params{name} || confess "Required name field!";
my $data = {
filter => $filter,
'plan-item' => { name => $name },
};
return $bulk_send ? $data :
$self->plesk->send('webspace', 'add-plan-item', $data);
}
sub add_subscription {
my ($self, %params) = @_;
my $bulk_send = delete $params{bulk_send};
$self->check_required_params(\%params, [qw(plan-guid plan-external-id)]);
my $data = $self->sort_params(\%params, 'filter', [qw(plan-guid plan-external-id)]);
return $bulk_send ? $data :
$self->plesk->send('webspace', 'add-subscription', $data);
}
sub remove_subscription {
my ($self, %params) = @_;
my $bulk_send = delete $params{bulk_send};
$params{filter} ||= '';
$self->check_required_params(\%params, [qw(plan-guid plan-external-id)]);
my $data = $self->sort_params(\%params, 'filter', [qw(plan-guid plan-external-id)]);
return $bulk_send ? $data :
$self->plesk->send('webspace', 'remove-subscription', $data);
}
sub switch_subscription {
my ($self, %params) = @_;
my $bulk_send = delete $params{bulk_send};
$params{filter} ||= '';
$self->check_required_params(\%params, [qw(plan-guid plan-external-id no-plan)]);
my $data = $self->sort_params(\%params, 'filter', [qw(plan-guid plan-external-id no-plan)]);
return $bulk_send ? $data :
$self->plesk->send('webspace', 'switch-subscription', $data);
}
1;
__END__
=head1 NAME
API::Plesk::Webspace - Managing subscriptions (webspaces).
t/TestData.pm view on Meta::CPAN
package TestData;
use Test::More;
use API::Plesk;
#
# Support sub`s and data for tests
#
our @EXPORT = qw(
delete_all_accounts
create_unique_user_data
_compare
gen_passwd
iterate
check_input_data
create_work_logins
);
# ONLINE configs
my $online_plesk_url = 'https://127.0.0.1:8443/enterprise/control/agent.php';
our $online_manual_created_template_name = $ENV{'template_name'};
our $online_manual_created_template_id = $ENV{'template_id'};
our $online_new_tariff_name = $ENV{'new_tariff'};
t/TestData.pm view on Meta::CPAN
our %online_plesk_valid_params = (
api_version => $ENV{'plesk_api_version'} || '1.5.0.0',
username => $ENV{'plesk_username'} || 'admin',
password => $ENV{'plesk_password'} || 'qwerty',
url => $ENV{'plesk_url'} || $online_plesk_url,
debug => '',
);
# END online configs
our $test_user_data = {
pname => 'pavel',
login => 'pav_perl',
passwd => 'password',
phone => '8 555 1111111',
email => 'nrg@nrg.name',
country => 'RU' # optional field
};
our $stress_test_data = {
pname => [ # 1 .. 60 symbols
'pavel',
'2342134123412',
'dasdf_dasdsa_ADdssd__DASsd',
# '____', error
(join '', 'x' x 60),
'add_(efewf)_(sdfsd)',
],
login => [ # 1 .. 20 symbols,
'pav_perl',
t/TestData.pm view on Meta::CPAN
my $manual_created_template_name = $ENV{'template_name'} || 'name';
my $manual_created_template_id = $ENV{'template_id'} || 1;
sub iterate {
my $hash = shift;
my $plesk_client = shift;
my $result_hash = { };
# initial data
for (keys %$hash) {
$result_hash->{$_} = $hash->{$_}->[0];
}
check_input_data($result_hash, $plesk_client);
foreach my $key (keys %$hash) {
my $old_value = $result_hash->{$key}; # rewrite
for my $index (1 .. scalar @{$hash->{$key}} - 1){
$result_hash->{$key} = $hash->{$key}->[$index];
check_input_data($result_hash, $plesk_client);
# warn Dumper $result_hash;
}
$result_hash->{$key} = $old_value;
}
return $result_hash;
}
sub check_input_data {
my $params = shift;
my $plesk_client = shift;
my $general_info = {
pname => $params->{pname}, # utf8 string
login => $params->{login},
passwd => $params->{passwd},
phone => $params->{phone},
email => $params->{email},
country => $params->{country}, # optional field
t/TestData.pm view on Meta::CPAN
my $result_add_by_id = $plesk_client->Accounts->create(
general_info => $general_info,
'template-name' => $manual_created_template_name
);
delete_all_accounts($plesk_client);
# warn Dumper($general_info) . "\n" . $result_add_by_id->get_error_string unless
unless (like(
$result_add_by_id->get_id,
qr/^\d+$/,
'Create account input data check'
)) {
warn $result_add_by_id->get_error_string . "\n" .
Dumper $general_info;
}
}
sub gen_passwd {
my $passwd='';
for (my $i=0; $i<8; $i++) {
t/TestData.pm view on Meta::CPAN
$client->Accounts->delete( all => 1)->is_success,
1,
'Delete all accounts'
);
}
# Sub for create accounts online test
sub create_work_logins {
my $plesk_client = shift;
my $data_accumulator_for_online_tests = shift;
my $result_add_by_id = $plesk_client->Accounts->create(
general_info => create_unique_user_data('crby_login'),
'template-name' => $manual_created_template_name
);
like(
$data_accumulator_for_online_tests->{user_id_from_create_with_tmpl_name} =
$result_add_by_id->get_id,
qr/^\d+$/,
'Create account with template name'
);
like(
$data_accumulator_for_online_tests->{user_id_from_create_with_tmpl_id} =
$plesk_client->Accounts->create(
general_info => create_unique_user_data('createby_id'),
'template-id' => $manual_created_template_id
)->get_id,
qr/^\d+$/,
'Create account with template id'
);
}
sub create_unique_user_data {
my $unique_id = shift;
my %result_user_data = %{$test_user_data};
$result_user_data{'pname'} = $result_user_data{'login'} = "testuser_$unique_id";
return \%result_user_data;
}
# "Compare" two hashrefs
# Sub for get info online tests
sub _compare {
my $checked = shift;
my $template = shift;
return '' unless ref $checked eq 'HASH' && ref $template eq 'HASH';
t/customer.t view on Meta::CPAN
my $api = API::Plesk->new( %TestData::plesk_valid_params );
my $customers = API::Plesk::Customer->new( plesk => $api );
isa_ok($customers, 'API::Plesk::Customer');
is_deeply(
$customers->get(id => 1, bulk_send => 1),
{
filter => {id => 1},
dataset => [ {gen_info => ''}, {stat => ''} ]
},
'get'
);
t/database.t view on Meta::CPAN
use lib qw(lib t);
use TestData;
BEGIN {
plan tests => 6;
use_ok('API::Plesk::Database');
}
my $api = API::Plesk->new( %TestData::plesk_valid_params );
isa_ok($api->database, 'API::Plesk::Database');
is_deeply(
$api->database->add_db(
'webspace-id' => 1,
name => 'test_db',
type => 'MySQL',
bulk_send => 1
),
{
'webspace-id' => 1,
name => 'test_db',
type => 'MySQL',
},
'add_db'
);
is_deeply(
$api->database->del_db(
name => 'test_db',
bulk_send => 1
),
{
filter => {name => 'test_db'},
},
'del_db'
);
is_deeply(
$api->database->add_db_user(
'db-id' => 1,
login => 'test_db_user',
password => '12345',
bulk_send => 1
),
[
{'db-id' => 1},
{login => 'test_db_user'},
{password => '12345'},
],
'add_db_user'
);
is_deeply(
$api->database->del_db_user(
'db-id' => 1,
bulk_send => 1
),
{
filter => {'db-id' => 1}
},
'del_db_user'
);
t/response.t view on Meta::CPAN
operation => 'get',
response => xml2hash('
<?xml version="1.0" encoding="utf-8"?>
<packet>
<customer>
<get>
<result>
<status>ok</status>
<id>123</id>
<guid>123456</guid>
<data>
<test>qwerty</test>
</data>
</result>
</get>
</customer>
</packet>', array => ['get', 'result'])
);
ok($res->is_success);
is($res->id, 123);
is($res->guid, 123456);
is($res->results->[0]->{status}, 'ok');
is($res->data->[0]->{test}, 'qwerty');
$res = API::Plesk::Response->new(
operator => 'webspace',
operation => 'add',
response => xml2hash(q|
<?xml version="1.0" encoding="UTF-8"?>
<packet version="1.6.3.1"><webspace><add><result><status>error</status><errcode>1018</errcode><errtext>Unable to create hosting on ip 12.34.56.78. Ip address does not exist in client's pool</errtext></result></add></webspace></packet>
|, array => ['add', 'result'])
);
ok(!$res->is_success);
my $api = API::Plesk->new( %TestData::plesk_valid_params );
my $users = $api->user;
isa_ok($users, 'API::Plesk::User');
is_deeply(
$users->get(guid => 1, bulk_send => 1),
{
filter => {guid => 1},
dataset => [ {'gen-info' => ''}, {roles => ''} ]
},
'get'
);