public static function fillQueue($unit_id) { $retrigger = RetriggerController::fromUnit($unit_id); if (count($retrigger->tasks) == 0) { return false; } $start_time = $retrigger->enqueueRespectDelay(); $last_scheduled = $start_time < time() ? "UNIX_TIMESTAMP()" : $start_time; mysql_query("UPDATE control_tasks\n\t\t\t\t\t SET last_scheduled = " . $last_scheduled . "\n\t\t\t\t\t WHERE control_unit_id = {$unit_id}") or die(mysql_error()); return true; }
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ require_once "internals.php"; require_once "lib/RetriggerController.php"; require_once "lib/DB/TaskQueue.php"; require_once "lib/DB/QueuedTask.php"; require_once "lib/Slack.php"; init_database(); if ($unit = GET_int("unit")) { $queue = new TaskQueue($unit); if ($queue->has_active_task()) { Slack::log("requesting new task, while old task is still running!"); $task = $queue->get_active_task(); $task->reportError("Requested new task, while this task was still running."); } if (!$queue->has_queued_tasks()) { if (!RetriggerController::fillQueue($unit)) { die("No tasks to schedule"); } } $task = $queue->get_oldest_available_queued_task(); if (!$task) { echo json_encode(array("task" => "sleep 60", "id" => 0)); die; } $task->setStarted(); echo json_encode(array("task" => $task->task(), "id" => $task->id)); die; } else { if ($task_id = GET_int("finish")) { $task = new QueuedTask($task_id); $task->setFinished();
<?php /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ require_once "../internals.php"; require_once "../lib/RetriggerController.php"; init_database(); $postdata = file_get_contents("php://input"); $request = json_decode($postdata); $machine_id = (int) $request->machine_id; $mode_id = (int) $request->mode_id; $revision = $request->revision; $run_before_id = (int) $request->run_before_id; $run_after_id = (int) $request->run_after_id; $benchmarks = $request->benchmarks; $retrigger = RetriggerController::fromMachine($machine_id, $mode_id); $retrigger->convertToRevision($mode_id, $revision, $run_before_id, $run_after_id); $retrigger->selectBenchmarks($benchmarks); $retrigger->enqueueNow();
$single = false; } else { $ids[] = (int) $request->id; } $minimal = isset($request->minimal) ? !!$request->minimal : false; $data = array(); for ($i = 0; $i < count($ids); $i++) { $db_regression = Regression::FromId($ids[$i]); if (!$db_regression) { $data[] = array(); continue; } $db_build = $db_regression->build(); $db_run = $db_build->run(); $db_prev_build = $db_regression->prev_build(); $regression = array("id" => $db_regression->id, "machine" => $db_run->machine_id(), "mode" => $db_build->mode_id(), "stamp" => $db_run->finish_stamp(), "cset" => $db_build->revision(), "bug" => $db_regression->bug(), "status" => $db_regression->status(), "build_id" => $db_build->id, "detector" => $db_run->detector(), "run_id" => $db_run->id, "prev_run_id" => $db_prev_build->run_id(), "scores" => array(), "retriggerable" => RetriggerController::retriggerable($db_run->machine_id(), $db_build->mode_id())); $qScores = mysql_query("SELECT * FROM awfy_regression_score\n\t\t\t\t\t\t WHERE regression_id = '" . $regression["id"] . "'") or die(mysql_error()); while ($scores = mysql_fetch_assoc($qScores)) { $suite_version_id = get("score", $scores["score_id"], "suite_version_id"); $score = array("score_id" => $scores["score_id"], "suite_version" => $suite_version_id, "score" => get("score", $scores["score_id"], "score"), "noise" => $scores["noise"]); $qPrevScore = mysql_query("SELECT score\n\t\t\t\t\t\t\t\t FROM awfy_score\n\t\t\t\t\t\t\t\t WHERE build_id = " . $db_prev_build->id . " AND\n\t\t\t\t\t\t\t\t\t\t suite_version_id = " . $suite_version_id . "\n\t\t\t\t\t\t\t\t LIMIT 1") or die(mysql_error()); if (mysql_num_rows($qPrevScore) == 1) { $prevScore = mysql_fetch_assoc($qPrevScore); $score["prev_score"] = $prevScore["score"]; $score["prev_cset"] = $db_prev_build->revision(); } $regression["scores"][] = $score; } $qScores = mysql_query("SELECT * FROM awfy_regression_breakdown\n\t\t\t\t\t\t WHERE regression_id = '" . $db_regression->id . "'") or die(mysql_error()); while ($scores = mysql_fetch_assoc($qScores)) { $suite_test_id = get("breakdown", $scores["breakdown_id"], "suite_test_id");