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