.
#
# }}}
#
include("defs.php3");
#
# No PAGEHEADER since we spit out a Location header later. See below.
#
#
# Only known and logged in users can end experiments.
#
$this_user = CheckLoginOrDie();
$uid = $this_user->uid();
$isadmin = ISADMIN();
$idleswaptimeout = TBGetSiteVar("idle/threshold");
$autoswap_max = TBGetSiteVar("general/autoswap_max");
#
# Verify page arguments.
#
$reqargs = RequiredPageArguments("experiment", PAGEARG_EXPERIMENT);
$optargs = OptionalPageArguments("submit", PAGEARG_STRING,
"formfields", PAGEARG_ARRAY);
# Need below
$pid = $experiment->pid();
$eid = $experiment->eid();
#
# Verify Permission.
#
if (! $experiment->AccessCheck($this_user, $TB_EXPT_MODIFY)) {
USERERROR("You do not have permission to modify experiment $pid/$eid!", 1);
}
#
# Spit the form out using the array of data.
#
function SPITFORM($experiment, $formfields, $errors)
{
global $isadmin, $TBDOCBASE, $linktest_levels, $EXPOSELINKTEST;
global $WIKIDOCURL, $TBMAILADDR;
global $autoswap_max;
#
# Standard Testbed Header
#
PAGEHEADER("Edit Experiment Settings");
echo $experiment->PageHeader();
echo "
\n";
if ($errors) {
echo "
Oops, please fix the following errors! | |
---|---|
$name: | $message |
\n"; } # # Construct a defaults array based on current DB info. Used for the initial # form, and to determine if any changes were made. # $defaults = array(); $defaults["description"] = $experiment->description(); $defaults["lockdown"] = $experiment->lockdown(); $defaults["idle_ignore"] = $experiment->idle_ignore(); $defaults["batchmode"] = $experiment->batchmode(); $defaults["swappable"] = $experiment->swappable(); $defaults["noswap_reason"] = $experiment->noswap_reason(); $defaults["idleswap"] = $experiment->idleswap(); $defaults["idleswap_timeout"] = $experiment->idleswap_timeout() / 60.0; $defaults["noidleswap_reason"] = $experiment->noidleswap_reason(); $defaults["autoswap"] = $experiment->autoswap(); $defaults["autoswap_timeout"] = $experiment->autoswap_timeout() / 60.0; $defaults["savedisk"] = $experiment->savedisk(); $defaults["mem_usage"] = $experiment->mem_usage(); $defaults["cpu_usage"] = $experiment->cpu_usage(); $defaults["linktest_level"] = $experiment->linktest_level(); # # A couple of defaults for turning things on. # if (!$defaults["autoswap"]) { $defaults["autoswap_timeout"] = 10; } if (!$defaults["idleswap"]) { $defaults["idleswap_timeout"] = $idleswaptimeout; } # # On first load, display initial values and exit. # if (! isset($submit)) { SPITFORM($experiment, $defaults, 0); PAGEFOOTER(); return; } # # Build up argument array to pass along. # $args = array(); # Skip passing ones that are not changing from the default (DB state.) if (isset($formfields["description"]) && $formfields["description"] != "" && ($formfields["description"] != $experiment->description())) { $args["description"] = $formfields["description"]; } if ($isadmin) { # A couple of admin-only options. # Filter booleans from checkboxes to 0 or 1. $formfields["idle_ignore"] = (!isset($formfields["idle_ignore"]) || strcmp($formfields["idle_ignore"], "1")) ? 0 : 1; if ($formfields["idle_ignore"] != $experiment->idle_ignore()) { $args["idle_ignore"] = $formfields["idle_ignore"]; } $formfields["lockdown"] = (!isset($formfields["lockdown"]) || strcmp($formfields["lockdown"], "1")) ? 0 : 1; if ($formfields["lockdown"] != $experiment->lockdown()) { $args["lockdown"] = $formfields["lockdown"]; } $formfields["swappable"] = (!isset($formfields["swappable"]) || strcmp($formfields["swappable"], "1")) ? 0 : 1; if ($formfields["swappable"] != $experiment->swappable()) { $args["swappable"] = $formfields["swappable"]; } if (isset($formfields["noswap_reason"]) && $formfields["noswap_reason"] != "" && ($formfields["noswap_reason"] != $experiment->noswap_reason())) { $args["noswap_reason"] = $formfields["noswap_reason"]; } } $formfields["idleswap"] = (!isset($formfields["idleswap"]) || strcmp($formfields["idleswap"], "1")) ? 0 : 1; if ($formfields["idleswap"] != $experiment->idleswap()) { $args["idleswap"] = $formfields["idleswap"]; } # Note that timeouts are in hours in the UI, but in minutes in the DB. if (isset($formfields["idleswap_timeout"]) && $formfields["idleswap_timeout"] != "" && ($formfields["idleswap_timeout"] != $experiment->idleswap_timeout() / 60.0)) { $args["idleswap_timeout"] = $formfields["idleswap_timeout"]; } if (isset($formfields["noidleswap_reason"]) && $formfields["noidleswap_reason"] != "" && ($formfields["noidleswap_reason"] != $experiment->noidleswap_reason())) { $args["noidleswap_reason"] = $formfields["noidleswap_reason"]; } $formfields["autoswap"] = (!isset($formfields["autoswap"]) || strcmp($formfields["autoswap"], "1")) ? 0 : 1; if ($formfields["autoswap"] != $experiment->autoswap()) { $args["autoswap"] = $formfields["autoswap"]; } if (isset($formfields["autoswap_timeout"]) && $formfields["autoswap_timeout"] != "" && ($formfields["autoswap_timeout"] != $experiment->autoswap_timeout() / 60.0)) { $args["autoswap_timeout"] = $formfields["autoswap_timeout"]; } $formfields["savedisk"] = (!isset($formfields["savedisk"]) || strcmp($formfields["savedisk"], "1")) ? 0 : 1; if ($formfields["savedisk"] != $experiment->savedisk()) { $args["savedisk"] = $formfields["savedisk"]; } if (isset($formfields["cpu_usage"]) && $formfields["cpu_usage"] != "" && ($formfields["cpu_usage"] != $experiment->cpu_usage())) { $args["cpu_usage"] = $formfields["cpu_usage"]; } if (isset($formfields["mem_usage"]) && $formfields["mem_usage"] != "" && ($formfields["mem_usage"] != $experiment->mem_usage())) { $args["mem_usage"] = $formfields["mem_usage"]; } $formfields["batchmode"] = (!isset($formfields["batchmode"]) || strcmp($formfields["batchmode"], "1")) ? 0 : 1; if ($formfields["batchmode"] != $experiment->batchmode()) { $args["batchmode"] = $formfields["batchmode"]; } # Select defaults to "none" if not set. if (isset($formfields["linktest_level"]) && $formfields["linktest_level"] != "none" && $formfields["linktest_level"] != "" && ($formfields["linktest_level"] != $experiment->linktest_level())) { $args["linktest_level"] = $formfields["linktest_level"]; } $errors = array(); if (! ($result = Experiment::EditExp($experiment, $args, $errors))) { # Always respit the form so that the form fields are not lost. # I just hate it when that happens so lets not be guilty of it ourselves. SPITFORM($experiment, $formfields, $errors); PAGEFOOTER(); return; } # # Spit out a redirect so that the history does not include a post # in it. The back button skips over the post and to the form. # header("Location: " . CreateURL("showexp", $experiment)); ?>
- You may not turn off Maximum Duration, but you are allowed to change the the number of hours, up to $autoswap_max hours. Contact " . $TBMAILADDR . " if you need more time.