/[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 121 by iklaric, Thu Sep 15 13:54:29 2005 UTC revision 148 by iklaric, Fri Oct 7 12:06:35 2005 UTC
# Line 15  sub action() { Line 15  sub action() {
15          my $subtitle;          my $subtitle;
16          my @files;          my @files;
17    
18          my $dbh = DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 1 } );          my $dbh = DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 0 } );
19    
20          BackupPC::CGI::Lib::NewRequest();          BackupPC::CGI::Lib::NewRequest();
21  #       $cont = Dumper(%In);  #       $cont = Dumper(%In);
# Line 35  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                  {                  
42                          if ($key =~ m/fcb([0-9]+)_([0-9]+)/gi)                  foreach my $key(keys(%In)) {
43                          {                          if ($key =~ m/^fcb([0-9]+)_([0-9]+)_([0-9]+)$/gi) {
44                                  my $hostID = $1;                                  my ($host_id, $backup_num, $backup_id) = ($1,$2,$3);
45                                  my $backupnum = $2;                                  push @selected_backup_ids, $backup_id;
46                                  push(@selectedBackups, ($hostID, $backupnum));                                  $total_size += BackupPC::SearchLib::getGzipSize($host_id, $backup_num);
47                          }                          }
48                  }                  }
49    
                 # kreiraj arhivu  
                 my $kveri = q{  
                                                 INSERT INTO archive  
                                                 (id, dvd_nr, note, username, date)  
                                                 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\';';  
50    
51                          $dbh->do($kveri);                  if ($total_size > $Conf{MaxArchiveSize}) {
52                            $cont .= eval( q{ ${h2(Error)}});
53                            $cont .= "Selected backups exceed max archive size.";
54                    } else {
55    
56                            # create new archive
57                            my $sth = $dbh->prepare(q{
58                                                            INSERT INTO archive (
59                                                                    id,
60                                                                    dvd_nr,
61                                                                    note,
62                                                                    username,
63                                                                    date
64                                                            ) VALUES (
65                                                                    nextVal('archive_id_seq'),
66                                                                    nextVal('dvd_nr'),
67                                                                    ?,
68                                                                    ?,
69                                                                    NOW()
70                                                            )
71                                                    });
72    
73                            # FIXME insert user here
74                            $sth->execute($In{'note'}, 'dummy_user');
75    
76                            foreach my $backup_id (@selected_backup_ids) {
77    
78                                    # link backups with archive
79                                    my $sth = $dbh->prepare(q{
80                                            INSERT INTO archive_backup (
81                                                    archive_id, backup_id, status
82                                            ) VALUES (
83                                                    (SELECT last_value FROM archive_id_seq), ?, ?
84                                            )
85                                    });
86    
87                                    $sth->execute($backup_id, 'ok');
88    
89                                    $dbh->commit();
90    
91                                    $cont .= qq{
92                                            Archived following backups:
93                                    } . join(",", @selected_backup_ids) . qq{
94                                            <br/>with following message:
95                                            <div style="border: 1px solid #e0e0e0">
96                                    } . $In{'note'} . qq{
97                                            </div>
98                                    };
99                            }
100                            $dbh->commit();
101                  }                  }
   
   
                 # insertaj u workflows  
                 my $kveri = q{  
                                                 INSERT INTO workflows  
                                                 SELECT  
                                                         (SELECT step_id FROM workflow_step WHERE code='start' LIMIT 1),  
                                                         NOW(),  
                                                         NULL,  
                                                         'dummy',  
                                                         (SELECT last_value FROM archive_id_seq),  
                                                         true  
                                         };  
102          }          }
103          
104          Header($Lang->{Burn_media}, "", 1, "", $cont);          Header($Lang->{Burn_media}, "", 1, "", $cont);
105    
106          Trailer();          Trailer();
107          $dbh->disconnect();          $dbh->disconnect();
108  }  }

Legend:
Removed from v.121  
changed lines
  Added in v.148

  ViewVC Help
Powered by ViewVC 1.1.26