@@ -1050,11 +1050,14 @@ END
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();
@@ -1063,11 +1066,11 @@ sub executive_resource_shared_mark_ready ($$$) {
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"
@@ -1092,9 +1095,9 @@ END
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");
}
}
@@ -352,8 +352,9 @@ sub gen_ether_offset ($$) { #method
}
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
@@ -3106,11 +3106,11 @@ sub sha256file ($;$) {
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 ($) {