All new accounts created on Gitlab now require administrator approval. If you invite any collaborators, please let Flux staff know so they can approve the accounts.

Commit 970cc63b authored by Christopher Alfeld's avatar Christopher Alfeld

Added tb-set-node-failure-action support.

parent 63229185
......@@ -929,12 +929,13 @@ foreach $pnode (keys(%p2vmap)) {
foreach $pair (@nodepairs) {
($pnode,$vnode) = @$pair;
$sth = $dbh->prepare("SELECT osid,cmd_line,rpms,deltas,startupcmd," .
"tarfiles from virt_nodes where pid=\"$pid\"" .
"tarfiles,failureaction from virt_nodes" .
" where pid=\"$pid\"" .
" and eid=\"$eid\" and vname=\"$vnode\"");
$sth->execute;
# The if statement will cause us to skip nodes that belong to
# the experiment but aren't virtual. I.e. delay nodes.
if (($osid,$cmdline,$rpms,$deltas,$startupcmd,$tarfiles) =
if (($osid,$cmdline,$rpms,$deltas,$startupcmd,$tarfiles,$failureaction) =
$sth->fetchrow_array) {
if (! $dbh->do("UPDATE nodes set def_boot_osid=\"$osid\"," .
" def_boot_cmd_line=\"$cmdline\"," .
......@@ -944,7 +945,8 @@ foreach $pair (@nodepairs) {
" rpms=\"$rpms\"," .
" deltas=\"$deltas\"," .
" tarballs=\"$tarfiles\"," .
" startupcmd=\"$startupcmd\"" .
" startupcmd=\"$startupcmd\"," .
" failureaction=\"$failureaction\"" .
" where node_id=\"$pnode\"")) {
print STDERR "$0: *** Could not update nodes table." .
" Giving up.\n";
......
......@@ -40,6 +40,7 @@ Node instproc init {s} {
$self set startup ""
$self set deltas ""
$self set tarfiles ""
$self set failureaction "fatal"
}
# The following procs support renaming (see README)
......@@ -76,6 +77,7 @@ Node instproc updatedb {DB} {
$self instvar deltas
$self instvar iplist
$self instvar tarfiles
$self instvar failureaction
var_import ::GLOBALS::pid
var_import ::GLOBALS::eid
......@@ -96,7 +98,7 @@ Node instproc updatedb {DB} {
}
# Update the DB
sql exec $DB "insert into virt_nodes (pid,eid,vname,type,ips,osid,cmd_line,rpms,deltas,startupcmd,tarfiles) values (\"$pid\",\"$eid\",\"$self\",\"$type\",\"$ipraw\",\"$osid\",\"$cmdline\",\"$rpms\",\"$deltas\",\"$startup\",\"$tarfiles\")";
sql exec $DB "insert into virt_nodes (pid,eid,vname,type,ips,osid,cmd_line,rpms,deltas,startupcmd,tarfiles,failureaction) values (\"$pid\",\"$eid\",\"$self\",\"$type\",\"$ipraw\",\"$osid\",\"$cmdline\",\"$rpms\",\"$deltas\",\"$startup\",\"$tarfiles\",\"$failureaction\")";
}
# add_lanlink lanlink
......
......@@ -252,3 +252,15 @@ proc tb-set-node-lan-params {node lan delay bw loss} {
tb-set-node-lan-bandwidth $node $lan $bw
tb-set-node-lan-loss $node $lan $loss
}
proc tb-set-node-failure-action {node type} {
if {[$node info class] != "Node"} {
perror "\[tb-set-node-failure-action] $node is not a node."
return
}
if {[lsearch -exact {fatal nonfatal ignore} $type] == -1} {
perror "\[tb-set-node-failure-action] type must be one of fatal|nonfatal|ignore."
return
}
$node set failureaction $type
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment