my $dbh = DBI->connect($Conf{SearchDSN}, $Conf{SearchUser}, "", { RaiseError => 1, AutoCommit => 0 } );
BackupPC::CGI::Lib::NewRequest();
-# $cont = Dumper(%In);
+ $cont = Dumper(\%In);
if (!defined($In{submitBurner})) {
$title = eval(q{ ${h1($Lang->{Burn_media})}});
$cont = Dumper(%In);
} else {
- my @selected_backup_ids;
+ my @selected_backup_parts;
- my $total_size = 0;
- my $selected = 0;
-
- my $parts = 1;
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;
- my $currSize = BackupPC::Search::getGzipSizeFromBackupID($backup_id);
- my $sth_size = $dbh->prepare(q{select inc_size from backups where id = ?});
- $sth_size -> execute( $backup_id );
- my $db_size = $sth_size->fetchrow_hashref()->{inc_size};
-
- if ($db_size != $currSize) {
- $cont .= "NOT EQUAL!: [fs_size:$currSize, db_size:$db_size, backup_id:$backup_id] <br />";
- }
-
- if ($currSize > 0) {
- $total_size += $currSize;
- }
- $selected++;
-
- my ($this_part) = $dbh->selectrow_array("select parts from backups where id = ?", undef, $backup_id);
- $this_part--;
- $parts += $this_part;
- }
+ next unless $key =~ m/^fcb(\d+)/;
+ push @selected_backup_parts, $1;
}
- if ($total_size > ($Conf{ArchiveMediaSize} * $parts)) {
+
+ my ($total_size) = $dbh->selectrow_array( q{
+ SELECT sum(size) FROM backup_parts
+ WHERE id IN ( }.join(',', @selected_backup_parts).q{ )
+ });
+
+
+ if ($total_size > ($Conf{ArchiveMediaSize})) {
$cont .= eval(' ${h2(Error)} ');
$cont .= join(' '
, "Selected backups size", unit($total_size)
$sth->execute($In{'note'}, $User, $total_size);
- foreach my $backup_id (@selected_backup_ids) {
-
- # link backups with archive
- my $sth = $dbh->prepare(q{
- INSERT INTO archive_backup (
- archive_id, backup_id
- ) VALUES (
- (SELECT last_value FROM archive_id_seq), ?
- )
- });
-
- $sth->execute($backup_id);
-
- $dbh->commit();
-
- }
+ my $sth = $dbh->prepare(q{
+ INSERT INTO archive_parts (
+ archive_id, backup_part_id
+ ) VALUES (
+ (SELECT last_value FROM archive_id_seq), ?
+ )
+ });
+ $sth->execute($_) foreach @selected_backup_parts;
my ($dvd_nr) = $dbh->selectrow_array(qq{
select last_value from dvd_nr
});
- $dvd_nr ||= 'error';
+ die "no dvd_nr" unless $dvd_nr;
$dbh->commit();
- my $db_size = 0;
- $sth = $dbh->prepare('SELECT SUM(gzip_size) AS suma FROM backups_on_dvds WHERE dvd_nr=?');
- $sth->execute($dvd_nr);
- $db_size = $sth->fetchrow_hashref()->{suma};
- $sth->finish();
-
$cont .= q{
- Archived following backups:
- } . join(", ", @selected_backup_ids) . q{
+ Archived following backups parts:
+ } . join(", ", @selected_backup_parts) . q{
<br/>with total size of
<b>} . unit($total_size)
. q{</b>