summaryrefslogtreecommitdiffabout
path: root/lib/App/Glacier/Command/Periodic.pm
Side-by-side diff
Diffstat (limited to 'lib/App/Glacier/Command/Periodic.pm') (more/less context) (ignore whitespace changes)
-rw-r--r--lib/App/Glacier/Command/Periodic.pm23
1 files changed, 14 insertions, 9 deletions
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
@@ -42,30 +42,35 @@ sub run {
my $vault = $descr->{VaultARN};
$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;
}
my $res = $self->glacier->Describe_job($vault, $descr->{JobId});
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}: ",
$self->glacier->last_error_message);
}
} 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') {
$self->debug(1, "$descr->{JobId}: processing $descr->{Action} for $vault");

Return to:

Send suggestions and report system problems to the System administrator.