function get_app($r)
{
    $name = (string) $r->batch->app_name;
    $app = BoincApp::lookup("name='{$name}'");
    if (!$app) {
        error("no app");
    }
    return $app;
}
Пример #2
0
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;
}
Пример #3
0
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");
        }
    }
}
Пример #4
0
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                &middot;\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                    &middot;\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 "&middot;\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();
}
Пример #5
0
    $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':
Пример #6
0
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();
}
Пример #7
0
}
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;