num_rows > 0) {
$result = $result->fetch_assoc();
$last_commit = $result["last_commit"];
}
$result = mysql_run_query(
"SELECT MAX(`build_assignments`.`return_date`) AS `last_return`" .
" FROM `build_assignments`"
);
if ($result -> num_rows > 0) {
$result = $result->fetch_assoc();
$last_return = $result["last_return"];
}
$result = mysql_run_query(
"SELECT MAX(`binary_packages_in_repositories`.`last_moved`) AS `last_moved`" .
" FROM `binary_packages`" .
mysql_join_binary_packages_binary_packages_in_repositories() .
mysql_join_binary_packages_build_assignments() .
" WHERE `binary_packages_in_repositories`.`last_moved`>`build_assignments`.`return_date`"
);
if ($result -> num_rows > 0) {
$result = $result->fetch_assoc();
$last_moved = $result["last_moved"];
}
$age_queries = array(
array(
"label" => "age of build-list-packages",
"column" => "`package_sources`.`commit_time`",
"table" =>
"`package_sources`" .
" JOIN (" .
"SELECT " .
"`build_assignments`.`package_source`" .
" FROM `build_assignments`" .
mysql_join_build_assignments_binary_packages() .
mysql_join_binary_packages_binary_packages_in_repositories() .
mysql_join_binary_packages_in_repositories_repositories() .
" WHERE `repositories`.`name`=\"build-list\"" .
" AND `build_assignments`.`is_blocked` IS NULL" .
" GROUP BY `build_assignments`.`package_source`" .
") AS `build_assignments_grouped`" .
" ON `build_assignments_grouped`.`package_source`=`package_sources`.`id`"
),
array(
"label" => "age of staging-packages",
"column" => "`binary_packages_in_repositories`.`first_last_moved`",
"table" =>
"`binary_packages`" .
" JOIN (" .
"SELECT " .
"`binary_packages_in_repositories`.`package`," .
"MIN(`binary_packages_in_repositories`.`last_moved`) AS `first_last_moved`" .
" FROM `binary_packages_in_repositories`" .
mysql_join_binary_packages_in_repositories_repositories() .
mysql_join_repositories_repository_stabilities() .
" WHERE `repository_stabilities`.`name`=\"staging\"" .
" GROUP BY `binary_packages_in_repositories`.`package`" .
") AS `binary_packages_in_repositories`" .
" ON `binary_packages_in_repositories`.`package`=`binary_packages`.`id`"
),
array(
"label" => "age of testing-packages",
"column" => "`binary_packages_in_repositories`.`first_last_moved`",
"table" =>
"`binary_packages`" .
" JOIN (" .
"SELECT " .
"`binary_packages_in_repositories`.`package`," .
"MIN(`binary_packages_in_repositories`.`last_moved`) AS `first_last_moved`" .
" FROM `binary_packages_in_repositories`" .
mysql_join_binary_packages_in_repositories_repositories() .
mysql_join_repositories_repository_stabilities() .
" WHERE `repository_stabilities`.`name`=\"testing\"" .
" GROUP BY `binary_packages_in_repositories`.`package`" .
") AS `binary_packages_in_repositories`" .
" ON `binary_packages_in_repositories`.`package`=`binary_packages`.`id`" .
" WHERE NOT `binary_packages`.`has_issues`" .
" AND NOT `binary_packages`.`is_tested`"
),
array(
"label" => "age of tested-packages",
"column" => "`binary_packages_in_repositories`.`first_last_moved`",
"table" =>
"`binary_packages`" .
" JOIN (" .
"SELECT " .
"`binary_packages_in_repositories`.`package`," .
"MIN(`binary_packages_in_repositories`.`last_moved`) AS `first_last_moved`" .
" FROM `binary_packages_in_repositories`" .
mysql_join_binary_packages_in_repositories_repositories() .
mysql_join_repositories_repository_stabilities() .
" WHERE `repository_stabilities`.`name`=\"testing\"" .
" GROUP BY `binary_packages_in_repositories`.`package`" .
") AS `binary_packages_in_repositories`" .
" ON `binary_packages_in_repositories`.`package`=`binary_packages`.`id`"
)
);
foreach ($age_queries as $age_query) {
$result = mysql_run_query(
"SELECT " .
"AVG(UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(" . $age_query["column"] . ")) AS `avg`," .
"STDDEV(UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(" . $age_query["column"] . ")) AS `stddev`" .
" FROM " . $age_query["table"]
);
if ($result -> num_rows > 0) {
$result = $result->fetch_assoc();
foreach ($result as $key => $val)
$ages[$age_query["label"]][$key] = format_time_duration($val);
};
};
print_header("Build Master Status");
if (isset($last_commit))
print " latest package source is from " . $last_commit . ".
\n";
if (isset($last_return))
print " latest built package is from " . $last_return . ".
\n";
if (isset($last_moved))
print " latest package move was on " . $last_moved . ".
\n";
foreach ($ages as $label => $value)
print " " . $label . ": " .
$value["avg"] . " ± " .
$value["stddev"] . ".
\n";
print_footer();