API-ISPManager

 view release on metacpan or  search on metacpan

add_database.pl  view on Meta::CPAN

use Data::Dumper;
use API::ISPManager;

#
# Script for add databases account to certain user account in ISPManager
#

die "Params required: host / username / password / db_name / db_user / db_password\n" unless scalar @ARGV == 6;

my $host     = $ARGV[0];
my $login    = $ARGV[1];
my $password = $ARGV[2];
my $db_name  = $ARGV[3];
my $db_user  = $ARGV[4];
my $db_pass  = $ARGV[5];

$API::ISPManager::DEBUG = '';

my %connection_params = (
    username => $login,
    password => $password,
    host     => $host,
    path     => 'manager',
);


my $db_creation_result = API::ISPManager::db::create( {
    %connection_params,
    name        => $db_name,
    dbtype      => 'MySQL',

add_mailbox.pl  view on Meta::CPAN

use Data::Dumper;
use API::ISPManager;

#
# Script for add mail account to certain mail-domain in ISPManager
#

die "Params required: host / username / password / mailbox_name / password\n" unless scalar @ARGV == 5;

my $host          = $ARGV[0];
my $login         = $ARGV[1];
my $password      = $ARGV[2];
my $mailbox_name  = $ARGV[3];
my $mailbox_pass  = $ARGV[4];

my @raw_mail = split '@', $mailbox_name;

my $name   = $raw_mail[0];
my $domain = $raw_mail[1];

$API::ISPManager::DEBUG = '';

my %connection_params = (
    username => $login,
    password => $password,
    host     => $host,
    path     => 'manager',
);


my $mailbox_creation_result = API::ISPManager::mailbox::create( {
    %connection_params,
    quota   => 0,
    name    => $name,   

add_www_domain.pl  view on Meta::CPAN

use Data::Dumper;
use API::ISPManager;

#
# Script for add www domains to certain user account in ISPManager
#

die "Params required: host / username / password / domain / docroot\n" unless scalar @ARGV == 5;

my $host     = $ARGV[0];
my $login    = $ARGV[1];
my $password = $ARGV[2];
my $domain   = $ARGV[3];
my $docroot  = $ARGV[4];
my $email    = '';
my $ip       = `/usr/bin/host -t A $host | head -1 | awk '{print \$4}'`;
chomp $ip;

unless ($ip && $ip =~ m/\d+\.\d+\.\d+\.\d+/) {
    die "Get ip failed!\n";
}

$API::ISPManager::DEBUG = '';

my %connection_params = (
    username => $login,
    password => $password,
    host     => $host,
    path     => 'manager',
);

my $user_params = API::ISPManager::misc::usrparam( { %connection_params } );
$email = $user_params->{email};
die "Cannot get user email from panel!\n" unless $email;

my $domain_creation_result = API::ISPManager::domain::create( {
    %connection_params,
    domain  => $domain,
    alias   => "www.$domain",
    owner   => $login,
    admin   => $email,
    ip      => $ip,
    ssi     => 'on',
    php     => 'phpfcgi',
    ssl     => 'on',
    sslport => 443,
    docroot => $docroot,
} );

if ($domain_creation_result) {

lib/API/ISPManager.pm  view on Meta::CPAN


 unless ($ip_list && ref $ip_list eq 'ARRAY' && scalar @$ip_list) {
    die 'Cannot get ip list from ISP';
 }

 my $ip  = $ip_list->[0];
 my $dname  = 'perlaround.ru';

 my $client_creation_result = API::ISPManager::user::create( {
    %{ $connection_params },
    name      => 'user_login',
    passwd    => 'user_password',
    ip        => '11.11.22.33', 
    preset    => 'template_name',
    domain    => $dname,
 });

 # Switch off account:
 my $suspend_result = API::ISPManager::user::disable( {
    %{ $connection_params },
    elid => $use_login,
 } );

 unless ( $suspend_result ) {
    die "Cannot  suspend account";
 }



 # Switch on account
 my $resume_result = API::ISPManager::user::enable( {
    %{ $connection_params },
    elid => $user_login,
 } );

 unless ( $resume_result ) {
    die "Cannot  suspend account";
 }



 # Delete account
 my $delete_result = API::ISPManager::user::delete( {
    %{ $connection_params },
    elid => $login,
 } );

 unless ( $delete_result ) {
    die "Cannot delete account";
 }


=cut

# Last raw answer from server 

t/01-test.t  view on Meta::CPAN

    'db list test'
);

### Databases end


### DB users

my $fake_db_user = <<DOC;
<?xml version="1.0" encoding="UTF-8"?>
<doc><plid>MySQL-&gt;blog</plid><elem><name>blog</name><read/><write/><manage/></elem></doc>
DOC

is_deeply(
    API::ISPManager::db_user::list( { %correct_params, elid => 'MySQL->blog' }, $fake_db_user ), {
        'data' => {
            'read' => {},
            'name' => 'blog',
            'manage' => {},
            'write' => {}
        }
    },
    'test db_user'
);


### DB users end

upload_file.pl  view on Meta::CPAN

use Data::Dumper;
use API::ISPManager;

#
# Script for add mail account to certain mail-domain in ISPManager
#

die "Params required: host / username / password / filename /path\n" unless scalar @ARGV == 5;

my $host          = $ARGV[0];
my $login         = $ARGV[1];
my $password      = $ARGV[2];
my $filename      = $ARGV[3];
my $plid          = $ARGV[4];


$API::ISPManager::DEBUG = 1;

my %connection_params = (
    username => $login,
    password => $password,
    host     => $host,
    path     => 'manager',
);


my $upload_result = API::ISPManager::file::upload( {
    %connection_params,
    plid => $plid,
    file => $filename,



( run in 1.154 second using v1.01-cache-2.11-cpan-49f99fa48dc )