Exemple #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;
     }
 }
Exemple #2
0
 public static function getConnectionStatus($PDO_connection)
 {
     // If MySQL of postGreSQL
     if (CDB::getDriverName() != 'sqlite') {
         return $PDO_connection->getAttribute(PDO::ATTR_CONNECTION_STATUS);
     } else {
         return 'N/A';
     }
 }
Exemple #3
0
 public static function get_Timestamp_Interval($period_timestamp = array())
 {
     $period = array();
     switch (CDB::getDriverName()) {
         case 'pgsql':
             $period['starttime'] = "TIMESTAMP '" . date("Y-m-d H:i:s", $period_timestamp[0]) . "'";
             $period['endtime'] = "TIMESTAMP '" . date("Y-m-d H:i:s", $period_timestamp[1]) . "'";
             break;
         default:
             $period['starttime'] = "'" . date("Y-m-d H:i:s", $period_timestamp[0]) . "'";
             $period['endtime'] = "'" . date("Y-m-d H:i:s", $period_timestamp[1]) . "'";
             break;
     }
     // end switch
     return $period;
 }
Exemple #4
0
     $days_stored_files[] = array(date("m-d", $day['start']), Jobs_Model::getStoredFiles($dbSql->db_link, array($day['start'], $day['end'])));
 }
 unset($graph);
 $graph = new CGraph("dashboard-graph04.jpg");
 $graph->SetData($days_stored_files, 'bars');
 // Graph rendering
 $view->assign('graph_stored_files', $graph->Render());
 unset($graph);
 // ==============================================================
 // Last used volumes widget
 // ==============================================================
 $last_volumes = array();
 // Building SQL statment
 $where = array();
 $tmp = "(Media.Volstatus != 'Disabled') ";
 switch (CDB::getDriverName()) {
     case 'mysql':
     case 'pgsql':
         $tmp .= "AND (Media.LastWritten IS NOT NULL)";
         break;
     case 'sqlite':
         $tmp .= "AND (Media.Lastwritten != 0)";
         break;
 }
 $where[] = $tmp;
 $statment = array('table' => 'Media', 'fields' => array('Media.MediaId', 'Media.Volumename', 'Media.Lastwritten', 'Media.VolStatus', 'Media.VolJobs', 'Pool.Name AS poolname'), 'join' => array('table' => 'Pool', 'condition' => 'Media.PoolId = Pool.poolid'), 'where' => $where, 'orderby' => 'Media.Lastwritten DESC', 'limit' => '10');
 // Run the query
 $result = CDBUtils::runQuery(CDBQuery::get_Select($statment), $dbSql->db_link);
 foreach ($result as $volume) {
     $last_volumes[] = $volume;
 }
Exemple #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);
     }
 }