/[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

Contents of /trunk/lib/BackupPC/CGI/BurnMedia.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 144 - (show annotations)
Fri Oct 7 10:28:55 2005 UTC (18 years, 6 months ago) by iklaric
File size: 2698 byte(s)
 r157@klaxLaptop:  klax | 2005-10-07 12:28:46 +0200
 added $Conf{MaxArchiveSize}, total_gzip_size checking in BurnMedia.pm

1 package BackupPC::CGI::BurnMedia;
2
3 use strict;
4 use BackupPC::CGI::Lib qw(:all);
5 use BackupPC::SearchLib;
6 use BackupPC::Workflow::Create;
7 use Data::Dumper;
8 use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);
9
10 my $dsn = $Conf{SearchDSN};
11 my $db_user = $Conf{SearchUser} || '';
12
13 sub action() {
14 my $cont = "";
15 my $title;
16 my $subtitle;
17 my @files;
18
19 my $dbh = DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 0 } );
20
21 BackupPC::CGI::Lib::NewRequest();
22 # $cont = Dumper(%In);
23 if (!defined($In{submitBurner})) {
24 $title = eval(q{ ${h1($Lang->{Burn_media})}});
25 $cont = Dumper(%In);
26 $subtitle = eval(q{ ${h2($Lang->{Burn_media_select})}});
27 $cont = <<EOF;
28
29 $title
30 $subtitle
31
32 EOF
33
34 $cont .= "Backups that have not been archived:<br>";
35 $cont .= BackupPC::SearchLib::displayBackupsGrid();
36
37 } else {
38
39 my @selectedBackups;
40 my $total_size = 0;
41
42 foreach my $key(keys(%In))
43 {
44 if ($key =~ m/fcb([0-9]+)_([0-9]+)/gi)
45 {
46 my $hostID = $1;
47 my $backupnum = $2;
48 push(@selectedBackups, ($hostID, $backupnum));
49 $total_size += getGzipSize($hostID, $backupnum);
50 }
51 }
52
53 if ($total_size > $Conf{MaxArchiveSize})
54 {
55 $cont .= eval( q{ ${h2(Error)}});
56 $cont .= "Selected backups exceed max archive size.";
57 }
58 else
59 {
60 # 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 }
118 }
119
120 Header($Lang->{Burn_media}, "", 1, "", $cont);
121 Trailer();
122 $dbh->disconnect();
123 }
124
125 1;

  ViewVC Help
Powered by ViewVC 1.1.26