]> git.sur5r.net Git - bacula/bacula/blob - gui/bacula-web/backupjob-report.php
bacula-web: Sync with Davide repos
[bacula/bacula] / gui / bacula-web / backupjob-report.php
1 <?php\r
2   session_start();\r
3   require_once ("paths.php");\r
4   require_once ($smarty_path."Smarty.class.php");\r
5   require_once ("bweb.inc.php");\r
6   require_once ("config.inc.php");  \r
7 \r
8   $smarty = new Smarty();     \r
9   $dbSql = new Bweb();\r
10 \r
11   require("lang.php");\r
12 \r
13   // Smarty configuration\r
14   $smarty->compile_check = true;\r
15   $smarty->debugging = false;\r
16   $smarty->force_compile = true;\r
17 \r
18   $smarty->template_dir = "./templates";\r
19   $smarty->compile_dir = "./templates_c";\r
20   $smarty->config_dir     = "./configs";\r
21 \r
22   $backupjob_name = "";\r
23   $days  = array();\r
24 \r
25   // Get Backup Job name from GET or POST\r
26   if( isset( $_POST["backupjob_name"] ) )\r
27     $backupjob_name = $_POST["backupjob_name"];\r
28   elseif( isset( $_GET["backupjob_name"] ) )\r
29         $backupjob_name = $_GET["backupjob_name"];\r
30   else\r
31         die( "Please specify a backup job name " );\r
32 \r
33   // Get the last 7 days interval (start and end)\r
34   for( $c = 6 ; $c >= 0 ; $c-- ) {\r
35           $today = ( mktime() - ($c * LAST_DAY) );\r
36           array_push( $days, array( 'start' => date( "Y-m-d 00:00:00", $today ), 'end' => date( "Y-m-d 23:59:00", $today ) ) );\r
37   }\r
38   // Generate Backup Job report period string\r
39   $backupjob_period = "From " . date( "Y-m-d", mktime()-LAST_WEEK ) . " to " . date( "Y-m-d", mktime() );\r
40   // Last 7 days stored Bytes graph\r
41   $graph = new BGraph( "graph2.png" );\r
42 \r
43   $days_stored_bytes    = array();\r
44   $backupjob_bytes              = 0;\r
45 \r
46   foreach( $days as $day )\r
47     array_push( $days_stored_bytes, $dbSql->GetStoredBytesByJob( $backupjob_name, $day['start'], $day['end'] ) );\r
48  \r
49   // Calculate total bytes for this period\r
50   foreach( $days_stored_bytes as $day )\r
51         $backupjob_bytes += $day[1];\r
52         \r
53   $graph->SetData( $days_stored_bytes, 'bars', 'text-data' );\r
54   $graph->SetGraphSize( 400, 230 );\r
55 \r
56   $graph->Render();\r
57   $smarty->assign('graph_stored_bytes', $graph->Get_Image_file() );     \r
58   \r
59   // Getting last 7 days stored files graph\r
60   $graph = new BGraph("graph3.png" );\r
61   \r
62   $days_stored_files    = array();\r
63   $backupjob_files              = 0;\r
64   \r
65   foreach( $days as $day )\r
66     array_push( $days_stored_files, $dbSql->GetStoredFilesByJob( $backupjob_name, $day['start'], $day['end'] ) );\r
67 \r
68   // Calculate total files for this period      \r
69   foreach( $days_stored_files as $day )\r
70         $backupjob_files += $day[1];\r
71   \r
72   $graph->SetData( $days_stored_files, 'bars', 'text-data' );\r
73   $graph->SetGraphSize( 400, 230 );\r
74 \r
75   $graph->Render();\r
76   $smarty->assign('graph_stored_files', $graph->Get_Image_file() );\r
77 \r
78   // Last 10 jobs\r
79   $query    = "SELECT JobId, Level, JobFiles, JobBytes, JobStatus, EndTime, Name ";  \r
80   $query   .= "FROM Job ";\r
81   $query   .= "WHERE Name = '$backupjob_name' ";\r
82   $query   .= "ORDER BY EndTime DESC ";\r
83   $query   .= "LIMIT 10 ";\r
84   \r
85   $jobs         = array();\r
86   $joblevel = array( 'I' => 'Incr', 'D' => 'Diff', 'F' => 'Full' );\r
87   $result       = $dbSql->db_link->query( $query );\r
88   \r
89   if( ! PEAR::isError( $result ) )\r
90   {\r
91         while( $job = $result->fetchRow( DB_FETCHMODE_ASSOC ) ) {\r
92                 $job['Level'] = $joblevel[ $job['Level'] ];\r
93                 array_push( $jobs, $job);\r
94         }\r
95                 \r
96   }else\r
97         die( "Unable to get last jobs from catalog " . $result->getMessage() );\r
98     \r
99   $smarty->assign('jobs', $jobs );\r
100   \r
101   $smarty->assign('backupjob_name', $backupjob_name );\r
102   $smarty->assign('backupjob_period', $backupjob_period );\r
103   $smarty->assign('backupjob_bytes', $backupjob_bytes );\r
104   $smarty->assign('backupjob_files', $backupjob_files );\r
105   \r
106   // Process and display the template \r
107   $smarty->display('backupjob-report.tpl'); \r
108   \r
109 ?>\r