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-&gt;bt</dbkey><dbtype>MySQL</dbtype><name>bt</name><dbuser>bt</dbuser><owner>bt</owner><size>0.055</size></elem><elem><dbkey>MySQL-&gt;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-&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' => {}

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 )