|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [OSSTEST] ms-planner: add a flight summary html report
Ian Campbell writes ("[OSSTEST] ms-planner: add a flight summary html report"):
> I often find myself intested in when a given flight (or the current flight for
> a branch) will complete, which with the current resource plan means searching
> and cycling through trying to figure out which box ends the latest.
>
> Add an explicit flight status summary, which produces a table for each flight
> listing the jobs, there start and end times and the host they run on. The
> output is something like a list of these, ordered by flight number (rendered
> with links(1), header is bold):
>
> Flight 26043 [linux-3.4 real] 4 jobs expected to run until 2014-Apr-27 Sun
> 23:54:19
> build-amd64-pvops 2014-Apr-27 Sun 20:06:09
> 2014-Apr-27 Sun 21:21:23 host leaf-beetle
> build-i386-pvops 2014-Apr-27 Sun 21:20:15
> 2014-Apr-27 Sun 21:31:27 host grain-weevil
> build-amd64 2014-Apr-27 Sun 21:21:23
> 2014-Apr-27 Sun 21:44:22 host leaf-beetle
> build-i386 2014-Apr-27 Sun 22:18:43
> 2014-Apr-27 Sun 23:54:19 host field-cricket
>
> I renamed the existing show-html option to show-resource-plan-html for
> clarity.
Hrm.
I think this is a nice thing to have, but:
> + while (my ($reso,$evts) = each %{ $plan->{Events} }) {
> + # [osstest real] job 26010.test-amd64-amd64-xl-win7-amd64
> + foreach my $evt ( @{$evts} ) {
> + next unless $evt->{Type} =~ m/^(Start|End)$/;
> + next unless $evt->{Info} =~ m/^\[(\S+) (\S+)\] job ([0-9]+)\
\.(\S+) (.*)/;
This is rather a layering violation. Info is for the consumption of
humans. Perhaps the plan should have an explicit "flight.job" field.
You could compute the "[linux-3.4 real]" part by looking at the common
prefix of all the Infos.
Also, can you wrap everything to 75 or so ?
> + $flights{$flight}->{Jobs}{$job} = {
> + Reso => $reso
> + } unless $flights{$flight}->{Jobs}{$job};
This isn't right. A job can have more than one resource. You should
either list each resource as its own line, accumulate a list of
resources.
> + if ( $evt->{Time} > $flights{$flight}->{End} ) {
> + $flights{$flight}->{Last} = $evt;
> + $flights{$flight}->{LastReso} = $reso;
You don't seem to use LastReso and I can't seem to see why you'd want
it.
> + flight_hdr("Flight $flight [$inf->{Branch} $inf->{Blessing}] ".
> + (keys %{$inf->{Jobs}})." jobs ".
> + "expected to run until ".strftime("%Y-%b-%d %a %H:%M:%S"\
, localtime $inf->{End}));
You repeat the strftime rune many times. You should probably use
show_abs_time. (Which produces UTC. I see that ms-planner has a pair
of localtimes in it, which should perhaps be changed.)
> + foreach my $job (sort { $inf->{Jobs}{$a}->{Start}->{Time} cmp $\
inf->{Jobs}{$b}->{Start}->{Time} } keys %{ $inf->{Jobs} }) {
You repeat the $inf->{Jobs}{$x}->{Start}->{Time} expression. Make it
an anonymous subref or something and this will become much clearer.
And I think you should probably sort the jobs by end time, not start
time.
> + my $sevt = $inf->{Jobs}{$job}->{Start};
> + my $eevt = $inf->{Jobs}{$job}->{End};
> + print("<tr>\n");
> + cell($job);
> + cell(strftime("%Y-%b-%d %a %H:%M:%S", localtime $inf->{Jobs\
}{$job}->{Start}->{Time}));
> + cell(strftime("%Y-%b-%d %a %H:%M:%S", localtime $inf->{Jobs\
}{$job}->{End}->{Time}));
How about
foreach my $se (qw(Start End)) {
?
> diff --git a/ms-queuedaemon b/ms-queuedaemon
> index 26d83e2..a5bebd3 100755
> --- a/ms-queuedaemon
> +++ b/ms-queuedaemon
> @@ -224,12 +224,18 @@ proc queuerun-perhaps-step {} {
> proc report-plan {} {
> global c
> if {[catch {
> - exec ./ms-planner show-html > "$c(WebspaceFile)/resource-plan.html"
> + exec ./ms-planner show-resource-plan-html > "$c(WebspaceFile)/r\
esource-plan.html"
> } emsg]} {
> - log "INTERNAL ERROR showing plan html: $emsg"
> + log "INTERNAL ERROR showing resource plan html: $emsg"
> } else {
> log "report-plan OK"
> }
> + if {[catch {
> + exec ./ms-planner show-flight-summary-html > "$c(WebspaceFile)/\
flight-summary.html"
> + } emsg]} {
> + log "INTERNAL ERROR showing flight summary html: $emsg"
> + } else {
> + log "report-flight-summary OK"
Repetition.
Thanks,
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |