function get_app($r) { $name = (string) $r->batch->app_name; $app = BoincApp::lookup("name='{$name}'"); if (!$app) { error("no app"); } return $app; }
function get_submit_app($name) { $name = BoincDb::escape_string($name); $app = BoincApp::lookup("name='{$name}'"); if (!$app) { xml_error(-1, "BOINC server: no app named {$name} was found"); } return $app; }
function add_application() { global $app_name, $app_id, $platform; $app_name = "single_job_{$platform}"; $app = BoincApp::lookup("name='{$app_name}'"); if ($app) { $app_id = $app->id; } else { $now = time(); $app_id = BoincApp::insert("(create_time, name, user_friendly_name) values ({$now}, '{$app_name}','Jobs for {$platform}')"); if (!$app_id) { error("Couldn't add application"); } } }
function handle_main($user) { global $submit_urls; $user_submit = BoincUserSubmit::lookup_userid($user->id); if (!$user_submit) { error_page("Ask the project admins for permission to submit jobs"); } page_head("Job submission and control"); if (isset($submit_urls)) { // show links to per-app job submission pages // echo "<h2>Submit jobs</h2>\n <ul>\n "; foreach ($submit_urls as $appname => $submit_url) { $appname = BoincDb::escape_string($appname); $app = BoincApp::lookup("name='{$appname}'"); if (!$app) { error_page("bad submit_url name: {$appname}"); } $usa = BoincUserSubmitApp::lookup("user_id={$user->id} and app_id={$app->id}"); if ($usa || $user_submit->submit_all) { echo "<li> <a href={$submit_url}> {$app->user_friendly_name} </a>"; } } echo "</ul>\n"; } // show links to admin pages if relevant // $usas = BoincUserSubmitApp::enum("user_id={$user->id}"); $app_admin = false; foreach ($usas as $usa) { if ($usa->manage) { $app_admin = true; break; } } if ($user_submit->manage_all || $app_admin) { echo "<h2>Administrative functions</h2><ul>\n"; if ($user_submit->manage_all) { echo "<li>All applications<br>\n <a href=submit.php?action=admin&app_id=0>Batches</a>\n ·\n <a href=manage_project.php>Users</a>\n "; $apps = BoincApp::enum("deprecated=0"); foreach ($apps as $app) { echo "<li>{$app->user_friendly_name}<br>\n <a href=submit.php?action=admin&app_id={$app->id}>Batches</a>\n ·\n <a href=manage_app.php?app_id={$app->id}&action=app_version_form>Versions</a>\n "; } } else { foreach ($usas as $usa) { $app = BoincApp::lookup_id($usa->app_id); echo "<li>{$app->user_friendly_name}<br>\n <a href=submit.php?action=admin&app_id={$app->id}>Batches</a>\n "; if ($usa->manage) { echo "·\n <a href=manage_app.php?app_id={$app->id}&action=app_version_form>Versions</a>\n "; } } } echo "</ul>\n"; } $batches = BoincBatch::enum("user_id = {$user->id} order by id desc"); show_batches($batches, PAGE_SIZE, $user, null); page_tail(); }
$batch_id = BoincBatch::insert("(user_id, create_time, njobs, name, app_id, state) values ({$user->id}, {$now}, {$njobs}, '{$batch_name}', {$app->id}, " . BATCH_STATE_IN_PROGRESS . ")"); // $batch_id=99; $i = 0; foreach ($cmdlines as $cmdline) { if (preg_match("/^\\s*-var/", $cmdline)) { submit_job($app, $batch_id, $info, $cmdline, $i); $i++; } } } $user = get_logged_in_user(); $user_submit = BoincUserSubmit::lookup_userid($user->id); if (!$user_submit) { error_page("no submit access"); } $app = BoincApp::lookup("name='lammps'"); if (!$app) { error_page("no lammps app"); } if (!$user_submit->submit_all) { $usa = BoincUserSubmitApp::lookup("user_id={$user->id} and app_id={$app->id}"); if (!$usa) { error_page("no submit access"); } } $action = get_str('action', true); switch ($action) { case '': show_submit_form($user); break; case 'prepare':
function handle_main($user) { global $submit_urls; $user_submit = BoincUserSubmit::lookup_userid($user->id); if (!$user_submit) { error_page("Ask the project admins for permission to submit jobs"); } page_head("Job submission and control"); echo "<h2>Submit jobs</h2>\n <ul>\n "; $x = ""; foreach ($submit_urls as $appname => $submit_url) { $app = BoincApp::lookup("name='{$appname}'"); if (!$app) { error_page("bad submit_url name: {$appname}"); } $usa = BoincUserSubmitApp::lookup("user_id={$user->id} and app_id={$app->id}"); if ($usa || $user_submit->submit_all) { echo "<li> <a href={$submit_url}> {$app->user_friendly_name} </a>"; } if ($usa && $usa->manage) { $x .= "<li> <a href=submit.php?action=admin&app_id={$app->id}>{$app->user_friendly_name}</a>\n "; } } echo "</ul>"; if ($user_submit->manage_all || $x) { echo "<h2>Administer applications</h2>\n <ul>\n {$x}\n "; if ($user_submit->manage_all) { echo "<li><a href=submit.php?action=admin&app_id=0>All applications</a>"; } } echo "</ul>"; $batches = BoincBatch::enum("user_id = {$user->id} order by id desc"); show_batches($batches); page_tail(); }
} if (!$r) { error("can't parse request message"); } // authenticate the user // $auth = (string) $r->auth; $user = BoincUser::lookup("authenticator='{$auth}'"); if (!$user) { error("invalid authenticator"); } $user_submit = BoincUserSubmit::lookup_userid($user->id); if (!$user_submit) { error("no submit access"); } $app = BoincApp::lookup("name='{$app_name}'"); if (!$app) { error("no tree_threader app"); } if (!$user_submit->submit_all) { $usa = BoincUserSubmitApp::lookup("user_id={$user->id} and app_id={$app->id}"); if (!$usa) { error("no submit access"); } } switch ((string) $r->action) { case 'submit': handle_submit($r, $user, $app); break; case 'get_output': $batch_id = (int) $r->batch_id;