better use of new status class
This commit is contained in:
@@ -254,21 +254,20 @@ foreach my $host (@hostlist) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
# do job
|
# do job
|
||||||
my ($status, $log);
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
info sprintf '%s: %s started at %s',
|
info sprintf '%s: %s started at %s',
|
||||||
$action, $actiontext, scalar localtime;
|
$action, $actiontext, scalar localtime;
|
||||||
($status, $log) = $worker->$action($job);
|
my $status = $worker->$action($job); # TODO
|
||||||
|
$status->update_job($job);
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
$status = 'error';
|
$job->status('error');
|
||||||
$log = "error running job: $_";
|
$job->log("error running job: $_");
|
||||||
};
|
};
|
||||||
|
|
||||||
info sprintf '%s: finished at %s', $action, scalar localtime;
|
info sprintf '%s: finished at %s', $action, scalar localtime;
|
||||||
info sprintf '%s: status %s: %s', $action, $status, $log;
|
info sprintf '%s: status %s: %s', $action, $job->status, $job->log;
|
||||||
$exitstatus = 1 if !defined $status or $status eq 'error';
|
$exitstatus = 1 if !$exitstatus and $job->status ne 'done';
|
||||||
}
|
}
|
||||||
|
|
||||||
exit $exitstatus;
|
exit $exitstatus;
|
||||||
|
|||||||
@@ -36,4 +36,32 @@ Returns the logical inversion of C<ok>.
|
|||||||
|
|
||||||
sub not_ok { return (not $_[0]->ok) }
|
sub not_ok { return (not $_[0]->ok) }
|
||||||
|
|
||||||
|
=head2 status
|
||||||
|
|
||||||
|
Returns text equivalent of C<done>, C<defer>, or C<error>.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub status {
|
||||||
|
my $self = shift;
|
||||||
|
return (
|
||||||
|
$self->done ? 'done'
|
||||||
|
: $self->defer ? 'defer'
|
||||||
|
: 'error';
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
=head2 update_job
|
||||||
|
|
||||||
|
Updates an L<App::Netdisco::Backend::Job> with status and message.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub update_job {
|
||||||
|
my $self = shift;
|
||||||
|
my $job = shift or return;
|
||||||
|
$job->status( $self->status );
|
||||||
|
$job->log( $self->message );
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|||||||
@@ -39,9 +39,8 @@ sub worker_body {
|
|||||||
$wid, $job->job, $job->summary;
|
$wid, $job->job, $job->summary;
|
||||||
info sprintf "pol (%s): starting %s job(%s) at %s",
|
info sprintf "pol (%s): starting %s job(%s) at %s",
|
||||||
$wid, $action, $job->job, $job->started;
|
$wid, $action, $job->job, $job->started;
|
||||||
my ($status, $log) = $self->$action($job);
|
my $status = $self->$action($job); # TODO
|
||||||
$job->status($status);
|
$status->update_job($job);
|
||||||
$job->log($log);
|
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
$job->status('error');
|
$job->status('error');
|
||||||
|
|||||||
Reference in New Issue
Block a user