Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

NetIQ Report Parser

by JSchmitz (Canon)
on Mar 09, 2006 at 18:28 UTC ( #535462=sourcecode: print w/ replies, xml ) Need Help??

Category: HTML utility
Author/Contact Info JefferySchmitz@mac.com
Description: This is a script that uses the HTML::TableExtract module that Mojotoad wrote. It is very handy for stripping out just the error messages in NetIQ reports for emailing them out. Matt helped me with this a lot so I have to give him props for this one.
#!/usr/bin/perl -w

use LWP::Simple;
use HTML::TableExtract;

my $html_report;
# replace this with LWP::Simple get() or somesuch
# for fetching main report
open(F, "<Report.htm") or die "oof: $!\n";
$html_report = join('', <F>);
close(F);

foreach my $row (rows_from_main_report($html_report)) {
  next unless $row->[1] =~ /failed/i;
  my($link) = $row->[2] =~ /href\s*\=\s*\"?([^\"]+)/;
  unless ($link) {
    print STDERR "no link from row ($row->[2])\n";
    next;
  }
  print "$link\n";
  my $html = get($link);
  unless ($html) {
    print STDERR "no html from link $link\n";
    next;
  }
  print "$link\n";
  foreach my $row (rows_from_fail_report($html)) {
    # do whatever here
    print join(' : ', @$row), "\n";
  }
}

sub rows_from_main_report {
  my $html = shift || die "HTML string required\n";
  my $te = HTML::TableExtract->new(
    headers   => [qw(computer data time)],
    keep_html => 1,
  );
  $te->parse($html_report);
  my $ts = $te->first_table_state_found;
  $ts->rows;
}

sub rows_from_fail_report {
  my $html = shift || die "HTML string required\n";
  my $te = HTML::TableExtract->new(
    headers => [qw(job date client class schedule master desc)],
  );
  $te->parse($html);
  my $ts = $te->first_table_state_found;
  $ts->rows;
}


Comment on NetIQ Report Parser
Download Code

Back to Code Catacombs

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://535462]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (7)
As of 2014-12-28 04:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (178 votes), past polls