/[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 53 by dpavlin, Sat Aug 20 17:19:48 2005 UTC revision 144 by iklaric, Fri Oct 7 10:28:55 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;
6    use BackupPC::Workflow::Create;
7  use Data::Dumper;  use Data::Dumper;
8  use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);  use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);
9    
# Line 15  sub action() { Line 16  sub action() {
16          my $subtitle;          my $subtitle;
17          my @files;          my @files;
18    
19          my $dbh = DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 1 } );          my $dbh = DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 0 } );
20    
21          BackupPC::CGI::Lib::NewRequest();          BackupPC::CGI::Lib::NewRequest();
22          $cont = Dumper(%In);  #       $cont = Dumper(%In);
23          if (!defined($In{submitBurner})) {          if (!defined($In{submitBurner})) {
24                  $title = eval(q{ ${h1($Lang->{Burn_media})}});                  $title = eval(q{ ${h1($Lang->{Burn_media})}});
25                  $cont = Dumper(%In);                  $cont = Dumper(%In);
# Line 30  sub action() { Line 31  sub action() {
31                    
32  EOF  EOF
33                                
34                  $cont .= "Backups that have files not archived:<br>";                  $cont .= "Backups that have not been archived:<br>";
35                  $cont .= BackupPC::SearchLib::displayBackupsGrid();                  $cont .= BackupPC::SearchLib::displayBackupsGrid();
36                            
37          } else {          } else {
38    
39                  my $mediumName = "DVD";                  my @selectedBackups;
40                    my $total_size = 0;
41                  $title = eval(q{ ${h1($Lang->{Burn_media})}});                  
42                  $subtitle = eval(q{ ${h2($Lang->{Burn_media_assign})}});                  foreach my $key(keys(%In))
43                  $cont = <<EOF;                  {
44                            if ($key =~ m/fcb([0-9]+)_([0-9]+)/gi)
45          $title                          {
46          $subtitle                                  my $hostID = $1;
47                                    my $backupnum = $2;
48  EOF                                  push(@selectedBackups, ($hostID, $backupnum));
49                                                $total_size += getGzipSize($hostID, $backupnum);
50                  # insert DVD first,                          }
51                  my $sql = q{ SELECT MAX(num)+1 AS maxNum FROM dvds; };                  }
   
                 my $sth = $dbh->prepare($sql);  
                 $sth->execute();  
   
                 my ($mediumNum) = $sth->fetchrow_array();  
                 $mediumNum ||= '0';  
   
                 $mediumName = "DVD".$mediumNum;  
                 $sth = $dbh->prepare (q{  
                                 INSERT INTO dvds (num, name)  
                                 VALUES  
                                 (?,?)                                    
                 });  
   
                 $sth->execute($mediumNum, $mediumName);  
   
                 my $dvdid = $dbh->last_insert_id(undef,undef,'dvds',undef);          
               
                 my $updateSQL = q{  
                         UPDATE files  
                         SET dvdid=?  
                         WHERE files.shareID IN (  
                                 SELECT ID FROM shares WHERE hostID=?  
                         ) AND  
                                 files.backupNum=?  
                 };  
52    
53                  my $update_sth = $dbh->prepare($updateSQL);                  if ($total_size > $Conf{MaxArchiveSize})
54                  my $orQuery = "";                  {
55                                        $cont .= eval( q{ ${h2(Error)}});
56                  # then, assign dvdid to files                          $cont .= "Selected backups exceed max archive size.";                  
57                  foreach my $key (keys(%In)) {                  }
58                          if ($key =~ /fcb/) {                                      else
59                                  my ($hID, $bNo) = split(/_/, $In{$key});                  {
60                                  $update_sth->execute($dvdid, $hID, $bNo);                          # kreiraj arhivu
61                            my $kveri = q{
62                                                    INSERT INTO archive
63                                                    (id, dvd_nr, note, username, date)
64                                                    VALUES}
65                                                    .
66                                                    "(nextVal('archive_id_seq'), nextVal('dvd_nr'), '".%In->{'note'}."', 'dummy', NOW());";
67    
68    
69                            $dbh->do($kveri);                                        
70                    
71                            for (my $i = 0; $i <= @selectedBackups /2; $i++)
72                            {
73                                    my $host = $selectedBackups[$i*2];
74                                    my $backup = $selectedBackups[$i*2+1];
75                                    last if ($host == undef && $backup == undef);
76            
77                                    # insertaj u archive_backup
78                                    
79            
80                                    my $kveri = q{
81                                                                    INSERT INTO archive_backup
82                                                                    SELECT
83                                                                            (SELECT last_value FROM archive_id_seq),}.
84                                                                            $backup.',\'ok\';';
85            
86                                    $dbh->do($kveri);
87                          }                          }
88            
89                            my $kveri = q{
90                                                            INSERT INTO workflow_step(step_id, code, next_step, stop)
91                                                            VALUES
92                                                            (
93                                                                    nextVal('workflow_step_id_seq'),
94                                                                    'start',
95                                                                    NULL,
96                                                                    false
97                                                            );                                              
98                                                     };
99                            $dbh->do($kveri);
100            
101            
102                            # insertaj u workflows
103                            my $kveri = q{
104                                                            INSERT INTO workflows( id, step_id, start, stop, username, archive_id   , running)
105                                                            SELECT
106                                                                    nextVal('workflows_id_seq'),
107                                                                    (SELECT currVal('workflow_step_id_seq')),
108                                                                    NOW(),
109                                                                    NULL,
110                                                                    'dummy',
111                                                                    (SELECT last_value FROM archive_id_seq),
112                                                                    true;
113                                                    };
114                            $dbh->do($kveri);
115                    
116                            $dbh->commit();
117                  }                  }
                 $cont .= "Backups assigned to media ".$mediumName;  
118          }          }
119                                
120          Header($Lang->{Burn_media}, "", 1, "", $cont);          Header($Lang->{Burn_media}, "", 1, "", $cont);
121          Trailer();          Trailer();
122          $dbh->disconnect();          $dbh->disconnect();

Legend:
Removed from v.53  
changed lines
  Added in v.144

  ViewVC Help
Powered by ViewVC 1.1.26