[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 04/21] alloc_resources: Support special abandonment values
This gives a way for the caller's $resourcecall to signal something interesting, back to its main loop. This is useful for calling broken, for example: that can't be done within $resourcecall because $resourcecall operates within the allocation db transaction (which ought to be rolled back...) Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> --- Osstest/Executive.pm | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Osstest/Executive.pm b/Osstest/Executive.pm index 0d8502b5..b27b8d25 100644 --- a/Osstest/Executive.pm +++ b/Osstest/Executive.pm @@ -737,7 +737,8 @@ sub alloc_resources { # # values of $ok # 0 rollback, wait and try again - # 1 commit, completed ok + # 1 commit, completed ok } return the + # >1 rollback and abandon } value of $ok # $bookinglist should be undef or a hash for making a booking # # $resourcecall should not look at tasks.live @@ -859,10 +860,14 @@ sub alloc_resources { # $resourcecall itself failed: bomb out (don't retry) $ok=-1; } - return db_retry_abort() unless $ok>0; + return db_retry_abort() unless $ok==1; }]); - if ($bookinglist && $ok!=-1) { + if ($ok<0 || $ok>1) { + return 1; + } + + if ($bookinglist) { my %prstart; foreach my $book (@{ $bookinglist->{Bookings} }) { my $pr = $book->{Reso}; @@ -890,8 +895,6 @@ sub alloc_resources { if ($ok==1) { print $qserv "thought-done\n" or die $!; - } elsif ($ok<0) { - return 1; } else { # 0 logm("resource allocation: deferring"); print $qserv "thought-wait\n" or die $!; @@ -935,8 +938,12 @@ END $ok= 0; } } - die unless $ok==1; - logm("resource allocation: successful."); + if ($ok==1) { + logm("resource allocation: successful."); + } else { + logm("resource allocation: resourcecall returned ($ok,...)"); + } + return $ok; } sub resource_check_allocated ($$) { -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |