/[BackupPC]/trunk/lib/BackupPC/CGI/BurnMedia.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/CGI/BurnMedia.pm

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

revision 143 by iklaric, Fri Oct 7 09:36:10 2005 UTC revision 197 by dpavlin, Thu Oct 13 18:33:00 2005 UTC
# Line 3  package BackupPC::CGI::BurnMedia; Line 3  package BackupPC::CGI::BurnMedia;
3  use strict;  use strict;
4  use BackupPC::CGI::Lib qw(:all);  use BackupPC::CGI::Lib qw(:all);
5  use BackupPC::SearchLib;  use BackupPC::SearchLib;
 use BackupPC::Workflow::Create;  
6  use Data::Dumper;  use Data::Dumper;
7  use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);  use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);
8    
# Line 36  EOF Line 35  EOF
35                            
36          } else {          } else {
37    
38                  my @selectedBackups;                  my @selected_backup_ids;
39    
40                  foreach my $key(keys(%In))                  my $total_size = 0;
41                  {                  my $selected = 0;
42                          if ($key =~ m/fcb([0-9]+)_([0-9]+)/gi)  
43                          {                  foreach my $key(keys(%In)) {
44                                  my $hostID = $1;                          if ($key =~ m/^fcb([0-9]+)_([0-9]+)_([0-9]+)$/gi) {
45                                  my $backupnum = $2;                                  my ($host_id, $backup_num, $backup_id) = ($1,$2,$3);
46                                  push(@selectedBackups, ($hostID, $backupnum));                                  push @selected_backup_ids, $backup_id;
47                                    $total_size += BackupPC::SearchLib::getGzipSize($host_id, $backup_num);
48                                    $selected++;
49                          }                          }
50                  }                  }
51    
52                    my $total_kb = int($total_size / 1024);
53    
54                  # kreiraj arhivu                  # and now a little magic to check multi-volume increments
55                  my $kveri = q{                  my $parts = 1;
56                                                  INSERT INTO archive                  if ($#selected_backup_ids == 0) {
57                                                  (id, dvd_nr, note, username, date)                          ($parts) = $dbh->selectrow_array("select parts from backups where id = ?", undef, $selected_backup_ids[0]);
                                                 VALUES}  
                                                 .  
                                                 "(nextVal('archive_id_seq'), nextVal('dvd_nr'), '".%In->{'note'}."', 'dummy', NOW());";  
   
   
                 $dbh->do($kveri);                                          
                   
                 for (my $i = 0; $i <= @selectedBackups /2; $i++)  
                 {  
                         my $host = $selectedBackups[$i*2];  
                         my $backup = $selectedBackups[$i*2+1];  
                         last if ($host == undef && $backup == undef);  
   
                         # insertaj u archive_backup  
                           
   
                         my $kveri = q{  
                                                         INSERT INTO archive_backup  
                                                         SELECT  
                                                                 (SELECT last_value FROM archive_id_seq),}.  
                                                                 $backup.',\'ok\';';  
   
                         $dbh->do($kveri);  
58                  }                  }
59    
60                  my $kveri = q{                  if ($total_kb > ($Conf{MaxArchiveSize} * $parts)) {
61                                                  INSERT INTO workflow_step(step_id, code, next_step, stop)                          $cont .= eval( q{ ${h2(Error)}});
62                                                  VALUES                          $cont .= "Selected backups size $total_kb Kb exceed max archive size $Conf{MaxArchiveSize} Kb.";
63                                                  (                  } elsif ($total_size == 0) {
64                                                          nextVal('workflow_step_id_seq'),                          $cont .= eval( q{ ${h2(Error)}});
65                                                          'start',                          $cont .= "No backups selected.";
66                                                          NULL,                  } else {
67                                                          false  
68                                                  );                                                                        # create new archive
69                                           };                          my $sth = $dbh->prepare(q{
70                  $dbh->do($kveri);                                                          INSERT INTO archive (
71                                                                    id,
72                                                                    dvd_nr,
73                  # insertaj u workflows                                                                  note,
74                  my $kveri = q{                                                                  username,
75                                                  INSERT INTO workflows( id, step_id, start, stop, username, archive_id   , running)                                                                  date,
76                                                  SELECT                                                                  total_size
77                                                          nextVal('workflows_id_seq'),                                                          ) VALUES (
78                                                          (SELECT currVal('workflow_step_id_seq')),                                                                  nextVal('archive_id_seq'),
79                                                          NOW(),                                                                  nextVal('dvd_nr'),
80                                                          NULL,                                                                  ?,
81                                                          'dummy',                                                                  ?,
82                                                          (SELECT last_value FROM archive_id_seq),                                                                  NOW(),
83                                                          true;                                                                  ?
84                                          };                                                          )
85                  $dbh->do($kveri);                                                  });
86            
87                  $dbh->commit();                          $sth->execute($In{'note'}, $User, $total_size);
88    
89                            foreach my $backup_id (@selected_backup_ids) {
90    
91                                    # link backups with archive
92                                    my $sth = $dbh->prepare(q{
93                                            INSERT INTO archive_backup (
94                                                    archive_id, backup_id
95                                            ) VALUES (
96                                                    (SELECT last_value FROM archive_id_seq), ?
97                                            )
98                                    });
99    
100                                    $sth->execute($backup_id);
101    
102                                    $dbh->commit();
103    
104                            }
105    
106                            my ($dvd_nr) = $dbh->selectrow_array(qq{
107                                    select last_value from dvd_nr
108                            });
109    
110                            $dvd_nr ||= 'error';
111    
112                            $dbh->commit();
113    
114                            $cont .= q{
115                                    Archived following backups:
116                            } . join(", ", @selected_backup_ids) . q{
117                                    <br/>with total size of
118                            <b>} . sprintf("%1.2f Mb", $total_size / 1024 / 1024) . q{</b>
119                                    to media <b>} . $dvd_nr . q{</b>
120                                    with following message:
121                                    <div style="background-color: #e0e0e0; display: inline; padding: 2px;">
122                            } . $In{'note'} . q{
123                                    </div>
124                            };
125                    }
126          }          }
127          
128          Header($Lang->{Burn_media}, "", 1, "", $cont);          Header($Lang->{Burn_media}, "", 1, "", $cont);
129    
130          Trailer();          Trailer();
131          $dbh->disconnect();          $dbh->disconnect();
132  }  }

Legend:
Removed from v.143  
changed lines
  Added in v.197

  ViewVC Help
Powered by ViewVC 1.1.26