/[BackupPC]/trunk/lib/BackupPC/SearchLib.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/BackupPC/SearchLib.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 140 by ravilov, Fri Oct 7 07:59:28 2005 UTC revision 188 by dpavlin, Wed Oct 12 16:49:02 2005 UTC
# Line 8  use DBI; Line 8  use DBI;
8  use DateTime;  use DateTime;
9  use vars qw(%In $MyURL);  use vars qw(%In $MyURL);
10  use Time::HiRes qw/time/;  use Time::HiRes qw/time/;
11    use XML::Writer;
12    use IO::File;
13    
14  my $on_page = 100;  my $on_page = 100;
15  my $pager_pages = 10;  my $pager_pages = 10;
# Line 68  sub dates_from_form($) { Line 70  sub dates_from_form($) {
70                  $mm =~ s/\D//g;                  $mm =~ s/\D//g;
71                  $dd =~ s/\D//g;                  $dd =~ s/\D//g;
72    
73                    my $h = my $m = my $s = 0;
74                    if ($suffix eq 'to') {
75                            $h = 23;
76                            $m = 59;
77                            $s = 59;
78                    }
79    
80                  my $dt = new DateTime(                  my $dt = new DateTime(
81                          year => $yyyy,                          year => $yyyy,
82                          month => $mm,                          month => $mm,
83                          day => $dd                          day => $dd,
84                            hour => $h,
85                            minute => $m,
86                            second => $s,
87                  );                  );
88                  print STDERR "mk_epoch_date($name,$suffix) [$yyyy-$mm-$dd] = " . $dt->ymd . " " . $dt->hms . "\n";                  print STDERR "mk_epoch_date($name,$suffix) [$yyyy-$mm-$dd] = " . $dt->ymd . " " . $dt->hms . "\n";
89                  return $dt->epoch || 'NULL';                  return $dt->epoch || 'NULL';
# Line 100  sub getWhere($) { Line 112  sub getWhere($) {
112          push @conditions, qq{ files.date >= $files_from } if ($files_from);          push @conditions, qq{ files.date >= $files_from } if ($files_from);
113          push @conditions, qq{ files.date <= $files_to } if ($files_to);          push @conditions, qq{ files.date <= $files_to } if ($files_to);
114    
115          print STDERR "backup: $backup_from - $backup_to files: $files_from - $files_to cond:" . join(" | ",@conditions);          print STDERR "backup: $backup_from - $backup_to files: $files_from - $files_to cond:" . join(" and ",@conditions);
116    
117          push( @conditions, ' files.shareid = ' . $param->{'search_share'} ) if ($param->{'search_share'});          push( @conditions, ' files.shareid = ' . $param->{'search_share'} ) if ($param->{'search_share'});
118          push (@conditions, " upper(files.path) LIKE upper('%".$param->{'search_filename'}."%')") if ($param->{'search_filename'});          push (@conditions, " upper(files.path) LIKE upper('%".$param->{'search_filename'}."%')") if ($param->{'search_filename'});
# Line 288  sub getGzipName($$$) Line 300  sub getGzipName($$$)
300          $ret =~ s/\\h/$host/ge;          $ret =~ s/\\h/$host/ge;
301          $ret =~ s/\\s/$share/ge;          $ret =~ s/\\s/$share/ge;
302          $ret =~ s/\\n/$backupnum/ge;          $ret =~ s/\\n/$backupnum/ge;
303            
304            $ret =~ s/__+/_/g;
305    
306          return $ret;          return $ret;
307                    
308  }  }
309    
310    sub getGzipSize($$)
311    {
312            my ($hostID, $backupNum) = @_;
313            my $sql;
314            my $dbh = get_dbh();
315            
316            $sql = q{
317                                    SELECT hosts.name  as host,
318                                               shares.name as share,
319                                               backups.num as backupnum
320                                    FROM hosts, backups, shares
321                                    WHERE shares.id=backups.shareid AND
322                                              hosts.id =backups.hostid AND
323                                              hosts.id=? AND
324                                              backups.num=?
325                            };
326            my $sth = $dbh->prepare($sql);
327            $sth->execute($hostID, $backupNum);
328    
329            my $row = $sth->fetchrow_hashref();
330            
331            my (undef,undef,undef,undef,undef,undef,undef,$ret,undef,undef,undef,undef,undef) =
332                            stat( $Conf{InstallDir}.'/'.$Conf{GzipTempDir}.'/'.
333                                    getGzipName($row->{'host'}, $row->{share}, $row->{'backupnum'}));
334            
335            return $ret;    
336    }
337    
338  sub getBackupsNotBurned() {  sub getBackupsNotBurned() {
339    
340          my $dbh = get_dbh();          my $dbh = get_dbh();
# Line 302  sub getBackupsNotBurned() { Line 344  sub getBackupsNotBurned() {
344                          backups.hostID AS hostID,                          backups.hostID AS hostID,
345                          hosts.name AS host,                          hosts.name AS host,
346                          shares.name AS share,                          shares.name AS share,
347                          backups.id AS backupnum,                          backups.num AS backupnum,
348                          backups.type AS type,                          backups.type AS type,
349                          backups.date AS date,                          backups.date AS date,
350                          backups.size AS size                          backups.size AS size,
351                            backups.id AS id,
352                            backups.inc_size AS inc_size
353                  FROM backups                  FROM backups
354                  INNER JOIN shares       ON backups.shareID=shares.ID                  INNER JOIN shares       ON backups.shareID=shares.ID
355                  INNER JOIN hosts        ON backups.hostID = hosts.ID                  INNER JOIN hosts        ON backups.hostID = hosts.ID
356                  LEFT OUTER JOIN archive_backup ON archive_backup.backup_id = backups.id                  LEFT OUTER JOIN archive_backup ON archive_backup.backup_id = backups.id
357                  WHERE backups.size > 0 AND archive_backup.backup_id IS NULL                  WHERE backups.inc_size > 0 AND backups.inc_deleted is false AND archive_backup.backup_id IS NULL
358                  GROUP BY                  GROUP BY
359                          backups.hostID,                          backups.hostID,
360                          hosts.name,                          hosts.name,
# Line 320  sub getBackupsNotBurned() { Line 364  sub getBackupsNotBurned() {
364                          backups.id,                          backups.id,
365                          backups.type,                          backups.type,
366                          backups.date,                          backups.date,
367                          backups.size                          backups.size,
368                            backups.inc_size
369                  ORDER BY backups.date                  ORDER BY backups.date
370          };          };
371          my $sth = $dbh->prepare( $sql );          my $sth = $dbh->prepare( $sql );
# Line 330  sub getBackupsNotBurned() { Line 375  sub getBackupsNotBurned() {
375          while ( my $row = $sth->fetchrow_hashref() ) {          while ( my $row = $sth->fetchrow_hashref() ) {
376                  $row->{'age'} = sprintf("%0.1f", ( (time() - $row->{'date'}) / 86400 ) );                  $row->{'age'} = sprintf("%0.1f", ( (time() - $row->{'date'}) / 86400 ) );
377                  $row->{'size'} = sprintf("%0.2f", $row->{'size'} / 1024 / 1024);                  $row->{'size'} = sprintf("%0.2f", $row->{'size'} / 1024 / 1024);
378                  my (undef,undef,undef,undef,undef,undef,undef,$fs_size,undef,undef,undef,undef,undef) =  
379                          stat( $Conf{InstallDir}.'/'.$Conf{GzipTempDir}.'/'.                  # do some cluster calculation (approximate) and convert to kB
380                                  getGzipName($row->{'host'}, $row->{share}, $row->{'backupnum'}));                  $row->{'inc_size'} = int(($row->{'inc_size'} + 1023 ) / ( 2 * 1024 ) * 2);
                 $row->{'fs_size'} = $fs_size;  
381                  push @ret, $row;                  push @ret, $row;
382          }          }
383                
# Line 453  DIV#fixedBox #submitBurner { Line 497  DIV#fixedBox #submitBurner {
497  <!--  <!--
498    
499  var debug_div = null;  var debug_div = null;
500  var media_size = 4400 * 1024;  EOF3
501    
502            # take maximum archive size from configuration
503            $retHTML .= 'var media_size = '. $Conf{MaxArchiveSize} .';';
504    
505            $retHTML .= <<'EOF3';
506    
507  function debug(msg) {  function debug(msg) {
508  //      return; // Disable debugging  //      return; // Disable debugging
# Line 483  function element_id(name,element) { Line 532  function element_id(name,element) {
532  }  }
533    
534  function checkAll(location) {  function checkAll(location) {
535          var len = element_id('forma').elements.length;          var f = element_id('forma') || null;
536            if (!f) return false;
537    
538            var len = f.elements.length;
539          var check_all = element_id('allFiles');          var check_all = element_id('allFiles');
540          var suma = 0;          var suma = check_all.checked ? (parseInt(f.elements['totalsize'].value) || 0) : 0;
541    
542          for (var i = 0; i < len; i++) {          for (var i = 0; i < len; i++) {
543                    var e = f.elements[i];
544                  var e = element_id('forma').elements[i];                  if (e.name != 'all' && e.name.substr(0, 3) == 'fcb') {
                 if (e.name != 'all' && e.name.substr(0,3) == 'fcb') {  
545                          if (check_all.checked) {                          if (check_all.checked) {
546                                    if (e.checked) continue;
547                                  var el = element_id("fss" + e.name.substr(3));                                  var el = element_id("fss" + e.name.substr(3));
548                                  var size = parseInt(el.value) || 0;                                  var size = parseInt(el.value) || 0;
549                                  debug('suma: '+suma+' size: '+size);                                  debug('suma: '+suma+' size: '+size);
# Line 510  function checkAll(location) { Line 562  function checkAll(location) {
562  }  }
563    
564  function update_sum(suma) {  function update_sum(suma) {
565          element_id('forma').totalsize.value = suma;          element_id('forma').elements['totalsize'].value = suma;
566          pbar_set(suma, media_size);          pbar_set(suma, media_size);
567          debug('total size: '+suma);          debug('total size: ' + suma);
568  }  }
569    
570  function sumiraj(e) {  function sumiraj(e) {
571          var suma = parseInt(element_id('forma').totalsize.value) || 0;          var suma = parseInt(element_id('forma').elements['totalsize'].value) || 0;
572          var len = element_id('forma').elements.length;          var len = element_id('forma').elements.length;
573          if (e) {          if (e) {
574                  var size = parseInt( element_id("fss" + e.name.substr(3)).value);                  var size = parseInt( element_id("fss" + e.name.substr(3)).value);
# Line 648  EOF3 Line 700  EOF3
700                          <td align="center">date</td>                          <td align="center">date</td>
701                          <td align="center">age/days</td>                          <td align="center">age/days</td>
702                          <td align="center">size/MB</td>                          <td align="center">size/MB</td>
703                          <td align="center">gzip size</td>                          <td align="center">gzip size/kB</td>
704                          </tr>                          </tr>
705    
706          };          };
# Line 666  EOF3 Line 718  EOF3
718                  }                  }
719                  my $ftype = "";                  my $ftype = "";
720    
721                    my $checkbox_key = $backup->{'hostid'}. '_' .$backup->{'backupnum'} . '_' . $backup->{'id'};
722    
723                  $retHTML .=                  $retHTML .=
724                          '<tr' . $color[$i %2 ] . '>                          '<tr' . $color[$i %2 ] . '>
725                          <td class="fview">';                          <td class="fview">';
726                  # FIXME  
727                  $backup->{'fs_size'} = int($backup->{'size'} * 1024);                  if (($backup->{'inc_size'} || 0) > 0) {
                 if (($backup->{'fs_size'} || 0) > 0) {  
728                          $retHTML .= '                          $retHTML .= '
729                          <input type="checkbox" name="fcb' .                          <input type="checkbox" name="fcb' . $checkbox_key . '" value="' . $checkbox_key . '" onClick="sumiraj(this);">';
                         $backup->{'hostid'}.'_'.$backup->{'backupnum'} .  
                         '" value="' . $backup->{'hostid'}.'_'.$backup->{'backupnum'} .  
                         '" onClick="sumiraj(this);">';  
730                  }                  }
731    
732                  $retHTML .=                  $retHTML .=
733                          '</td>' .                          '</td>' .
734                          '<td align="right">' . $backup->{'host'} . ':' . $backup->{'share'} . '</td>' .                          '<td align="right">' . $backup->{'host'} . ':' . $backup->{'share'} . '</td>' .
# Line 686  EOF3 Line 737  EOF3
737                          '<td align="center">' . epoch_to_iso( $backup->{'date'} ) . '</td>' .                          '<td align="center">' . epoch_to_iso( $backup->{'date'} ) . '</td>' .
738                          '<td align="center">' . $backup->{'age'} . '</td>' .                          '<td align="center">' . $backup->{'age'} . '</td>' .
739                          '<td align="right">' . $backup->{'size'} . '</td>' .                          '<td align="right">' . $backup->{'size'} . '</td>' .
740                          '<td align="right">' . $backup->{'fs_size'} .                          '<td align="right">' . $backup->{'inc_size'} .
741                          '<input type="hidden" iD="fss'.$backup->{'hostid'}.'_'.$backup->{'backupnum'} . '" value="'. $backup->{'fs_size'} .'"></td>' .                          '<input type="hidden" iD="fss'.$checkbox_key .'" value="'. $backup->{'inc_size'} .'"></td>' .
742    
743                          "</tr>\n";                          "</tr>\n";
744          }          }

Legend:
Removed from v.140  
changed lines
  Added in v.188

  ViewVC Help
Powered by ViewVC 1.1.26