API-ISPManager
view release on metacpan or search on metacpan
lib/API/ISPManager.pm view on Meta::CPAN
$ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
# Don`t working without this string!
my $response = $ua->get($query_string);
if ($response->is_success) {
my $content = $response->content;
if ($response->header('content-type') eq 'text/xml') {
# allow only XML answers
if ($content && $content =~ /^<\?xml version="\d\.\d" encoding="UTF-8"\?>/s) {
warn $content if $DEBUG;
return $content;
} else {
return '';
}
} else {
return '';
}
} else {
return '';
t/01-test.t view on Meta::CPAN
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
is_deeply( API::ISPManager::services::get( { %correct_params }, $fake_services ), {
'data' => {
'FTP' => {
'count' => '1',
'proc' => 'proftpd',
'autostart' => {},
'active' => {}
t/01-test.t view on Meta::CPAN
},
'services test'
);
### Services end
### Databases
my $fake_db = <<DOC;
<?xml version="1.0" encoding="UTF-8"?>
<doc><elem><dbkey>MySQL->bt</dbkey><dbtype>MySQL</dbtype><name>bt</name><dbuser>bt</dbuser><owner>bt</owner><size>0.055</size></elem><elem><dbkey>MySQL->howtouse</dbkey><dbtype>MySQL</dbtype><name>howtouse</name><dbuser>howtouse</dbuser><owner>...
DOC
is_deeply( API::ISPManager::db::list( { %correct_params } , $fake_db ), {
'data' => {
'kapella2' => {
'owner' => 'kolian',
'dbuser' => 'datakapella2',
'dbtype' => 'MySQL',
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->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' => {}
t/01-test.t view on Meta::CPAN
},
'test db_user'
);
### DB users end
### Stats
my $fake_sysinfo = <<DOC;
<?xml version="1.0" encoding="UTF-8"?>
<doc><elem><name>cpu</name><value>AMD Athlon(tm) 64 Processor 3700+ 2199.744 Mhz X 2</value></elem><elem><name>mem</name><value>393364 kB</value></elem><elem><name>swap</name><value>999992 kB</value></elem><elem><name>disk</name><value>49385 Mb</valu...
DOC
is_deeply( API::ISPManager::stat::sysinfo( { %correct_params }, $fake_sysinfo ), {
'data' => {
'proc' => '88',
'disk' => '49385 Mb',
'cpu' => 'AMD Athlon(tm) 64 Processor 3700+ 2199.744 Mhz X 2',
'avg' => '1.39 0.96 0.89',
'uptime' => '55 days 14 hours 5 minutes',
'swap' => '999992 kB',
'mem' => '393364 kB',
}
},
'sysinfo test'
);
my $fake_usagestat = <<DOC;
<?xml version="1.0" encoding="UTF-8"?>
<doc><elem><name>disk</name><value used="1817" limit="4950"/></elem><elem><name>reseller</name><value used="1" limit="0"/></elem><elem><name>user</name><value used="20" limit="0"/></elem><elem><name>bandwidth</name><value used="8170" limit="170000000...
DOC
is_deeply( API::ISPManager::stat::usagestat( { %correct_params }, $fake_usagestat ), {
'data' => {
'ftpuser' => {
'used' => '20',
'limit' => '70220'
},
'disk' => {
( run in 1.172 second using v1.01-cache-2.11-cpan-49f99fa48dc )