#!/usr/bin/env perl

use strict;
use warnings;
use Inca::Reporter::SimpleUnit;

my $reporter = new Inca::Reporter::SimpleUnit(
  name => 'data.access.mysql.unit',
  description => 'Tries to connect to mysql  server and list databases',
  version => 5,
  unit_name => 'mysql connect'
);

$reporter->addArg( 'db', 'database that should be up' );
$reporter->processArgv(@ARGV);
my $db = $reporter->argValue( 'db' );

my @output = $reporter->loggedCommand("echo 'show databases' | mysql 2>&1");
my $joinedOut = join( "", @output );
$reporter->failPrintAndExit( "psql -l failed: $! $joinedOut" ) if $? != 0;
if( ! grep(/$db/, @output) ) {
  $reporter->unitFailure( "Failed to list databases: @output" );
} else {
  my @dbnames = map( /^\s*(\S+)/, @output );
  $reporter->log( 'info', "databases found: " . join(", ", @dbnames) );
  $reporter->unitSuccess();
}
$reporter->print();


Click here to see help information for the data.access.mysql.unit reporter.