[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [OSSTEST PATCH 21/26] sg-run-job: Provide infrastructure for layers of nesting



> -----Original Message-----
> From: Ian Jackson [mailto:ian.jackson@xxxxxxxxxxxxx]
> Sent: Saturday, September 26, 2015 3:15 AM
> To: xen-devel@xxxxxxxxxxxxxxxxxxxx
> Cc: Hu, Robert <robert.hu@xxxxxxxxx>; Ian Campbell
> <ian.campbell@xxxxxxxxxx>; Ian Jackson <ian.jackson@xxxxxxxxxxxxx>; Ian
> Jackson <Ian.Jackson@xxxxxxxxxxxxx>
> Subject: [OSSTEST PATCH 21/26] sg-run-job: Provide infrastructure for layers
> of nesting
> 
> Provides nested-layer-descend, which can be called in an individual
> test job at the appropriate point (after the L1 has been set up).
> 
> The inner host is a guest of the outer host; powering it off means
> destroying it.  Putting the poweroff at this point in the loop, rather
> than in per-host-finish, avoids powering off physical servers.  The
> use of `.'  rather than `!.' for iffail means we do not power off
> after failures (as we might want to preserve the state for debugging
> etc).
> 
> Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
> Tested-by: Robert Ho <robert.hu@xxxxxxxxx>
> Signed-off-by: Robert Ho <robert.hu@xxxxxxxxx>
> ---
> v14: Squash syntax fix from Robert Ho into this patch
> ---
>  sg-run-job |   21 ++++++++++++++++++++-
>  1 file changed, 20 insertions(+), 1 deletion(-)
> 
> diff --git a/sg-run-job b/sg-run-job
> index 884a21d..8174ef7 100755
> --- a/sg-run-job
> +++ b/sg-run-job
> @@ -39,6 +39,7 @@ proc per-host-finish {} {
> 
>  proc run-job {job} {
>      global jobinfo builds flight ok need_xen_hosts anyfailed
> +    global nested_layers_hosts
> 
>      set ok 1
>      set anyfailed 0
> @@ -52,6 +53,7 @@ proc run-job {job} {
>          set need_xen_hosts $nh
>          set need_build_host 0
>      }
> +    set nested_layers_hosts {}
> 
>      catching-otherwise blocked            check-not-blocked
>      if {!$ok} return
> @@ -70,7 +72,15 @@ proc run-job {job} {
> 
>      if {$ok} { catching-otherwise fail
> run-job/$jobinfo(recipe)      }
> 
> -    per-host-finish
> +    while 1 {
> +     per-host-finish
> +
> +     if {![llength $nested_layers_hosts]} break
> +
> +     per-host-ts . = final-poweroff {ts-host-powercycle --power=0}
[Hu, Robert] 

I guess here is a unnecessary '='. Just guess, I don't manage to comprehend
the Tcl part.

> +
> +        set need_xen_hosts [lunappend nested_layers_hosts]
> +    }
> 
>      if {$need_build_host && $anyfailed} {
>       run-ts  !broken capture-logs      ts-logs-capture + host
> @@ -247,6 +257,15 @@ proc per-host-ts {iffail ident script args} {
>      }
>  }
> 
> +proc nested-layer-descend {nested_hosts} {
> +    # We save need_xen_hosts on a stack in nested_layers_hosts
> +    # It gets popped again during the cleanup part of run-job
> +    global nested_layers_hosts need_xen_hosts
> +    lappend nested_layers_hosts $need_xen_hosts
> +    set need_xen_hosts $nested_hosts
> +    per-host-prep
> +}
> +
>  #---------- test recipes ----------
> 
>  proc need-hosts/test-debian-nomigr {} { return host }
> --
> 1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.