From: František Dvořák Date: Mon, 26 Nov 2012 22:00:23 +0000 (+0100) Subject: Support double upgrades (from Zdenek). X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=229482fed01b897900299e66c8046d5204484ff4;p=meta-dashboard.git Support double upgrades (from Zdenek). --- diff --git a/dashboard.pl b/dashboard.pl index 6b19c1a..13ca3c7 100755 --- a/dashboard.pl +++ b/dashboard.pl @@ -4,11 +4,17 @@ use POSIX qw(strftime); my ($list, @list, %list, $item, @item, %item, $result, %platforms, %components, %ins, %upg, $now, $n_platforms, $width); my (%list_perf); - +my ($doubledistupgrades, $distupgrades, $upgrades, $installs ); +my ($colsforeach); $list=`ls -1 | egrep '^(gridsite|lb|px|canl)'`; @list=split /\n/, $list; +$doubledistupgrades = 0; +$distupgrades = 0; +$upgrades = 0; +$installs = 0; + #$list{install} = (); #$list{upgrade} = (); foreach my $i (0..$#list) { @@ -32,11 +38,12 @@ foreach my $i (0..$#list) { close FH; chomp; if (/perf/i) { $scen = $_; } - elsif (/^upgrade/i or /major upgrade/i) { $scen = 'distupgrade'; } - elsif (/^minor upgrade/i) { $scen = 'upgrade'; } + elsif (/^double/i) { $scen = 'doubledistupgrade'; $doubledistupgrades=1; } + elsif (/^upgrade/i or /major upgrade/i) { $scen = 'distupgrade'; $distupgrades=1; } + elsif (/^minor upgrade/i) { $scen = 'upgrade'; $upgrades=1; } elsif (/build/i) { $scen = 'build'; } - } + if ($scen eq 'install') { $installs=1; } $plat = "$item[1]-$item[2]"; #printf STDERR "$date, $scen, $item[0], $plat\n"; @@ -61,21 +68,23 @@ foreach my $s (keys %list) { #printf STDERR "$item->{component}, $item->{platform}\n"; undef $result; if (-f "$item->{dir}/report.twiki") { - my ($section, $err, $yaim_used, $yaim_finished); + my ($section, $err, $yaim_used, $yaim_finished, $missing_deps); `grep -- 'TESTS END HERE' $item->{dir}/report.twiki >/dev/null 2>&1`; $section=$?; `grep -- 'Installed YAIM versions' $item->{dir}/report.twiki >/dev/null 2>&1`; $yaim_used=$?; `grep -- 'YAIM terminated succesfully' $item->{dir}/report.twiki >/dev/null 2>&1`; $yaim_finished=$?; + $missing_deps=`grep -- 'Missing Dependency:' $item->{dir}/report.twiki 2>/dev/null| wc -l | sed 's/ *//g'`; `grep -- 'ERROR:' $item->{dir}/report.twiki >/dev/null 2>&1`; $err=$?; -#printf STDERR " sec: $section, err: $err\n"; - if ($section == 0 && ($yaim_used != 0 || $yaim_finished == 0)) { +printf STDERR " sec: $section, err: $err, missing_deps: $missing_deps\n"; + if ($section == 0 && $missing_deps == 0 && ($yaim_used != 0 || $yaim_finished == 0)) { $result=`grep -- '-TEST FAILED-' $item->{dir}/report.twiki 2>/dev/null| wc -l | sed 's/ *//g'`; chomp $result; } else { - if ($section == 0) { $result = 'Deploy Fail'; } + if ($missing_deps != 0 ) { $result = "$missing_deps missing deps"; } + elsif ($section == 0) { $result = "Deploy Fail $missing_deps"; } else { $result = 'TestSuite Fail'; } } } else { undef $result; } @@ -96,7 +105,7 @@ foreach my $s (keys %list) { } $item->{result2} = defined $result ? $result : '-'; -#print STDERR "$item->{dir}: $item->{result}, $item->{result2}\n"; +print STDERR "$item->{dir}: $item->{result}, $item->{result2}\n"; } } } @@ -147,24 +156,27 @@ print qq( a:hover {color:#333333;} a:active {color:#222222;} table.main {border:none;} - table.cert {border:1px solid black; border-collapse:collapse; text-align:center; width:1024px; table-layout:fixed;} + table.cert {border:1px solid black; border-collapse:collapse; text-align:center; width:1280px; table-layout:fixed;} th.cert, td.cert {border:0px solid black; text-align:center; padding:5px;} .scen {font-size:small; font-style:italic; background-color: #eeeeee; } .prod {font-family:sans-serif; font-size:large; font-weight:bold; background-color: #eeeeee} .OK {border:1px solid black; text-align:center;background-color: #90f3a5;} .DistOK {border:1px solid black; text-align:center;background-color: #a4f584;} + .DblDistOK {border:1px solid black; text-align:center;background-color: #c3f88b;} .FAIL {border:1px solid black; text-align:center;background-color: #ff4c4c;} .DistFAIL {border:1px solid black; text-align:center;background-color: #fd6f3c;} + .DblDistFAIL {border:1px solid black; text-align:center;background-color: #fda05c;} .NA {border:1px solid black; text-align:center;background-color: #ffffff;} .date {font-size:xx-small; color: #404040;} .platf{font-family:sans-serif; font-size:smaller; border:1px solid black; text-align:center;background-color: #eeeeee;} .comment {font-size:small;margin:0px 0px 0px 0px;} p.comment {margin:15px 0px 0px 0px;} p.modified {margin:0px 0px 0px 0px;} - table.modified {border:0px none; width:1024px;} + table.modified {border:0px none; width:1280px;} td.modified {font-size:small; border:0px none; float:right; text-align: right;} td.thanks {font-size:small; border:0px none; text-align: right;} td.heading {font-size:xx-large; font-family:sans-serif; font-weight:bold; border: 0px none; float:left; text-align:left; white-space:nowrap;} + td.message {font-weight:bold; border: 0px none; float:left; text-align:left;} img { border:0px; } @@ -192,77 +204,110 @@ print qq( my $pout; my ($classi, $classu); + # Count hown many columns there will be for each product: + if ( $installs ) { $colsforeach++; } + if ( $upgrades ) { $colsforeach++; } + if ( $distupgrades ) { $colsforeach++; } + if ( $doubledistupgrades ) { $colsforeach++; } print qq( ); foreach my $c (sort keys %components) { - print " \n"; + print " \n"; } print " \n"; print " \n"; print " \n"; foreach my $c (sort keys %components) { - print " \n"; - print " \n"; - print " \n"; + if ( $installs ) { print " \n"; } + if ( $upgrades ) { print " \n"; } + if ( $distupgrades ) { print " \n"; } + if ( $doubledistupgrades ) { print " \n"; } } + + print " \n"; foreach my $p (sort keys %platforms) { $pout=$p; $pout =~ s/-/
/; print " \n \n"; foreach my $c (sort keys %components) { - $item = $list{install}{$c}{$p}; - if (defined $item) { - if ($item->{result} eq '0') { - $class='OK'; - $result="OK"; } - else { - $class='FAIL'; - if ( $item->{result} eq '1' ) { $result="$item->{result} error"; } - elsif ($item->{result} =~ /^[0-9]+$/) { $result="$item->{result} tests failed"; } - else { $result = "$item->{result}"; } + if ( $installs ) { + $item = $list{install}{$c}{$p}; + if (defined $item) { + if ($item->{result} eq '0') { + $class='OK'; + $result="OK"; } + else { + $class='FAIL'; + if ( $item->{result} eq '1' ) { $result="$item->{result} error"; } + elsif ($item->{result} =~ /^[0-9]+$/) { $result="$item->{result} tests failed"; } + else { $result = "$item->{result}"; } + } + + print " \n"; + } else { + print " \n" } - - print " \n"; - } else { - print " \n" } - $item = $list{upgrade}{$c}{$p}; - if (defined $item) { - if ($item->{result} eq '0') { - $class='OK'; - $result="OK"; } - else { - $class='FAIL'; - if ( $item->{result} eq '1' ) { $result="$item->{result} error"; } - elsif ($item->{result} =~ /^[0-9]+$/) { $result="$item->{result} tests failed"; } - else { $result = "$item->{result}"; } + if ( $upgrades ) { + $item = $list{upgrade}{$c}{$p}; + if (defined $item) { + if ($item->{result} eq '0') { + $class='OK'; + $result="OK"; } + else { + $class='FAIL'; + if ( $item->{result} eq '1' ) { $result="$item->{result} error"; } + elsif ($item->{result} =~ /^[0-9]+$/) { $result="$item->{result} tests failed"; } + else { $result = "$item->{result}"; } + } + + print " \n"; + } else { + print " \n" } - - print " \n"; - } else { - print " \n" } - $item = $list{distupgrade}{$c}{$p}; - if (defined $item) { - if ($item->{result} eq '0') { - $class='DistOK'; - $result="OK"; } - else { - $class='DistFAIL'; - if ( $item->{result} eq '1' ) { $result="$item->{result} error"; } - elsif ($item->{result} =~ /^[0-9]+$/) { $result="$item->{result} tests failed"; } - else { $result = "$item->{result}"; } + if ( $distupgrades ) { + $item = $list{distupgrade}{$c}{$p}; + if (defined $item) { + if ($item->{result} eq '0') { + $class='DistOK'; + $result="OK"; } + else { + $class='DistFAIL'; + if ( $item->{result} eq '1' ) { $result="$item->{result} error"; } + elsif ($item->{result} =~ /^[0-9]+$/) { $result="$item->{result} tests failed"; } + else { $result = "$item->{result}"; } + } + + print " \n"; + } else { + print " \n" } + } - print " \n"; - } else { - print " \n" + if ( $doubledistupgrades ) { + $item = $list{doubledistupgrade}{$c}{$p}; + if (defined $item) { + if ($item->{result} eq '0') { + $class='DblDistOK'; + $result="OK"; } + else { + $class='DblDistFAIL'; + if ( $item->{result} eq '1' ) { $result="$item->{result} error"; } + elsif ($item->{result} =~ /^[0-9]+$/) { $result="$item->{result} tests failed"; } + else { $result = "$item->{result}"; } + } + + print " \n"; + } else { + print " \n" + } } } print " \n"; @@ -270,12 +315,25 @@ print qq( print "
$fancy{$c}$fancy{$c}
PlatformInstallUpgradeDist
Upgrade
InstallUpgradeDist
Upgrade
Dbl. Dist
Upgrade
$pout$item->{date}
{dir}/\">$result
 
 
$item->{date}
{dir}/\">$result
 
 
$item->{date}
{dir}/\">$result
 
 
$item->{date}
{dir}/\">$result
 
 
$item->{date}
{dir}/\">$result
 
 
$item->{date}
{dir}/\">$result
 
 
$item->{date}
{dir}/\">$result
 
 
\n\n"; } +my $excls; + +if ( $colsforeach != 4 ) { + $excls = "There are"; + if ( $installs == 0 ) { $excls = "$excls no installs," } + if ( $upgrades == 0 ) { $excls = "$excls no minor upgrades," } + if ( $distupgrades == 0 ) { $excls = "$excls no dist upgrades," } + if ( $doubledistupgrades == 0 ) { $excls = "$excls no double dist upgrades," } + my $semicol = rindex ($excls, ","); + $excls = substr($excls, 0, $semicol); + $excls = "$excls."; +} + print qq{ - + $excls
Last Modified: $nowLast Modified: $now