Exemple #1
0
$days_stored_files = array();
$job_levels = array('D' => 'Differential', 'I' => 'Incremental', 'F' => 'Full');
try {
    if (!is_null(CHttpRequest::get_Value('client_id'))) {
        $clientid = CHttpRequest::get_Value('client_id');
    } else {
        throw new Exception("Application error: client ID not specified as expected in Client report page");
    }
    // Check time period
    if (!is_null(CHttpRequest::get_Value('period'))) {
        $period = CHttpRequest::get_Value('period');
    } else {
        throw new Exception("Application error: the period hasn't been provided as expected");
    }
    // Client informations
    $client = Clients_Model::getClientInfos($dbSql->db_link, $clientid);
    // Get job names for the client
    foreach (Jobs_Model::get_Jobs_List($dbSql->db_link, $clientid) as $jobname) {
        // Last good client's for each backup jobs
        $query = 'SELECT Job.Name, Job.Jobid, Job.Level, Job.Endtime, Job.Jobbytes, Job.Jobfiles, Status.JobStatusLong FROM Job ';
        $query .= "LEFT JOIN Status ON Job.JobStatus = Status.JobStatus ";
        $query .= "WHERE Job.Name = '{$jobname}' AND Job.JobStatus = 'T' AND Job.Type = 'B' ";
        $query .= 'ORDER BY Job.EndTime DESC ';
        $query .= 'LIMIT 1';
        $jobs_result = CDBUtils::runQuery($query, $dbSql->db_link);
        foreach ($jobs_result->fetchAll() as $job) {
            $job['level'] = $job_levels[$job['level']];
            $job['jobfiles'] = CUtils::format_Number($job['jobfiles']);
            $job['jobbytes'] = CUtils::Get_Human_Size($job['jobbytes']);
            $backup_jobs[] = $job;
        }
Exemple #2
0
$query = "";
$last_jobs = array();
// Job Status list
define('STATUS_ALL', 0);
define('STATUS_RUNNING', 1);
define('STATUS_WAITING', 2);
define('STATUS_COMPLETED', 3);
define('STATUS_COMPLETED_WITH_ERRORS', 4);
define('STATUS_FAILED', 5);
define('STATUS_CANCELED', 6);
$job_status = array(STATUS_ALL => 'All', STATUS_RUNNING => 'Running', STATUS_WAITING => 'Waiting', STATUS_COMPLETED => 'Completed', STATUS_COMPLETED_WITH_ERRORS => 'Completed with errors', STATUS_FAILED => 'Failed', STATUS_CANCELED => 'Canceled');
$view->assign('job_status', $job_status);
// Global variables
$job_levels = array('D' => 'Diff', 'I' => 'Incr', 'F' => 'Full');
// Clients list filter
$clients_list = Clients_Model::getClients($dbSql->db_link);
$clients_list[0] = 'Any';
$view->assign('clients_list', $clients_list);
$query .= "SELECT Job.JobId, Job.Name AS Job_name, Job.Type, Job.StartTime, Job.EndTime, Job.Level, Job.ReadBytes, Job.JobBytes, Job.JobFiles, Pool.Name, Job.JobStatus, Pool.Name AS Pool_name, Status.JobStatusLong ";
$query .= "FROM Job ";
$query .= "LEFT JOIN Pool ON Job.PoolId=Pool.PoolId ";
$query .= "LEFT JOIN Status ON Job.JobStatus = Status.JobStatus ";
// Check job status filter
if (!is_null(CHttpRequest::get_Value('status'))) {
    // Selected job status filter
    switch (CHttpRequest::get_Value('status')) {
        case STATUS_RUNNING:
            $query .= "WHERE Job.JobStatus = 'R' ";
            break;
        case STATUS_WAITING:
            $query .= "WHERE Job.JobStatus IN ('F','S','M','m','s','j','c','d','t','p','C') ";
Exemple #3
0
 // Defined Jobs and Filesets
 $view->assign('defined_filesets', FileSets_Model::count($dbSql->db_link));
 $view->assign('defined_jobs', Jobs_Model::count_Job_Names($dbSql->db_link));
 // Incremental, Differential and Full jobs over the last 24 hours
 $view->assign('incr_jobs', Jobs_Model::count_Jobs($dbSql->db_link, $custom_period, null, J_INCR));
 $view->assign('diff_jobs', Jobs_Model::count_Jobs($dbSql->db_link, $custom_period, null, J_DIFF));
 $view->assign('full_jobs', Jobs_Model::count_Jobs($dbSql->db_link, $custom_period, null, J_FULL));
 // Volumes disk usage
 $volumes_size = Volumes_Model::getDiskUsage($dbSql->db_link);
 $view->assign('volumes_size', CUtils::Get_Human_Size($volumes_size));
 // Pools count
 $view->assign('pools_nb', Pools_Model::count($dbSql->db_link));
 // Backup Job list
 $view->assign('jobs_list', Jobs_Model::get_Jobs_List($dbSql->db_link));
 // Clients list
 $view->assign('clients_list', Clients_Model::getClients($dbSql->db_link));
 // Count volumes
 $view->assign('volumes_nb', Volumes_Model::count($dbSql->db_link));
 // ==============================================================
 // Last period <Job status graph>
 // ==============================================================
 $jobs_status = array('Running', 'Completed', 'Waiting', 'Failed', 'Canceled');
 $jobs_status_data = array();
 foreach ($jobs_status as $status) {
     $jobs_count = Jobs_Model::count_Jobs($dbSql->db_link, $custom_period, strtolower($status));
     $jobs_status_data[] = array($status, $jobs_count);
 }
 $graph = new CGraph("dashboard-graph01.jpg");
 $graph->SetData($jobs_status_data, 'pie');
 $graph->setPieLegendColors(array('gray', 'green', 'blue', 'red', 'orange'));
 // Graph rendering