Incorrect search filter: invalid characters - *.p[ml]
API-Plesk

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

Revision history for Perl module API::Plesk.

2.03 2013-08-19

    - removed Try::Tiny
    - Changes was formated according to CPAN::Changes::Spec
    - fixed tests

2.02 2013-07-10

    - Added DNS zone SOA get (Jari Turkia)
    - Added secret key -based authentication (by Jari Turkia)
    - Fixed warning about uninitialized value
    - subdomain added (Zavarykin Eugeny)
    - is_connection_error modified (Zavarykin Eugeny)
    - fixed warning and bug (Eugen Konkov)
    - .gitignore (Akzhan Abdulin)
    - fixed bug (Ivan Shamal)

2.01 2012-06-25
    
    - Fixed tests

2.00 2012-06-25

    - Improved is_connection_error function
    - Added user component (bgmilne)
    - Added mock module for testing without sending requests to real api
    - Fixed bug in service_plan->get method

2.00_3 2011-08-01

    - Added site-alias component
    - Fixed add and set webspace
    - Added tests
    - Fixed site component
    - Added sitebuilder component
    - Added ftp-user component
    - Fixed hosting ftp_password bug
    - Added dns component 
    - Added mail component
    - Fixed is_connection_error function
    - Added set and del opetations to service-plan
    - Added test of service-plan component
    - Reformated Changes
    - Fixed Pod

2.00_2 2011-05-16
    
    - Fixed xml renderer

2.00_1 20 Apr 2011 10:52:43

    - Fully rewrited

Changes  view on Meta::CPAN


    - Add Mail/DB/DBUsers/Domains export from Plesk

1.08 2009-07-23

    - Patch from Nikolay Shulyakovskiy

1.07 2008-07-31

    - 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

1.02 2008-03-22

    - Fixed errors in pod documentation
    - Fixed bug with keys sorting in Methods.pm (thanks to CPAN testers)

1.01 2008-03-20

    - Fixed errors in pod documentation
    - Fixed bug in Tariff Plan Change sub (Complex.pm) 

1.00 2008-03-18

    - The first public release
    

lib/API/Plesk/Mock.pm  view on Meta::CPAN

}

sub xml_http_req { ($_[0]->{mock_response}, $_[0]->{mock_error}) }

1;

__END__

=head1 NAME

API::Plesk::Mock - Module for testing API::Plesk without sending real requests to Plesk API.

=head1 SYNOPSIS

    use API::Plesk::Mock;

    my $api = API::Plesk::Mock->new(
        username    => 'user', # required
        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,
    );
    $api->mock_response($some_response_xml);
    $api->mock_error($some_error_text);

=head1 DESCRIPTION

Module for testing API::Plesk without sending real requests to Plesk API.

=head1 METHODS

=over 3

=item mock_response($xml)

Sets response from Plesk API

