public static function get_Size($pdo_connection, $catalog_id) { $db_name = FileConfig::get_Value('db_name', $catalog_id); switch (CDB::getDriverName()) { case 'mysql': // Return N/A for MySQL server prior version 5 (no information_schemas) if (version_compare(CDB::getServerVersion(), '5.0.0') >= 0) { // Prepare SQL statment $statment = array('table' => 'information_schema.TABLES', 'fields' => array("table_schema AS 'database', (sum( data_length + index_length) / 1024 / 1024 ) AS 'dbsize'"), 'where' => array("table_schema = '{$db_name}'"), 'groupby' => 'table_schema'); $result = CDBUtils::runQuery(CDBQuery::get_Select($statment, $pdo_connection), $pdo_connection); $db_size = $result->fetch(); $db_size = $db_size['dbsize'] * 1024 * 1024; return CUtils::Get_Human_Size($db_size); } else { echo 'Not supported (' . CDB::getServerVersion() . ') <br />'; } break; case 'pgsql': $statment = "SELECT pg_database_size('{$db_name}') AS dbsize"; $result = CDBUtils::runQuery($statment, $pdo_connection); $db_size = $result->fetch(); return CUtils::Get_Human_Size($db_size['dbsize']); break; case 'sqlite': $db_size = filesize(FileConfig::get_Value('db_name', $catalog_id)); return CUtils::Get_Human_Size($db_size); break; } }
public static function getPools($pdo) { $pools = null; $table = 'Pool'; $where = null; if (FileConfig::get_Value('hide_empty_pools')) { $where[] = "{$table}.NumVols > 0"; } $fields = array('poolid', 'name', 'numvols'); $result = CDBUtils::runQuery(CDBQuery::get_Select(array('table' => $table, 'fields' => $fields, 'where' => $where)), $pdo); foreach ($result->fetchAll() as $pool) { $pools[] = $pool; } return $pools; }
public static function getClients($pdo) { $clients = array(); $table = 'Client'; $fields = array('ClientId, Name'); $orderby = 'Name'; $statment = array('table' => $table, 'fields' => $fields, 'orderby' => $orderby); if (FileConfig::get_Value('show_inactive_clients')) { $statment['where'] = "FileRetention > '0' AND JobRetention > '0' "; } $result = CDBUtils::runQuery(CDBQuery::get_Select($statment), $pdo); foreach ($result->fetchAll() as $client) { $clients[$client['clientid']] = $client['name']; } return $clients; }
// Order by DESC || ASC if (!is_null(CHttpRequest::get_Value('result_order_asc'))) { $order_by_asc = CHttpRequest::get_Value('result_order_asc'); $result_order_asc_checked = 'checked'; } $query .= "ORDER BY {$order_by} {$order_by_asc} "; // Set selected option in template for Job order and Job order asc (ascendant order) $view->assign('result_order_field', $order_by); $view->assign('result_order_asc_checked', $result_order_asc_checked); // Jobs per page options $jobs_per_page = 25; $view->assign('jobs_per_page', array(25 => '25', 50 => '50', 75 => '75', 100 => '100', 150 => '150')); // Determine how many jobs per page // From config file if (FileConfig::get_Value('jobs_per_page') != false) { $jobs_per_page = FileConfig::get_Value('jobs_per_page'); } // From $_POST form if (!is_null(CHttpRequest::get_Value('jobs_per_page'))) { $jobs_per_page = CHttpRequest::get_Value('jobs_per_page'); } $query .= "LIMIT {$jobs_per_page}"; $view->assign('jobs_per_page_selected', $jobs_per_page); // Parsing jobs result $jobsresult = CDBUtils::runQuery($query, $dbSql->db_link); foreach ($jobsresult as $job) { // Determine icon for job status switch ($job['jobstatus']) { case J_RUNNING: $job['Job_icon'] = "play"; break;
public function __construct(&$view) { // Loading configuration file parameters try { if (!FileConfig::open(CONFIG_FILE)) { throw new Exception("The configuration file is missing"); } else { $this->catalog_nb = FileConfig::count_Catalogs(); } } catch (Exception $e) { CErrorHandler::displayError($e); } // Template engine initalization $this->view = $view; // Checking template cache permissions if (!is_writable(VIEW_CACHE_DIR)) { throw new Exception("The template cache folder <b>" . VIEW_CACHE_DIR . "</b> must be writable by Apache user"); } // Initialize smarty gettext function $language = FileConfig::get_Value('language'); if (!$language) { throw new Exception("Language translation problem"); } $this->translate = new CTranslation($language); $this->translate->set_Language($this->view); // Get catalog_id from http $_GET request if (!is_null(CHttpRequest::get_Value('catalog_id'))) { if (FileConfig::catalogExist(CHttpRequest::get_Value('catalog_id'))) { $this->catalog_current_id = CHttpRequest::get_Value('catalog_id'); $_SESSION['catalog_id'] = $this->catalog_current_id; } else { $_SESSION['catalog_id'] = 0; $this->catalog_current_id = 0; throw new Exception('The catalog_id value provided does not correspond to a valid catalog, please verify the config.php file'); } } else { if (isset($_SESSION['catalog_id'])) { // Stick with previously selected catalog_id $this->catalog_current_id = $_SESSION['catalog_id']; } } // Define catalog id and catalog label $this->view->assign('catalog_current_id', $this->catalog_current_id); $this->view->assign('catalog_label', FileConfig::get_Value('label', $this->catalog_current_id)); // Getting database connection paremeter from configuration file $dsn = FileConfig::get_DataSourceName($this->catalog_current_id); $driver = FileConfig::get_Value('db_type', $this->catalog_current_id); $user = ''; $pwd = ''; if ($driver != 'sqlite') { $user = FileConfig::get_Value('login', $this->catalog_current_id); $pwd = FileConfig::get_Value('password', $this->catalog_current_id); } switch ($driver) { case 'mysql': case 'pgsql': $this->db_link = CDB::connect($dsn, $user, $pwd); break; case 'sqlite': $this->db_link = CDB::connect($dsn); break; } // Getting driver name from PDO connection $this->db_driver = CDB::getDriverName(); // Set PDO connection options $this->db_link->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); $this->db_link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->db_link->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('CDBResult', array($this))); // MySQL connection specific parameter if ($driver == 'mysql') { $this->db_link->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); } // Bacula catalog selection if ($this->catalog_nb > 1) { // Catalogs list $this->view->assign('catalogs', FileConfig::get_Catalogs()); // Catalogs count $this->view->assign('catalog_nb', $this->catalog_nb); } }