// only admin $xml = begin_XML_for_XSLT(); $xml .= '<backurl>user.php</backurl>'; $xml .= '<title>CDash - Sites Statistics</title>'; $xml .= '<menutitle>CDash</menutitle>'; $xml .= '<menusubtitle>Site Statistics</menusubtitle>'; if ($CDASH_DB_TYPE == 'pgsql') { $query = pdo_query("SELECT siteid,sitename, SUM(elapsed) AS busytime FROM\n (\n SELECT site.id AS siteid,site.name AS sitename, project.name AS projectname, build.name AS buildname, build.type,\n AVG(submittime - buildupdate.starttime) AS elapsed\n FROM build, build2update, buildupdate, project, site\n WHERE\n submittime > NOW()- interval '168 hours'\n AND build2update.buildid = build.id\n AND buildupdate.id = build2update.updateid\n AND site.id = build.siteid\n AND build.projectid = project.id\n GROUP BY sitename,projectname,buildname,build.type,site.id\n ORDER BY elapsed DESC\n )\n AS summary\n GROUP BY sitename,summary.siteid\n ORDER BY busytime DESC\n "); } else { $query = pdo_query('SELECT siteid,sitename, SEC_TO_TIME(SUM(elapsed)) AS busytime FROM ( SELECT site.id AS siteid,site.name AS sitename, project.name AS projectname, build.name AS buildname, build.type, AVG(TIME_TO_SEC(TIMEDIFF(submittime, buildupdate.starttime))) AS elapsed FROM build, build2update, buildupdate, project, site WHERE submittime > TIMESTAMPADD(' . qiv('HOUR') . ', -168, NOW()) AND build2update.buildid = build.id AND buildupdate.id = build2update.updateid AND site.id = build.siteid AND build.projectid = project.id GROUP BY sitename,projectname,buildname,build.type ORDER BY elapsed DESC ) AS summary GROUP BY sitename ORDER BY busytime DESC '); } echo pdo_error(); while ($query_array = pdo_fetch_array($query)) { $xml .= '<site>';
include "cdash/version.php"; if ($session_OK) { include_once 'cdash/common.php'; include_once "cdash/ctestparser.php"; $db = pdo_connect("{$CDASH_DB_HOST}", "{$CDASH_DB_LOGIN}", "{$CDASH_DB_PASS}"); pdo_select_db("{$CDASH_DB_NAME}", $db); checkUserPolicy(@$_SESSION['cdash']['loginid'], 0); // only admin $xml = begin_XML_for_XSLT(); $xml .= "<backurl>user.php</backurl>"; $xml .= "<title>CDash - Sites Statistics</title>"; $xml .= "<menutitle>CDash</menutitle>"; $xml .= "<menusubtitle>Site Statistics</menusubtitle>"; if ($CDASH_DB_TYPE == "pgsql") { $query = pdo_query("SELECT siteid,sitename, SUM(elapsed) AS busytime FROM\n (\n SELECT site.id AS siteid,site.name AS sitename, project.name AS projectname, build.name AS buildname, build.type,\n AVG(submittime - buildupdate.starttime) AS elapsed\n FROM build, build2update, buildupdate, project, site\n WHERE\n submittime > NOW()- interval '168 hours'\n AND build2update.buildid = build.id\n AND buildupdate.id = build2update.updateid\n AND site.id = build.siteid\n AND build.projectid = project.id\n GROUP BY sitename,projectname,buildname,build.type,site.id\n ORDER BY elapsed DESC\n )\n AS summary\n GROUP BY sitename,summary.siteid\n ORDER BY busytime DESC\n "); } else { $query = pdo_query("SELECT siteid,sitename, SEC_TO_TIME(SUM(elapsed)) AS busytime FROM\n (\n SELECT site.id AS siteid,site.name AS sitename, project.name AS projectname, build.name AS buildname, build.type,\n AVG(TIME_TO_SEC(TIMEDIFF(submittime, buildupdate.starttime))) AS elapsed\n FROM build, build2update, buildupdate, project, site\n WHERE\n submittime > TIMESTAMPADD(" . qiv("HOUR") . ", -168, NOW())\n AND build2update.buildid = build.id\n AND buildupdate.id = build2update.updateid\n AND site.id = build.siteid\n AND build.projectid = project.id\n GROUP BY sitename,projectname,buildname,build.type\n ORDER BY elapsed DESC\n )\n AS summary\n GROUP BY sitename\n ORDER BY busytime DESC\n "); } echo pdo_error(); while ($query_array = pdo_fetch_array($query)) { $xml .= "<site>"; $xml .= add_XML_value("id", $query_array["siteid"]); $xml .= add_XML_value("name", $query_array["sitename"]); $xml .= add_XML_value("busytime", $query_array["busytime"]); $xml .= "</site>"; } $xml .= "</cdash>"; // Now doing the xslt transition generate_XSLT($xml, "siteStatistics"); } // end session
$projects[] = $projectid; } } // If the current site as only private projects we check that we have the right // to view the page if (!$displayPage) { echo 'You cannot access this page'; return; } // Compute the time for all the projects (faster than individually) average of the week if ($CDASH_DB_TYPE == 'pgsql') { $timediff = 'EXTRACT(EPOCH FROM (build.submittime - buildupdate.starttime))'; $timestampadd = "NOW()-INTERVAL'167 hours'"; } else { $timediff = 'TIME_TO_SEC(TIMEDIFF(build.submittime, buildupdate.starttime))'; $timestampadd = 'TIMESTAMPADD(' . qiv('HOUR') . ', -167, NOW())'; } $testtime = pdo_query('SELECT projectid, build.name AS buildname, build.type AS buildtype, SUM(' . $timediff . ') AS elapsed FROM build, buildupdate, build2update WHERE build.submittime > ' . $timestampadd . "\n AND build2update.buildid = build.id\n AND buildupdate.id = build2update.updateid\n AND build.siteid = '{$siteid}'\n GROUP BY projectid,buildname,buildtype\n ORDER BY elapsed\n "); $xml .= '<siteload>'; echo pdo_error(); $totalload = 0; while ($testtime_array = pdo_fetch_array($testtime)) { $projectid = $testtime_array['projectid']; if (checkUserPolicy(@$_SESSION['cdash']['loginid'], $projectid, 1)) { $timespent = round($testtime_array['elapsed'] / 7.0); // average over 7 days $xml .= '<build>'; $xml .= add_XML_value('name', $testtime_array['buildname']);
$projects[] = $projectid; } } // If the current site as only private projects we check that we have the right // to view the page if (!$displayPage) { echo "You cannot access this page"; return; } // Compute the time for all the projects (faster than individually) average of the week if ($CDASH_DB_TYPE == "pgsql") { $timediff = "EXTRACT(EPOCH FROM (build.submittime - buildupdate.starttime))"; $timestampadd = "NOW()-INTERVAL'167 hours'"; } else { $timediff = "TIME_TO_SEC(TIMEDIFF(build.submittime, buildupdate.starttime))"; $timestampadd = "TIMESTAMPADD(" . qiv("HOUR") . ", -167, NOW())"; } $testtime = pdo_query("SELECT projectid, build.name AS buildname, build.type AS buildtype, SUM(" . $timediff . ") AS elapsed\n FROM build, buildupdate, build2update\n WHERE\n build.submittime > " . $timestampadd . "\n AND build2update.buildid = build.id\n AND buildupdate.id = build2update.updateid\n AND build.siteid = '{$siteid}'\n GROUP BY projectid,buildname,buildtype\n ORDER BY elapsed\n "); $xml .= "<siteload>"; echo pdo_error(); $totalload = 0; while ($testtime_array = pdo_fetch_array($testtime)) { $projectid = $testtime_array["projectid"]; if (checkUserPolicy(@$_SESSION['cdash']['loginid'], $projectid, 1)) { $timespent = round($testtime_array["elapsed"] / 7.0); // average over 7 days $xml .= "<build>"; $xml .= add_XML_value("name", $testtime_array["buildname"]); $xml .= add_XML_value("project", get_project_name($projectid)); $xml .= add_XML_value("type", $testtime_array["buildtype"]); $xml .= add_XML_value("time", $timespent);