Esempio n. 1
0
 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;
     }
 }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
// 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;
Esempio n. 5
0
 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);
     }
 }