view release on metacpan or search on metacpan
add_database.pl view on Meta::CPAN
use strict;
use warnings;
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',
dbencoding => 'default',
dbuser => 'newuser',
dbusername => $db_user,
dbpassword => $db_pass,
dbconfirm => $db_pass,
} );
if ($db_creation_result) {
print "$db_name success added!\n";
} else {
warn Dumper($API::ISPManager::last_answer);
}
add_mailbox.pl view on Meta::CPAN
use strict;
use warnings;
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,
domain => $domain,
add_www_domain.pl view on Meta::CPAN
use strict;
use warnings;
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,
lib/API/ISPManager.pm view on Meta::CPAN
=head1 NAME
API::ISPManager - interface to the ISPManager Hosting Panel API ( http://ispsystem.com )
=head1 SYNOPSIS
use API::ISPManager;
my $connection_params = {
username => 'username',
password => 'qwerty',
host => '11.22.33.44',
path => 'manager',
};
### Get all panel IP
my $ip_list = API::ISPManager::ip::list( $connection_params );
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,
} );
lib/API/ISPManager.pm view on Meta::CPAN
}
return $new_hash;
}
# Get access key, time to live -- 30 minutes
# STATIC(HASHREF: params_hash)
# params_hash:
# - all elements from mk_full_query_string +
# - username*
# - password*
sub get_auth_id {
my %params_raw = @_;
warn 'get_auth_id params: ' . Dumper(\%params_raw) if $DEBUG;
my $params = filter_hash(
\%params_raw,
[ 'host', 'path', 'allow_http', 'username', 'password' ]
);
# Check this sub params
unless ($params->{username} && $params->{password}) {
return '';
}
my $query_string = mk_full_query_string( {
%$params,
func => 'auth',
out => 'xml',
} );
lib/API/ISPManager/db.pm view on Meta::CPAN
return $server_answer;
}
sub create {
my $params = shift;
my $result = API::ISPManager::query_abstract(
params => { %$params, sok => 'yes' },
func => 'db.edit',
allowed_fields => [ qw( host path allow_http sok name dbtype owner dbencoding dbuser dbusername dbpassword dbconfirm dbuserhost ) ],
);
$API::ISPManager::last_answer = $result;
if ($result && $result->{ok}) {
return 1;
} else {
return '';
}
}
runtests.sh view on Meta::CPAN
#!/bin/bash
./add_database.pl server5.hosting.reg.ru user_0000434578 oBffquIb db_name111 db_usersss45555 pass
#./add_www_domain.pl server5.hosting.reg.ru user_0000434578 oBffquIb suxx777.us
#./add_mailbox.pl server5.hosting.reg.ru user_0000434578 oBffquIb t1est@server6-host1.regrutestuser.ru qqqq
exit 0
perl -Ilib ./vdsmanager.pl --host=127.0.0.1 --username=admin --password=qqqq \
--nodeid=1 --vpspassword=qwerty --owner=admin --preset=OVZ-1 --os=centos-5-x86_64 \
--name=mymegavps7.ru
t/01-test.t view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
our $ONLINE;
BEGIN {
$ONLINE = $ENV{password};
}
use Test::More tests => $ONLINE ? 42 : 40;
my $test_host = $ENV{host} || 'ultrasam.ru';
ok(1, 'Test OK');
use_ok('API::ISPManager');
$a = 'refs';
t/01-test.t view on Meta::CPAN
"https://$test_host/manager/ispmgr?param1=val1¶m2=val2",
$a
);
$a = 'mk_query_to_server';
is( API::ISPManager::mk_query_to_server( '' ), '', $a );
my %correct_params = (
username => $ENV{username} || 'root',
password => $ENV{password},
host => $test_host,
path => 'manager',
);
### Services
my $fake_services = <<DOC;
<?xml version="1.0" encoding="UTF-8"?>
<doc><elem><name>HTTP</name><proc>apache2</proc><autostart/><count>33</count><active/></elem><elem><name>FTP</name><proc>proftpd</proc><autostart/><count>1</count><active/></elem><elem><name>DNS</name><proc>named</proc><autostart/><count>1</count><ac...
DOC
t/01-test.t view on Meta::CPAN
$API::ISPManager::DEBUG = 0;
### ONLINE TESTS
exit if !$ONLINE;
$a = 'get_auth_id';
is( get_auth_id(
username => 'root',
password => 'qwerty',
host => $test_host,
path => 'manager',
),
'',
"$a with error password"
);
my $auth_id;
like( $auth_id = get_auth_id(
username => $ENV{username} || 'root',
password => $ENV{password},
host => $test_host,
path => 'manager',
),
qr/\d+/,
"$a with correct password ($auth_id)"
);
=head
is(
scalar keys %{ API::ISPManager::user::list( { %correct_params } )->{elem} },
20,
'user::list test'
);
t/01-test.t view on Meta::CPAN
%correct_params,
name => 'nrgxxxxxapi',
passwd => 'qwerty',
ip => $ip,
preset => 'Host-1',
domain => 'nrg.name',
} ) );
diag Dumper( API::ISPManager::ftp::list( {
%correct_params,
authinfo => 'username:password',
su => 'su_as_username',
} ) );
diag Dumper( API::ISPManager::user::disable( {
%correct_params,
elid => 'nrgxxxxxapi',
} ) );
t/02-files.t view on Meta::CPAN
use strict;
use warnings;
use Data::Dumper;
our $ONLINE;
BEGIN {
$ONLINE = $ENV{host} && $ENV{user} && $ENV{password};
}
use Test::More tests => $ONLINE ? 10 : 2;
my $test_host = $ENV{host};
my $test_user = $ENV{user};
my $test_password = $ENV{password};
ok(1, 'Test OK');
use_ok('API::ISPManager');
no warnings 'once';
$API::ISPManager::DEBUG = 0;
### ONLINE TESTS
exit if !$ONLINE;
my %connection_params = (
username => $test_user,
password => $test_password,
host => $test_host,
path => 'manager',
);
# Ïîëó÷åíèå ñïèñêà ôàéëîâ
my $file_list_answer = API::ISPManager::file::list( { %connection_params } );
ok($file_list_answer, 'file list');
my @original_file_list = get_file_list('', '');
# Ñîçäàíèå ôàéëà
upload_file.pl view on Meta::CPAN
use strict;
use warnings;
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,
} );
vdsmanager.pl view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use API::ISPManager;
use Data::Dumper;
use Getopt::Long;
my ($username, $password, $host);
my ($var_node_id, $name, $vps_password, $os, $owner, $preset);
my $result = GetOptions (
'username=s' => \$username,
'password=s' => \$password,
'host=s' => \$host,
'nodeid=s' => \$var_node_id,
'vpspassword=s' => \$vps_password,
'owner=s' => \$owner,
'preset=s' => \$preset,
'os=s' => \$os,
'name=s' => \$name,
);
die 'Required command line parameter missing!' unless $result;
# ÐонÑигÑÑаÑÐ¸Ñ ÑкÑипÑа
my $connection_params = {
username => $username,
password => $password,
host => $host,
path => 'manager/vdsmgr',
};
#
# name => 'mymegavps6.ru', # ÑÑÑ Ñ
оÑÐµÑ Ð´Ð¾Ð¼ÐµÐ½ÐºÑ Ð¸ ниÑего дÑÑгого
# password => 'qwerty',
# os => 'centos-5-x86_64',
# owner => 'admin',
# preset => 'OVZ-1',
# node_id => '1', # Ð½Ð¾Ð¼ÐµÑ ÐодÑ
#
# Создаем ÐÐС
# ÐобавиÑÑ Ð°Ð²ÑоÑоÑмиÑование veid
# N -- Ð½Ð¾Ð¼ÐµÑ Ð²Ð¿Ñа
# N001, N002, N003.... N999
# пÑоÑÑо пеÑедаем паÑамеÑÑом Ð½Ð¾Ð¼ÐµÑ Ð¸ вÑе, оÑделÑнÑй паÑамеÑÑ ÐºÐ°Ðº и паÑÐ¾Ð»Ñ Ð¸ вÑе Ñакое
my $create_result = create_vps(
name => $name, # ÑÑÑ Ñ
оÑÐµÑ Ð´Ð¾Ð¼ÐµÐ½ÐºÑ Ð¸ ниÑего дÑÑгого
password => $vps_password,
os => $os,
owner => $owner,
preset => $preset,
node_id => $var_node_id, # Ð½Ð¾Ð¼ÐµÑ ÐодÑ
);
### warn Dumper($create_result);
if ( $create_result && $create_result->{ok} && $create_result->{ip} && $create_result->{veid} ) {
print "$create_result->{ip}|$create_result->{veid}\n";
vdsmanager.pl view on Meta::CPAN
} else {
return "${node_id}001"; # ÑÑо пеÑвÑй впÑ
}
}
# Создаем ÐÐС
sub create_vps {
my %params = @_;
my $all_params_ok =
$params{password} &&
$params{os} &&
$params{owner} &&
$params{preset} &&
$params{node_id};
unless ($all_params_ok) {
warn "Required parameter missing!\n";
return '';
}
vdsmanager.pl view on Meta::CPAN
my $vps_name = $params{name}; # ÑÑÑ Ñ
оÑÐµÑ Ð´Ð¾Ð¼ÐµÐ½ÐºÑ Ð¸ ниÑего дÑÑгого
unless ($vps_name) {
$vps_name = "ovz${veid}.fastvps.ru"
}
# ÐÑи паÑамеÑÑÑ Ð¿Ð¾ÐºÐ° пÑовеÑÑÑÑ Ð½Ðµ бÑдем
my $server_password = $params{password};
my $owner = $params{owner};
my $create_vps_result = API::ISPManager::vds::create( {
%$connection_params,
name => $vps_name,
id => $veid,
passwd => $server_password,
confirm => $server_password,
owner => $owner,
vdspreset => $vps_preset,
disktempl => $disk_preset,
%$vps_preset_details, # паÑамеÑÑÑ ÐÐС ÑаÑиÑа
} );
if ($create_vps_result && ref $create_vps_result eq 'HASH' ) {
return {
%$create_vps_result,