API-ISPManager
view release on metacpan or search on metacpan
lib/API/ISPManager.pm view on Meta::CPAN
use XML::Simple;
use Data::Dumper;
# Main packages
use API::ISPManager::ip;
use API::ISPManager::user;
use API::ISPManager::domain;
use API::ISPManager::mailbox;
# Addition packages
use API::ISPManager::backup;
use API::ISPManager::db;
use API::ISPManager::preset;
use API::ISPManager::stat;
use API::ISPManager::services;
use API::ISPManager::ftp;
use API::ISPManager::misc;
use API::ISPManager::file;
# VDSManager
use API::ISPManager::vds;
use API::ISPManager::diskpreset;
use API::ISPManager::vdspreset;
# BillManager
use API::ISPManager::software;
use API::ISPManager::order;
our @EXPORT = qw/get_auth_id refs is_success get_data query_abstract is_ok get_error/;
our @EXPORT_OK = qw//;
our $VERSION = 0.07;
our $DEBUG = '';
=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,
} );
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
our $last_answer = '';
# Public!
sub is_ok {
my $answer = shift;
return '' unless $answer && ref $answer eq 'HASH' && $answer->{success};
}
sub get_error {
my $answer = shift;
return '' if is_ok($answer); # ok == no error
return Dumper( $answer->{error} );
}
# Get data from @_
sub get_params {
my @params = @_;
if (scalar @params == 1 && ref $params[0] eq 'HASH' ) {
return { %{ $params[0] } };
} else {
return { @params };
}
}
# Make query string
# STATIC(HASHREF: params)
sub mk_query_string {
my $params = shift;
return '' unless $params &&
ref $params eq 'HASH' && %$params ;
my $result = join '&', map { "$_=$params->{$_}" } sort keys %$params;
warn $result if $DEBUG;
return $result;
}
# Kill slashes at start / end string
# STATIC(STRING:input_string)
sub kill_start_end_slashes {
my $str = shift;
for ($str) {
s/^\/+//sgi;
( run in 1.185 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )