diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-12-18 20:33:46 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-12-18 20:33:46 +0200 |
commit | 249512af92d3f592ae683279c2cd1f54a7c1a726 (patch) | |
tree | e71528045c19978bac042c7d6f52cc3485d4feea | |
parent | 728992688946fe88173e7cd561456a10c9d23fd8 (diff) | |
download | glacier-249512af92d3f592ae683279c2cd1f54a7c1a726.tar.gz glacier-249512af92d3f592ae683279c2cd1f54a7c1a726.tar.bz2 |
Fix periodic subcommand
-rw-r--r-- | lib/App/Glacier/Bre.pm | 4 | ||||
-rw-r--r-- | lib/App/Glacier/Command/Jobs.pm | 4 | ||||
-rw-r--r-- | lib/App/Glacier/Command/Periodic.pm | 23 |
3 files changed, 19 insertions, 12 deletions
diff --git a/lib/App/Glacier/Bre.pm b/lib/App/Glacier/Bre.pm index 3b1d190..cd9fb84 100644 --- a/lib/App/Glacier/Bre.pm +++ b/lib/App/Glacier/Bre.pm @@ -27,6 +27,6 @@ sub new { # Overwrite the 'sig' attribute. # FIXME: The attribute itself is not documented, so this - # this method may fail if the internals of the base class - # change in its future releases. + # method may fail if the internals of the base class change + # in its future releases. # This approach works with Net::Amazon::Glacier 0.15 $self->{sig} = new App::Glacier::Signature($self->{sig}, $token); diff --git a/lib/App/Glacier/Command/Jobs.pm b/lib/App/Glacier/Command/Jobs.pm index 736d713..5a5f488 100644 --- a/lib/App/Glacier/Command/Jobs.pm +++ b/lib/App/Glacier/Command/Jobs.pm @@ -7,4 +7,5 @@ use Carp; use Data::Dumper; use App::Glacier::Timestamp; +use App::Glacier::Job; =head1 NAME @@ -137,5 +138,6 @@ sub list { ($descr->{JobDescription} || $descr->{Action}) . $descr->{JobId}); - $db->delete($key) unless $self->dry_run; + App::Glacier::Job->fromdb($self, $vault, $key, $res)->delete() + unless $self->dry_run; return; } else { diff --git a/lib/App/Glacier/Command/Periodic.pm b/lib/App/Glacier/Command/Periodic.pm index 51c9718..5a4dc2a 100644 --- a/lib/App/Glacier/Command/Periodic.pm +++ b/lib/App/Glacier/Command/Periodic.pm @@ -43,11 +43,13 @@ sub run { $vault =~ s{.*:vaults/}{}; - return if $descr->{Completed}; + my $completed = $descr->{Completed}; $self->debug(2, "$descr->{JobId} $descr->{Action} $vault"); if ($descr->{StatusCode} eq 'Failed') { - $self->debug(1, "deleting failed $key $vault " . - ($descr->{JobDescription} || $descr->{Action}) . - $descr->{JobId}); + $self->debug(1, + "deleting failed $key $vault " + . ($descr->{JobDescription} || $descr->{Action}) + . ' ' + . $descr->{JobId}); $db->delete($key) unless $self->dry_run; } @@ -56,8 +58,11 @@ sub run { if ($self->glacier->lasterr) { if ($self->glacier->lasterr('code') == 404) { - $self->debug(1, "deleting expired $key $vault " . - ($descr->{JobDescription} || $descr->{Action}) . - $descr->{JobId}); - $db->delete($key) unless $self->dry_run; + $self->debug(1, + "deleting expired $key $vault " + . ($descr->{JobDescription} || $descr->{Action}) + . ' ' + . $descr->{JobId}); + App::Glacier::Job->fromdb($self, $vault, $key, $res)->delete() + unless $self->dry_run; } else { $self->error("can't describe job $descr->{JobId}: ", @@ -66,5 +71,5 @@ sub run { } elsif (ref($res) ne 'HASH') { croak "describe_job returned wrong datatype (".ref($res).") for \"$descr->{JobId}\""; - } else { + } elsif ($res->{Completed} ne $completed) { $self->debug(2, $res->{StatusCode}); if ($res->{Completed} && $res->{StatusCode} eq 'Succeeded') { |