--- trunk/lib/BackupPC/CGI/BurnMedia.pm 2005/10/07 10:28:55 144
+++ trunk/lib/BackupPC/CGI/BurnMedia.pm 2005/10/07 11:15:28 145
@@ -3,7 +3,6 @@
use strict;
use BackupPC::CGI::Lib qw(:all);
use BackupPC::SearchLib;
-use BackupPC::Workflow::Create;
use Data::Dumper;
use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);
@@ -36,88 +35,72 @@
} else {
- my @selectedBackups;
+ my @selected_backup_ids;
+
my $total_size = 0;
- foreach my $key(keys(%In))
- {
- if ($key =~ m/fcb([0-9]+)_([0-9]+)/gi)
- {
- my $hostID = $1;
- my $backupnum = $2;
- push(@selectedBackups, ($hostID, $backupnum));
- $total_size += getGzipSize($hostID, $backupnum);
+ foreach my $key(keys(%In)) {
+ if ($key =~ m/^fcb([0-9]+)_([0-9]+)_([0-9]+)$/gi) {
+ my ($host_id, $backup_num, $backup_id) = ($1,$2,$3);
+ push @selected_backup_ids, $backup_id;
+ $total_size += getGzipSize($host_id, $backup_num);
}
}
- if ($total_size > $Conf{MaxArchiveSize})
- {
+ # create new archive
+ my $sth = $dbh->prepare(q{
+ INSERT INTO archive (
+ id,
+ dvd_nr,
+ note,
+ username,
+ date
+ ) VALUES (
+ nextVal('archive_id_seq'),
+ nextVal('dvd_nr'),
+ ?,
+ ?,
+ NOW()
+ )
+ });
+
+ # FIXME insert user here
+ $sth->execute($In{'note'}, 'dummy_user');
+
+ if ($total_size > $Conf{MaxArchiveSize}) {
$cont .= eval( q{ ${h2(Error)}});
- $cont .= "Selected backups exceed max archive size.";
- }
- else
- {
- # 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());";
+ $cont .= "Selected backups exceed max archive size.";
+ } else {
+ foreach my $backup_id (@selected_backup_ids) {
- $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);
+ # link backups with archive
+ my $sth = $dbh->prepare(q{
+ INSERT INTO archive_backup (
+ archive_id, backup_id, status
+ ) VALUES (
+ (SELECT last_value FROM archive_id_seq), ?, ?
+ )
+ });
+
+ $sth->execute($backup_id, 'ok');
+
+ $dbh->commit();
+
+ $cont .= qq{
+ Archived following backups:
+ } . join(",", @selected_backup_ids) . qq{
+
with following message:
+