From 0d4e79f3563bfbaf896514030e62d90294b2ca21 Mon Sep 17 00:00:00 2001 From: dpavlin Date: Fri, 7 Oct 2005 11:15:28 +0000 Subject: [PATCH] r8368@llin: dpavlin | 2005-10-07 13:15:21 +0200 refactor code a lot. Probably broken now. git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/BackupPC/trunk@145 8392b6e1-25fa-0310-8288-cc32f8e212ea --- lib/BackupPC/CGI/BurnMedia.pm | 129 +++++++++++++++------------------- lib/BackupPC/SearchLib.pm | 24 ++++--- 2 files changed, 70 insertions(+), 83 deletions(-) diff --git a/lib/BackupPC/CGI/BurnMedia.pm b/lib/BackupPC/CGI/BurnMedia.pm index 022721b..6f47cc1 100644 --- a/lib/BackupPC/CGI/BurnMedia.pm +++ b/lib/BackupPC/CGI/BurnMedia.pm @@ -3,7 +3,6 @@ package BackupPC::CGI::BurnMedia; 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 @@ EOF } 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());"; - - - $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); + $cont .= "Selected backups exceed max archive size."; + } else { + + foreach my $backup_id (@selected_backup_ids) { + + # 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: +
+ } . $In{'note'} . qq{ +
+ }; } - - my $kveri = q{ - INSERT INTO workflow_step(step_id, code, next_step, stop) - VALUES - ( - nextVal('workflow_step_id_seq'), - 'start', - NULL, - false - ); - }; - $dbh->do($kveri); - - - # insertaj u workflows - my $kveri = q{ - INSERT INTO workflows( id, step_id, start, stop, username, archive_id , running) - SELECT - nextVal('workflows_id_seq'), - (SELECT currVal('workflow_step_id_seq')), - NOW(), - NULL, - 'dummy', - (SELECT last_value FROM archive_id_seq), - true; - }; - $dbh->do($kveri); - - $dbh->commit(); } } - + Header($Lang->{Burn_media}, "", 1, "", $cont); + Trailer(); $dbh->disconnect(); } diff --git a/lib/BackupPC/SearchLib.pm b/lib/BackupPC/SearchLib.pm index 07273d3..fdcad2a 100644 --- a/lib/BackupPC/SearchLib.pm +++ b/lib/BackupPC/SearchLib.pm @@ -308,11 +308,12 @@ sub getGzipSize($$) WHERE shares.id=backups.shareid AND hosts.id =backups.hostid AND hosts.id=? AND - backups.num=?; + backups.num=? }; my $sth = $dbh->prepare($sql); - $sth->execute($hostID, $backupNUM); - my $row = $res->fetchrow_hashref(); + $sth->execute($hostID, $backupNum); + + my $row = $sth->fetchrow_hashref(); my (undef,undef,undef,undef,undef,undef,undef,$ret,undef,undef,undef,undef,undef) = stat( $Conf{InstallDir}.'/'.$Conf{GzipTempDir}.'/'. @@ -330,10 +331,11 @@ sub getBackupsNotBurned() { backups.hostID AS hostID, hosts.name AS host, shares.name AS share, - backups.id AS backupnum, + backups.num AS backupnum, backups.type AS type, backups.date AS date, - backups.size AS size + backups.size AS size, + backups.id AS id FROM backups INNER JOIN shares ON backups.shareID=shares.ID INNER JOIN hosts ON backups.hostID = hosts.ID @@ -697,18 +699,20 @@ EOF3 } my $ftype = ""; + my $checkbox_key = $backup->{'hostid'}. '_' .$backup->{'backupnum'} . '_' . $backup->{'id'}; + $retHTML .= ' '; + # FIXME $backup->{'fs_size'} = int($backup->{'size'} * 1024); + if (($backup->{'fs_size'} || 0) > 0) { $retHTML .= ' - '; + '; } + $retHTML .= '' . '' . $backup->{'host'} . ':' . $backup->{'share'} . '' . @@ -718,7 +722,7 @@ EOF3 '' . $backup->{'age'} . '' . '' . $backup->{'size'} . '' . '' . $backup->{'fs_size'} . - '' . + '' . "\n"; } -- 2.20.1