return $shared;
}
-sub executive_resource_shared_mark_ready ($$$) {
- my ($restype, $resname, $sharetype) = @_;
+sub executive_resource_shared_mark_ready ($$$;$$) {
+ my ($restype, $resname, $sharetype, $oldstate, $newstate) = @_;
# must run outside transaction
my $oldshr;
+ $oldstate //= 'prep';
+ $newstate //= 'ready';
+
my $what= "resource $restype $resname";
$sharetype .= ' '.get_harness_rev();
if (defined $oldshr) {
die "$what shared $oldshr->{Type} not $sharetype"
unless $oldshr->{Type} eq $sharetype;
- die "$what shared state $oldshr->{State} not prep"
- unless $oldshr->{State} eq 'prep';
- my $nrows= $dbh_tests->do(<<END,{}, $restype,$resname,$sharetype);
+ die "$what shared state $oldshr->{State} not $oldstate"
+ unless $oldshr->{State} eq $oldstate;
+ my $nrows= $dbh_tests->do(<<END,{}, $newstate, $restype,$resname,$sharetype);
UPDATE resource_sharing
- SET state='ready'
+ SET state=?
WHERE restype=? AND resname=? AND sharetype=?
END
die "unexpected not updated state $what $sharetype $nrows"
logm("post-mark-ready queue daemon prod failed: $@");
}
if ($oldshr) {
- logm("$restype $resname shared $sharetype marked ready");
+ logm("$restype $resname shared $sharetype marked $newstate");
} else {
- logm("$restype $resname (not shared, $sharetype) is ready");
+ logm("$restype $resname (not shared, $sharetype) is $newstate");
}
}
}
sub jobdb_resource_shared_mark_ready { #method
- my ($mo, $restype, $resname, $sharetype) = @_;
- executive_resource_shared_mark_ready($restype, $resname, $sharetype);
+ my ($mo, $restype, $resname, $sharetype, $oldstate, $newstate) = @_;
+ executive_resource_shared_mark_ready
+ ($restype, $resname, $sharetype, $oldstate,$newstate);
}
sub jobdb_check_other_job { #method
return $truncate ? substr($digest, 0, $truncate) : $digest;
}
-sub host_shared_mark_ready($$) {
- my ($ho,$sharetype) = @_;
+sub host_shared_mark_ready($$;$$) {
+ my ($ho,$sharetype, $oldstate, $newstate) = @_;
$mjobdb->jobdb_resource_shared_mark_ready('host', $ho->{Name},
- $sharetype);
+ $sharetype, $oldstate, $newstate);
}
sub gitcache_setup ($) {