API-PleskExpand
view release on metacpan or search on metacpan
Revision history for Perl extension API::PleskExpand.
1.00 May 25 20:08:15 SAMST 2008
- The first public release
1.01 Jun 1 19:07:04 SAMST 2008
- Fix syntax error in Build.PL :(
- Fix errors in documentation
1.02 Jun 8 13:32:18 SAMST 2008
- Full support all ways of choosing a Plesk server, where the client will be created (autoselect and manual)
1.03 Jun 14 12:16:24 SAMST 2008
- Fix documentation, add tests
1.04 Jun 22 05:21:18 SAMST 2008
- Add ability to attaching domains and accounts to templates
1.05 Jul 29 23:33:12 SAMST 2008
- New function -- get all domains from Expand
1.06 Jul 31 17:34:55 SAMST 2008
- Fixed Build.pl ( Test::LongString not in prereqs_build list but required )
lib/API/PleskExpand.pm view on Meta::CPAN
=back
=cut
# OVERRIDE, INSTANCE(xml_request)
sub _execute_query {
my ($self, $xml_request) = @_;
# packet version override for
my $packet_version = $self->{'api_version'};
return unless $xml_request;
my $xml_packet_struct = <<" DOC";
<?xml version="1.0" encoding="UTF-8"?>
<packet version="$packet_version">
$xml_request
</packet>
DOC
lib/API/PleskExpand/Accounts.pm view on Meta::CPAN
Return (Data::Dumper output):
VAR1 = bless( {
'answer_data' => [ {
'server_id' => '1',
'status' => 'ok',
'expiration' => '-1',
'tmpl_id' => '1',
'id' => '15'
} ],
'error_codes' => ''
}, 'API::Plesk::Response' );
=cut
# Create element
# STATIC
sub create {
my %params = @_;
lib/API/PleskExpand/Accounts.pm view on Meta::CPAN
$VAR1 = bless( {
'answer_data' => [ {
'server_id' => '1',
'status' => 'ok',
'tmpl_id' => '1',
'id' => '15',
'plesk_client_id' => '384',
'login' => 'suxdffffxx'
} ],
'error_codes' => ''
}, 'API::Plesk::Response' );
Example (client deactivation):
print Dumper $client->Accounts->modify(
id => 10,
general_info => { status => 16 }
);
lib/API/PleskExpand/Accounts.pm view on Meta::CPAN
id -- client id in Plesk
Return:
$VAR1 = bless( {
'answer_data' => [ {
'server_id' => '1',
'status' => 'ok',
'id' => '15'
} ],
'error_codes' => ''
}, 'API::Plesk::Response' );
Example:
print Dumper $client->Accounts->delete( id => 11 );
=back
=cut
lib/API/PleskExpand/Accounts.pm view on Meta::CPAN
return create_node( 'get',
create_node('filter', '') . create_node( 'dataset', create_node('gen_info') )
) . '<!-- get_client -->';
}
# GET response handler
# STATIC
sub get_response_parse {
my $answer = abstract_parser('get', +shift, [ ], 'system_error' );
if (ref $answer eq 'ARRAY') {
for my $domain (@$answer) {
$domain->{data} = xml_extract_values($domain->{data} =~ m#<gen_info>(.*?)</gen_info>#);
}
} elsif ($answer) {
$answer->{data} = xml_extract_values($answer->{data} =~ m#<gen_info>(.*?)</gen_info>#);
}
return $answer;
lib/API/PleskExpand/Domains.pm view on Meta::CPAN
$VAR1 = bless( {
'answer_data' => [ {
'server_id' => '1',
'status' => 'ok',
'expiration' => '-1',
'tmpl_id' => '1',
'client_id' => '16',
'id' => '15'
} ],
'error_codes' => ''
}, 'API::Plesk::Response' );
=back
=head1 EXPORT
None.
=cut
lib/API/PleskExpand/Domains.pm view on Meta::CPAN
create_node( 'client_id', $params{client_id} ) .
create_node( 'status', 0)
) . $hosting_block . '<!-- create_domain -->' . $template_block
);
}
# Parse XML response
# STATIC
sub create_response_parse {
return abstract_parser('add_use_template', +shift, [ ], 'system_error' );
}
# Modify element
# STATIC
sub modify {
# stub
}
lib/API/PleskExpand/Domains.pm view on Meta::CPAN
return create_node( 'get',
create_node('filter', '') . create_node( 'dataset', create_node('gen_info') )
) . '<!-- create_domain -->';
}
# GET response handler
# STATIC
sub get_response_parse {
my $answer = abstract_parser('get', +shift, [ ], 'system_error' );
if (ref $answer eq 'ARRAY') {
for my $domain (@$answer) {
$domain->{data} = xml_extract_values($domain->{data} =~ m#<gen_info>(.*?)</gen_info>#);
}
} elsif ($answer) {
$answer->{data} = xml_extract_values($answer->{data} =~ m#<gen_info>(.*?)</gen_info>#);
}
return $answer;
':HTTP_AUTH_PASSWD' => $TestData::online_expand_valid_params{'password'},
':HTTP_AUTH_OP' => 'exp_plesk_client'
},
'exp_plesk_client'
);
$expand_client->{dump_headers} = 0;
my $req_answer1 = {
errtext => "[Operator] Client already exists. Plesk client 'hello_medved' is exist.",
server_id => 1,
status => 'error',
tmpl_id => 1,
expiration => -1,
errcode => 4203,
};
is_deeply(
API::PleskExpand::Accounts::create_response_parse( $_ ),
$req_answer1,
'create with error parser'
) for
'<?xml version="1.0" encoding="UTF-8" standalone="no" ?>' .
'<packet version="2.2.4.1"><add_use_template><result>' .
'<status>error</status><errcode>4203</errcode><errtext>' .
"[Operator] Client already exists. Plesk client 'hello_medved' " .
'is exist.</errtext><server_id>1</server_id><tmpl_id>1</tmpl_id>' .
'<expiration>-1</expiration></result></add_use_template></packet>';
is_deeply(
API::PleskExpand::Accounts::create_response_parse( $_ ),
{
'server_id' => '1',
'status' => 'ok',
'expiration' => '-1',
'tmpl_id' => '1',
'parse success add domain xml response')
for '<?xml version="1.0" encoding="UTF-8" standalone="no" ?><packet version="2.2.4.1">' .
'<add_use_template><result><status>ok</status><id>16</id><client_id>38</client_id>' .
'<server_id>1</server_id><tmpl_id>1</tmpl_id><expiration>-1</expiration></result></add_use_template></packet>';
is_deeply(
API::PleskExpand::Domains::create_response_parse( $_ ),
{
errtext => "[Operator] Domain already exists. Plesk domain 'yandex.ru' is exist.",
errcode => '4304',
status => 'error',
tmpl_id => 1,
expiration => -1,
client_id => 40,
server_id => 1,
},
'parse fail add domain xml response')
for '<?xml version="1.0" encoding="UTF-8" standalone="no" ?><packet version="2.2.4.1"><add_use_template>' .
'<result><status>error</status><errcode>4304</errcode><errtext>[Operator] Domain already exists.' .
" Plesk domain 'yandex.ru' is exist.</errtext><client_id>40</client_id><server_id>1</server_id>" .
'<tmpl_id>1</tmpl_id><expiration>-1</expiration></result></add_use_template></packet>';
is_string(
API::PleskExpand::Domains::get(all => 1),
'<get><filter></filter><dataset><gen_info/></dataset></get><!-- create_domain -->',
'Domains get'
);
} else {
fail "Remove account failed";
exit;
}
} else {
fail "Get plesk_id failed";
exit;
}
} else {
fail "Add domain failed! " . $create_domain->get_error_string;
exit;
}
} else {
fail "Activation failed!";
exit;
}
} else {
fail "Deactivation failed!";
exit;
}
} else {
fail $create_account_result->get_error_string;
exit;
}
( run in 1.464 second using v1.01-cache-2.11-cpan-49f99fa48dc )