ASNMTAP
view release on metacpan or search on metacpan
applications/htmlroot/cgi-bin/moderator/generateCollectorCrontabSchedulingReport.pl view on Meta::CPAN
my $tmon = $uKeys{$uKey}->{lineNumbers}->{$lineNumber}->{monthOfTheYear};
my $twday = $uKeys{$uKey}->{lineNumbers}->{$lineNumber}->{dayOfTheWeek};
my ($doIt, $doOffline) = set_doIt_and_doOffline ($min, $hour, $mday, $mon, $wday, $tmin, $thour, $tmday, $tmon, $twday);
if ($doIt || $doOffline) {
if ($doIt) {
$insertStatus = $ERRORS{UNKNOWN};
} elsif ($doOffline) {
if ($noOFFLINE) {
if ($noOFFLINE eq "noOFFLINE") {
$insertStatus = $ERRORS{DEPENDENT} unless ( defined $insertStatus );
} elsif ($noOFFLINE eq 'multiOFFLINE') {
$insertStatus = $ERRORS{OFFLINE} unless ( defined $insertStatus );
} elsif ($noOFFLINE eq 'noTEST') {
$insertStatus = $ERRORS{'NO TEST'} unless ( defined $insertStatus );
}
} else {
$insertStatus = $ERRORS{OFFLINE} unless ( defined $insertStatus );
}
}
}
}
if (defined $insertStatus) {
# the color for each crontab bar
push (@colorsCrontab, $COLORSRRD{$STATE{$insertStatus}});
# the color for each timeslot bar
push (@colorsTimeslot, $COLORSRRD{'IN PROGRESS'});
# the data points for each test result matching the corresponding label
push (@dataPoints, $uKeys{$uKey}->{numberOfLabel});
my $endpointCurrentTimeslot = $currentDate + ($stepValue[$uKeys{$uKey}->{numberOfLabel}] * 60);
my $restCurrentTimeslot = ($currentTimeslot eq 'off' and $endpointCurrentTimeslot > $sqlEndDate) ? $sqlEndDate : $endpointCurrentTimeslot;
# the timeslot start dates and end dates for the tasks
push (@crontabStartDate, perlchartdir::chartTime2($currentDate));
push (@crontabEndDate, perlchartdir::chartTime2($currentDate + $step));
push (@crontabEndTimeslot, perlchartdir::chartTime2($restCurrentTimeslot));
}
}
}
}
}
}
} else {
$hight = $hightMin; $errorMessage = "PROBLEM REGARDING FINDING MASTER OR SLAVE";
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# calculatie hight
$hight += ($labelOffset * $numberOfLabels) if (defined $numberOfLabels);
$hight = $hightMin if ($hight < $hightMin);
# Create XYChart object with: width, hight, backgroundcolor, bordercolor, pxp-3d borden
my $c = new XYChart($width, $hight, $background, $background, 1);
# Add a title box to the chart using 10 pts Arial Bold Italic font.
$chartTitle = "Error for '$chartTitle'" unless ( defined $chartTitle and $rv );
$c->addText($width/2, 14, $chartTitle, "arialbi.ttf", 10, $forGround, 5, 0);
# Add debugMessage and errorMessage
$c->addText($width - 18, $hight - 33, $debugMessage, "arial.ttf", 8, $forGround, 6, 0) if ( defined $debugMessage );
$c->addText($width/2, (($hight - $yOffset - $AreaBOffset)/2) + $yOffset + 16, $errorMessage, "arial.ttf", 12, 0xFF0000, 5, 0) if ( defined $errorMessage );
$c->addText($width/2, (($hight - $yOffset - $AreaBOffset)/2) + $yOffset - 16, $dbiErrorCode, "arial.ttf", 10, 0xFF0000, 5, 0) if ( defined $dbiErrorCode );
$c->addText($width/2, (($hight - $yOffset - $AreaBOffset)/2) + $yOffset + 48, $dbiErrorString, "arial.ttf", 10, 0xFF0000, 5, 0) if ( defined $dbiErrorString );
# Add a custom CDML text at the bottom right of the plot area as the logo
$c->addText($width - 3, 92, $APPLICATION . " @ " . $BUSINESS, "arial.ttf", 8, $forGround, 6, 270);
$c->addText($width - 18, $hight - 18, $DEPARTMENT . " @ " . $BUSINESS . ", created on: " . scalar(localtime()) . ".", "arial.ttf", 8, $forGround, 6, 0);
unless ( defined $errorMessage or defined $dbiErrorCode or defined $dbiErrorString ) {
# Set the plotarea at (xOffset, yOffset) and of size ($width - $xOffset - 21) x ($hight - $AreaBOffset) pixels, with white background. Set border and grid line colors to 0xa08040.
$c->setPlotArea($xOffset, $yOffset, $width - $xOffset - 21, $hight - $AreaBOffset, 0xffffff, 0xeeeeee, $axisColor, 0xCCCCCC, 0xCCCCCC)->setGridWidth(1, 1, 1, 1);
# swap the x and y axes to create a horziontal box-whisker chart
$c->swapXY();
# Set the axes width to 1 pixels
$c->xAxis()->setWidth(1);
$c->yAxis()->setWidth(1);
# Set the axis colors
$c->xAxis()->setColors($axisColor);
$c->yAxis()->setColors($axisColor);
# Set the y-axis scale to be hh:nn
$c->yAxis()->setDateScale3("{value|hh:nn}");
$c->yAxis()->setLabelStyle("tahoma.ttf", 8, $forGround);
# Set the y-axis to shown on the top (right + swapXY = top)
$c->setYAxisOnRight();
# Set the labels on the x axis
$c->xAxis()->setLabels(\@labels);
$c->xAxis()->setLabelStyle("tahoma.ttf", 8, $forGround);
# Reverse the x-axis scale so that it points downwards.
$c->xAxis()->setReverse();
# Set the horizontal ticks and grid lines to be between the bars
$c->xAxis()->setTickOffset(0.5);
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Add a box-whisker layer to represent the timeslot schedule date
my $crontabLayer = $c->addBoxWhiskerLayer2(\@crontabStartDate, \@crontabEndDate, undef, undef, undef, \@colorsCrontab, 0);
$crontabLayer->setXData(\@dataPoints);
# Set the bar height to 10 pixels so they will not block the bottom bar
$crontabLayer->setDataWidth(10);
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Add a box-whisker layer to represent the crontab timeslot schedule date
my $timeslotLayer = $c->addBoxWhiskerLayer2(\@crontabEndDate, \@crontabEndTimeslot, undef, undef, undef, \@colorsTimeslot, 0);
$timeslotLayer->setXData(\@dataPoints);
( run in 1.863 second using v1.01-cache-2.11-cpan-98e64b0badf )