$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') ";
// 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