summaryrefslogtreecommitdiffstats
path: root/non-puppet/qtmetrics2/src/DatabaseAdmin.php
diff options
context:
space:
mode:
Diffstat (limited to 'non-puppet/qtmetrics2/src/DatabaseAdmin.php')
-rw-r--r--non-puppet/qtmetrics2/src/DatabaseAdmin.php501
1 files changed, 0 insertions, 501 deletions
diff --git a/non-puppet/qtmetrics2/src/DatabaseAdmin.php b/non-puppet/qtmetrics2/src/DatabaseAdmin.php
deleted file mode 100644
index 30ababb..0000000
--- a/non-puppet/qtmetrics2/src/DatabaseAdmin.php
+++ /dev/null
@@ -1,501 +0,0 @@
-<?php
-#############################################################################
-##
-## Copyright (C) 2015 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the Quality Assurance module of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:LGPL21$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see http://www.qt.io/terms-conditions. For further
-## information use the contact form at http://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 2.1 or version 3 as published by the Free
-## Software Foundation and appearing in the file LICENSE.LGPLv21 and
-## LICENSE.LGPLv3 included in the packaging of this file. Please review the
-## following information to ensure the GNU Lesser General Public License
-## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-##
-## As a special exception, The Qt Company gives you certain additional
-## rights. These rights are described in The Qt Company LGPL Exception
-## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-/**
- * DatabaseAdmin class
- * @since 17-09-2015
- * @author Juha Sippola
- */
-
-class DatabaseAdmin {
-
- /**
- * Database instance
- * @var PDO
- */
- private $db;
-
- /**
- * Database constructor
- */
- public function __construct()
- {
- $ini = Factory::conf();
- $this->db = new PDO(
- $ini['dsn'],
- $ini['username_admin'],
- $ini['password_admin']
- );
- }
-
- /**
- * Get list of tables with statistics
- * @return array (string name, int rowCount)
- */
- public function getTablesStatistics()
- {
- $result = array();
- // Tables to check (listed manually because database may contain additional tables)
- $tables = array();
- $tables[] = 'branch';
- $tables[] = 'compiler';
- $tables[] = 'conf';
- $tables[] = 'conf_run';
- $tables[] = 'db_status';
- $tables[] = 'phase';
- $tables[] = 'phase_run';
- $tables[] = 'platform';
- $tables[] = 'project';
- $tables[] = 'project_run';
- $tables[] = 'state';
- $tables[] = 'testfunction';
- $tables[] = 'testfunction_run';
- $tables[] = 'testrow';
- $tables[] = 'testrow_run';
- $tables[] = 'testset';
- $tables[] = 'testset_run';
- // Row counts
- foreach ($tables as $table) {
- $query = $this->db->prepare("SELECT COUNT(*) AS rowCount FROM $table");
- $query->execute(array());
- while($row = $query->fetch(PDO::FETCH_ASSOC)) {
- $result[] = array(
- 'name' => $table,
- 'rowCount' => $row['rowCount']
- );
- }
- }
- // Sort
- $count = array();
- foreach ($result as $key => $row)
- {
- $count[$key] = $row['rowCount'];
- }
- array_multisort($count, SORT_DESC, $result);
- return $result;
- }
-
- /**
- * Get list of branches with statistics
- * @return array (string name, int runCount, timestamp latestRun)
- */
- public function getBranchesStatistics()
- {
- $result = array();
- $branches = Factory::db()->getBranches();
- foreach ($branches as $branch) {
- $query = $this->db->prepare("
- SELECT
- COUNT(*) AS runCount,
- MAX(timestamp) AS latestRun
- FROM project_run
- WHERE
- branch_id = (SELECT id FROM branch WHERE name = ?);
- ");
- $query->execute(array(
- $branch['name']
- ));
- while($row = $query->fetch(PDO::FETCH_ASSOC)) {
- $result[] = array(
- 'name' => $branch['name'],
- 'archived' => $branch['archived'],
- 'runCount' => $row['runCount'],
- 'latestRun' => $row['latestRun']
- );
- }
- }
- // Sort
- $date = array();
- foreach ($result as $key => $row)
- {
- $date[$key] = $row['latestRun'];
- }
- array_multisort($date, SORT_DESC, $result);
- return $result;
- }
-
- /**
- * Get project_run statistics
- * @return array (string state, int year, int month, int day, int runCount)
- */
- public function getProjectRunsStatistics()
- {
- $result = array();
- $query = $this->db->prepare("
- SELECT
- state.name as state,
- Year(timestamp) AS year,
- Month(timestamp) AS month,
- Day(timestamp) AS day,
- Count(*) as runCount
- FROM project_run
- INNER JOIN state ON project_run.state_id = state.id
- GROUP BY state, year, month, day
- ORDER BY state, year DESC, month DESC, day DESC;
- ");
- $query->execute(array());
- while($row = $query->fetch(PDO::FETCH_ASSOC)) {
- $result[] = array(
- 'state' => $row['state'],
- 'year' => $row['year'],
- 'month' => $row['month'],
- 'day' => $row['day'],
- 'runCount' => $row['runCount']
- );
- }
- return $result;
- }
-
- /**
- * Get project_runs for branch
- * @param string $branch
- * @return array (int id)
- */
- public function getProjectRunIdsBranch($branch)
- {
- $result = array();
- $query = $this->db->prepare("
- SELECT id FROM project_run WHERE branch_id = (SELECT id FROM branch WHERE name = ?);
- ");
- $query->execute(array(
- $branch
- ));
- while($row = $query->fetch(PDO::FETCH_ASSOC)) {
- $result[] = array(
- 'id' => $row['id']
- );
- }
- return $result;
- }
-
- /**
- * Get project_runs for state on a date
- * @param string $month
- * @return array (int id)
- */
- public function getProjectRunIdsDate($state, $date)
- {
- $result = array();
- $year = substr($date, 0, strpos($date, '-'));
- $month = substr($date, strpos($date, '-') + 1);
- $day = substr($month, strpos($month, '-') + 1);
- $month = substr($month, 0, strpos($month, '-'));
- $query = $this->db->prepare("
- SELECT project_run.id
- FROM project_run INNER JOIN state ON project_run.state_id = state.id
- WHERE state.name = ? AND Year(timestamp) = ? AND Month(timestamp) = ? AND Day(timestamp) = ?;
- ");
- $query->execute(array(
- $state,
- $year,
- $month,
- $day
- ));
- while($row = $query->fetch(PDO::FETCH_ASSOC)) {
- $result[] = array(
- 'id' => $row['id']
- );
- }
- return $result;
- }
-
- /**
- * Get conf_runs for project_run
- * @param int $projectRunId
- * @return array (int id)
- */
- public function getConfRunIds($projectRunId)
- {
- $result = array();
- $query = $this->db->prepare("
- SELECT id FROM conf_run WHERE project_run_id = ?;
- ");
- $query->bindParam(1, $projectRunId, PDO::PARAM_INT);
- $query->execute();
- while($row = $query->fetch(PDO::FETCH_ASSOC)) {
- $result[] = array(
- 'id' => $row['id']
- );
- }
- return $result;
- }
-
- /**
- * Get testset_runs for conf_run
- * @param int $confRunId
- * @return array (int id)
- */
- public function getTestsetRunIds($confRunId)
- {
- $result = array();
- $query = $this->db->prepare("
- SELECT id FROM testset_run WHERE conf_run_id = ?;
- ");
- $query->bindParam(1, $confRunId, PDO::PARAM_INT);
- $query->execute();
- while($row = $query->fetch(PDO::FETCH_ASSOC)) {
- $result[] = array(
- 'id' => $row['id']
- );
- }
- return $result;
- }
-
- /**
- * Get testfunction_runs for testset_run
- * @param int $testsetRunId
- * @return array (int id)
- */
- public function getTestfunctionRunIds($testsetRunId)
- {
- $result = array();
- $query = $this->db->prepare("
- SELECT id FROM testfunction_run WHERE testset_run_id = ?;
- ");
- $query->bindParam(1, $testsetRunId, PDO::PARAM_INT);
- $query->execute();
- while($row = $query->fetch(PDO::FETCH_ASSOC)) {
- $result[] = array(
- 'id' => $row['id']
- );
- }
- return $result;
- }
-
- /**
- * Delete project_run
- * @param int $projectRunId
- * @return bool
- */
- public function deleteProjectRun($projectRunId)
- {
- $query = $this->db->prepare("
- DELETE FROM project_run WHERE id = ?;
- ");
- $query->bindParam(1, $projectRunId, PDO::PARAM_INT);
- $result = $query->execute();
- return $result;
- }
-
- /**
- * Delete conf_runs for project_run
- * @param int $projectRunId
- * @return bool
- */
- public function deleteConfRuns($projectRunId)
- {
- $query = $this->db->prepare("
- DELETE FROM conf_run WHERE project_run_id = ?;
- ");
- $query->bindParam(1, $projectRunId, PDO::PARAM_INT);
- $result = $query->execute();
- return $result;
- }
-
- /**
- * Delete phase_runs for conf_run
- * @param int $confRunId
- * @return bool
- */
- public function deletePhaseRuns($confRunId)
- {
- $query = $this->db->prepare("
- DELETE FROM phase_run WHERE conf_run_id = ?;
- ");
- $query->bindParam(1, $confRunId, PDO::PARAM_INT);
- $result = $query->execute();
- return $result;
- }
-
- /**
- * Delete testset_runs for conf_run
- * @param int $confRunId
- * @return bool
- */
- public function deleteTestsetRuns($confRunId)
- {
- $query = $this->db->prepare("
- DELETE FROM testset_run WHERE conf_run_id = ?;
- ");
- $query->bindParam(1, $confRunId, PDO::PARAM_INT);
- $result = $query->execute();
- return $result;
- }
-
- /**
- * Delete testfunction_runs for testset_run
- * @param int $testsetRunId
- * @return bool
- */
- public function deleteTestfunctionRuns($testsetRunId)
- {
- $query = $this->db->prepare("
- DELETE FROM testfunction_run WHERE testset_run_id = ?;
- ");
- $query->bindParam(1, $testsetRunId, PDO::PARAM_INT);
- $result = $query->execute();
- return $result;
- }
-
- /**
- * Delete testrow_runs for testfunction_run
- * @param int $testfunctionRunId
- * @return bool
- */
- public function deleteTestrowRuns($testfunctionRunId)
- {
- $query = $this->db->prepare("
- DELETE FROM testrow_run WHERE testfunction_run_id = ?;
- ");
- $query->bindParam(1, $testfunctionRunId, PDO::PARAM_INT);
- $result = $query->execute();
- return $result;
- }
-
- /**
- * Delete project_run and all its linked data
- * @param int $projectRunId
- * @return bool
- */
- public function deleteProjectRunData($projectRunId)
- {
- $result = true;
- $confRuns = self::getConfRunIds($projectRunId);
- foreach ($confRuns as $confRun) {
- $testsetRuns = self::getTestsetRunIds($confRun['id']);
- foreach ($testsetRuns as $testsetRun) {
- $testfunctionRuns = self::getTestfunctionRunIds($testsetRun['id']);
- foreach ($testfunctionRuns as $testfunctionRun) {
- // Delete related testrow_runs
- if (!self::deleteTestrowRuns($testfunctionRun['id']))
- $result = false;
- }
- // Delete related testfunction_runs
- if (!self::deleteTestfunctionRuns($testsetRun['id']))
- $result = false;
- }
- // Delete related testset_runs
- if (!self::deleteTestsetRuns($confRun['id']))
- $result = false;
- // Delete related phase_runs
- if (!self::deletePhaseRuns($confRun['id']))
- $result = false;
- }
- // Delete related conf_runs
- if (!self::deleteConfRuns($projectRunId))
- $result = false;
- // Delete project_run
- if (!self::deleteProjectRun($projectRunId))
- $result = false;
- return $result;
- }
-
- /**
- * Delete branch and all its linked data
- * @param string $branch
- * @return bool
- */
- public function deleteBranch($branch)
- {
- $result = true;
- // Delete data from xxx_run tables
- $projectRuns = self::getProjectRunIdsBranch($branch);
- foreach ($projectRuns as $projectRun) {
- if (!self::deleteProjectRunData($projectRun['id']))
- $result = false;
- }
- // Delete branch
- $query = $this->db->prepare("
- DELETE FROM branch WHERE name = ?
- ");
- $result2 = $query->execute(array(
- $branch
- ));
- if (!$result2)
- $result = false;
- return $result;
- }
-
- /**
- * Set archived flag for the branch
- * @param string $branch
- * @return bool
- */
- public function archiveBranch($branch)
- {
- $query = $this->db->prepare("
- UPDATE branch SET archived = 1 WHERE name = ?
- ");
- $result = $query->execute(array(
- $branch
- ));
- return $result;
- }
-
- /**
- * Clear archived flag for the branch
- * @param string $branch
- * @return bool
- */
- public function restoreBranch($branch)
- {
- $query = $this->db->prepare("
- UPDATE branch SET archived = 0 WHERE name = ?
- ");
- $result = $query->execute(array(
- $branch
- ));
- return $result;
- }
-
- /**
- * Delete all build runs from selected date in selected state
- * @param string $state
- * @param string $date
- * @return bool
- */
- public function deleteRunsData($state, $date)
- {
- $result = true;
- $projectRuns = self::getProjectRunIdsDate($state, $date);
- foreach ($projectRuns as $projectRun) {
- if (!self::deleteProjectRunData($projectRun['id']))
- $result = false;
- }
- return $result;
- }
-
-}
-
-?>