=item mock_error($text)

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

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',
        # '___', error
        '123546',
        #'_sdad',
        'nrg.name',
        'test.code.google.com',
        'yet-another-test',
        (join q//, 'x' x 20),
        # '_(fsdf)_(fsadf)' error
    ],
    passwd => [
        'five!',
        (join q//, 'x' x 14),
        #'##$^$#&^%!@#$d',
        12314321,
        '_(sdf)%!Sas',
        gen_passwd(),

t/TestData.pm  view on Meta::CPAN

    my $client = shift;
    
    is_deeply( 
      $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';
    
    foreach my $key (keys %$template) {
        my $key_name_from;  # field name in response from Plesk
        my $key_name_to;    # field name  

t/compoment.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN {
    plan tests => 10;
    use_ok( 'API::Plesk::Component' );
}

my $c = API::Plesk::Component->new(
    plesk => API::Plesk->new(%TestData::plesk_valid_params)
);

eval {
    $c->check_required_params({ test => 123}, qw(test));
};
ok(!$@);

eval {
    $c->check_required_params({ test => 123, test2 => 123}, [qw(test ddd)]);
};
ok(!$@);

eval {
    $c->check_required_params({ test => 123}, qw(qqq));
};
like($@, qr/Required field qqq!/);

eval {
    $c->check_required_params({ test => 123}, [qw(qqq ff)]);
};
like($@, qr/Required any of this fields: qqq, ff!/);

is_deeply(
    $c->sort_params({key => 1, key2 => 2, key3 => 3, key4 => 4}, [qw(key3 key2)], 'key'),
    [
        {key3 => 3},
        {key  => 1},
    ]
);

t/customer.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN { 
    plan tests => 3;
    use_ok('API::Plesk::Customer'); 
}

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(

t/database.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

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
    ),
    {

t/dns.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN { 
    plan tests => 2;
    use_ok('API::Plesk::DNS'); 
}

my $api = API::Plesk->new( %TestData::plesk_valid_params );

isa_ok($api->dns, 'API::Plesk::DNS');

t/ftp_user.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN { 
    plan tests => 2;
    use_ok('API::Plesk::FTPUser'); 
}

my $api = API::Plesk->new( %TestData::plesk_valid_params );

isa_ok($api->ftp_user, 'API::Plesk::FTPUser');

t/mail.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN { 
    plan tests => 4;
    use_ok('API::Plesk::Mail'); 
}

my $api = API::Plesk->new( %TestData::plesk_valid_params );

isa_ok($api->mail, 'API::Plesk::Mail');

is_deeply(
    $api->mail->enable(
        site_id => 123,

t/mock.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib qw(t lib);
use TestData;

BEGIN {
    plan tests => 6;
    use_ok( 'API::Plesk::Mock' );
}

my $api = API::Plesk::Mock->new( %TestData::plesk_valid_params );

isa_ok( $api, 'API::Plesk::Mock', 'STATIC call new' );

$api->mock_response('some xml');
is($api->mock_response, 'some xml');

t/plesk.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib qw(t lib);
use TestData;

BEGIN {
    plan tests => 8;
}

BEGIN {
    use_ok( 'API::Plesk' );
}

my $api = API::Plesk->new( %TestData::plesk_valid_params );

isa_ok( $api, 'API::Plesk', 'STATIC call new' );

t/response.t  view on Meta::CPAN


use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;
use XML::Fast;

BEGIN { 
    plan tests => 17;

    use_ok('API::Plesk::Response'); 
}

isa_ok(
    API::Plesk::Response->new(
        operator  => 'customer',
        operation => 'get',
        response  => {}
    ),

t/response.t  view on Meta::CPAN

        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);

t/service-plan.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN { 
    plan tests => 5;
    use_ok('API::Plesk::ServicePlan'); 
}

my $api = API::Plesk->new( %TestData::plesk_valid_params );

isa_ok($api->service_plan, 'API::Plesk::ServicePlan');

is_deeply(
    $api->service_plan->set(
        filter => { name => '123' },

t/service-plan.t  view on Meta::CPAN

                    { ip_address => '123' },
                ]
            },
        },
    ],
    'set'
);

is_deeply(
    $api->service_plan->del(
        name      => 'test.ru',
        bulk_send => 1
    ),
    { 
        filter => {name => 'test.ru'},
    },
    'del'
);

is_deeply(
    $api->service_plan->get(
        filter => {
            name => 'Host-Lite',
        },
        'owner-id' => 123,

t/site-alias.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN { 
    plan tests => 5;
    use_ok('API::Plesk::SiteAlias'); 
}

my $api = API::Plesk->new( %TestData::plesk_valid_params );

isa_ok($api->site_alias, 'API::Plesk::SiteAlias');

is_deeply(
    $api->site_alias->create(
        'site-id' => 12345,

t/site-alias.t  view on Meta::CPAN

    ),
    { 
        'site-id' => 12345,
         name     => 'www.ru',
    },
    'create'
);

is_deeply(
    $api->site_alias->set(
        filter    => {'site-id' => 'test.ru'},
        settings  => { status => 1 },
        bulk_send => 1
    ),
    {
        filter   => {'site-id' => 'test.ru'},
        settings => { status => 1 },
    },
    'set'
);

is_deeply(
    $api->site_alias->del(
        'site-id' => 123,
        bulk_send => 1
    ),

t/site.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN { 
    plan tests => 5;
    use_ok('API::Plesk::Site'); 
}

my $api = API::Plesk->new( %TestData::plesk_valid_params );

isa_ok($api->site, 'API::Plesk::Site');

is_deeply(
    $api->site->add(
        gen_setup => {
            name => 'test.ru',
            'webspace-name' => 'main.ru',
        },
        hosting => {
            type => 'std_fwd',
            ip_address => '12.34.56.78',
            dest_url => 'fwd.ru',
        },
        bulk_send => 1
    ),
    [ 
        {gen_setup => [
            {name => 'test.ru'},
            {'webspace-name' => 'main.ru'},
        ]},
        {hosting => {
            std_fwd => {
                dest_url => 'fwd.ru',
                ip_address => '12.34.56.78',
            }
        }}

    ],
    'add'
);

is_deeply(
    $api->site->set(
        filter => {name => 'test.ru'},
        gen_setup => {
            name => 'test.ru',
        },
        hosting => {
            type => 'vrt_hst',
            ip_address => '12.34.56.78',
            ftp_login => 'qwerty',
            ftp_password => '12345',
            ip_address => '12.34.56.78',
        },
        bulk_send => 1
    ),
    {
        filter => {name => 'test.ru'},
        values => [
            {gen_setup => {
                name => 'test.ru',
            }},
            {hosting => {
                vrt_hst => [
                    { property => [
                        {name => 'ftp_login'},
                        {value => 'qwerty'}
                    ]},
                    { property => [
                        {name => 'ftp_password'},
                        {value => '12345'}

t/site.t  view on Meta::CPAN

                ]
            }}
        ]

    },
    'set'
);

is_deeply(
    $api->site->del(
        name      => 'test.ru',
        bulk_send => 1
    ),
    { 
        filter => {name => 'test.ru'},
    },
    'del'
);

t/sitebuilder.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN { 
    plan tests => 2;
    use_ok('API::Plesk::SiteBuilder'); 
}

my $api = API::Plesk->new( %TestData::plesk_valid_params );

isa_ok($api->sitebuilder, 'API::Plesk::SiteBuilder');

t/user.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN { 
    plan tests => 3;
    use_ok('API::Plesk::User'); 
}

my $api = API::Plesk->new( %TestData::plesk_valid_params );

my $users = $api->user;

isa_ok($users, 'API::Plesk::User');

is_deeply(

t/webspace.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN { 
    plan tests => 7;
    use_ok('API::Plesk::Webspace'); 
}

my $api = API::Plesk->new( %TestData::plesk_valid_params );

isa_ok($api->webspace, 'API::Plesk::Webspace');

is_deeply(
    $api->webspace->add(
        'plan-name' => '123',

t/webuser.t  view on Meta::CPAN

use warnings;

use Carp;
use Test::More;
use Data::Dumper;

use lib 't';
use TestData;

BEGIN { 
    plan tests => 2;
    use_ok('API::Plesk::WebUser'); 
}

my $api = API::Plesk->new( %TestData::plesk_valid_params );

isa_ok($api->webuser, 'API::Plesk::WebUser');



( run in 0.494 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )