aon_offline.pl
use strict;
use LWP::UserAgent;
use XML::DOM;
#------ parameters ------
my $dbsecret = "dbsecret";
my $address = "1.2.3.4";
my $user = "user1";
my $pwd = "user1";
my $server = "http://127.0.0.1:7615/xmlmsg";
#------ body ------
my $from = "0";
my $dom_parser = new XML::DOM::Parser;
my $ua = LWP::UserAgent->new;
sub nodeValue {
my($elm,$value) = @_;
return $elm->getElementsByTagName($value)->item(0)->getFirstChild->getNodeValue();
}
while (1) {
my $out = '';
$out .= <<EOF
<module secret="$dbsecret" name="ISL_ALWAYSON">
<user address="$address" username="$user" password="$pwd"/>
<list>
<cgi>
<prop name="search_form">true</prop>
<prop name="aonlist_count">100</prop>
<prop name="aonlist_from">$from</prop>
<prop name="search_desc"></prop>
<prop name="search_tag"></prop>
</cgi>
</list>
</module>
EOF
;
my $req = HTTP::Request->new(POST => $server);
$req->content_type('text/xml');
$req->content($out);
my $res = $ua->request($req);
my $dom = $dom_parser->parse($res->content);
my @comps =$dom->getElementsByTagName('computer');
if (scalar(@comps) == 0) {
exit;
}
$from += scalar(@comps);
foreach my $comp (@comps) {
my $status = nodeValue($comp, 'status');
if ($status eq 'offline') {
print nodeValue($comp, 'address') . " ";
print nodeValue($comp, 'description') . "\n";
}
}