#
# 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
# $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};
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 $!;
$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 ($$) {