Changeset 158
- Timestamp:
- 07/30/07 22:37:26 (2 years ago)
- Location:
- trunk
- Files:
-
- 4 modified
-
Changes (modified) (1 diff)
-
brackup-target (modified) (2 diffs)
-
lib/Brackup/Target/Amazon.pm (modified) (1 diff)
-
lib/Brackup/Target/Filesystem.pm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Changes
r157 r158 1 - Amazon list_backups and delete backups (and delete for filesystem 2 target too), from Alessandro Ranellucci <aar@cpan.org> 3 1 4 - make tests pass on OS X (Jesse Vincent) 2 5 -
trunk/brackup-target
r150 r158 107 107 my $name = shift @ARGV or 108 108 die "get_backup requires a filename to download"; 109 $target->get_backup($name); 109 $target->get_backup($name) 110 or die "Failed to retrieve backup $name\n"; 110 111 } 111 112 … … 122 123 $target->get_backup($si->filename); 123 124 } 125 } 126 127 sub CMD_delete_backup { 128 my $name = shift @ARGV or 129 die "delete_backup requires a filename to download"; 130 $target->delete_backup($name) 131 or die "Failed to delete backup $name\n"; 124 132 } 125 133 -
trunk/lib/Brackup/Target/Amazon.pm
r134 r158 143 143 } 144 144 145 sub backups { 146 my $self = shift; 147 148 my @ret; 149 my $backups = $self->{s3}->list_bucket_all({ bucket => $self->{backup_bucket} }); 150 foreach my $backup (@{ $backups->{keys} }) { 151 push @ret, Brackup::TargetBackupStatInfo->new($self, $backup->{key}, 152 time => $backup->{last_modified}, 153 size => $backup->{size}); 154 } 155 return @ret; 156 } 157 158 sub get_backup { 159 my $self = shift; 160 my $name = shift; 161 162 my $bucket = $self->{s3}->bucket($self->{backup_bucket}); 163 my $val = $bucket->get_key($name) 164 or return 0; 165 166 open(my $out, ">$name.brackup") or die "Failed to open $name.brackup: $!\n"; 167 my $outv = syswrite($out, $val->{value}); 168 die "download/write error" unless $outv == do { use bytes; length $val->{value} }; 169 close $out; 170 return 1; 171 } 172 173 sub delete_backup { 174 my $self = shift; 175 my $name = shift; 176 177 my $bucket = $self->{s3}->bucket($self->{backup_bucket}); 178 return $bucket->delete_key($name); 179 } 180 145 181 1; 146 182 -
trunk/lib/Brackup/Target/Filesystem.pm
r148 r158 152 152 } 153 153 154 sub delete_backup { 155 my $self = shift; 156 my $name = shift; 157 158 my $file = sprintf '%s/%s.brackup', $self->_metafile_dir, $name; 159 die "File doesn't exist: $file" unless -e $file; 160 unlink $file; 161 return 1; 162 } 163 154 164 1; 155 165
