> Thomas Lamprecht <t.lampre...@proxmox.com> hat am 12. Dezember 2017 um 08:20 
> geschrieben:
> 
> 
> On 12/07/2017 12:07 PM, Wolfgang Link wrote:
> > A email notification will be send for each job when the job fails.
> > This message will only send when an error occurs and the fail count is on 1.
> > ---
> >  PVE/API2/Replication.pm  | 18 ++++++++++++++++--
> >  PVE/CLI/pvesr.pm         | 11 ++++++++++-
> >  bin/init.d/pvesr.service |  2 +-
> >  3 files changed, 27 insertions(+), 4 deletions(-)
> > 
> > diff --git a/PVE/API2/Replication.pm b/PVE/API2/Replication.pm
> > index 38449892..8c049363 100644
> > --- a/PVE/API2/Replication.pm
> > +++ b/PVE/API2/Replication.pm
> > @@ -72,7 +72,7 @@ sub run_single_job {
> >  
> >  # passing $now and $verbose is useful for regression testing
> >  sub run_jobs {
> > -    my ($now, $logfunc, $verbose) = @_;
> > +    my ($now, $logfunc, $verbose, $mail) = @_;
> >  
> >      my $iteration = $now // time();
> >  
> > @@ -83,7 +83,21 @@ sub run_jobs {
> >  
> >     while (my $jobcfg = PVE::ReplicationState::get_next_job($iteration, 
> > $start_time)) {
> >         my $guest_class = $lookup_guest_class->($jobcfg->{vmtype});
> > -       PVE::Replication::run_replication($guest_class, $jobcfg, 
> > $iteration, $start_time, $logfunc, 1, $verbose);
> > +
> > +       eval {
> > +           PVE::Replication::run_replication($guest_class, $jobcfg, 
> > $iteration, $start_time, $logfunc, $verbose);
> > +       };
> > +       if (my $err = $@) {
> > +           warn "$jobcfg->{id}: got unexpected replication job error - 
> > $err";
> > +           my $state = PVE::ReplicationState::read_state();
> > +           my $jobstate = PVE::ReplicationState::extract_job_state($state, 
> > $jobcfg);
> > +           eval {
> > +               PVE::Tools::sendmail('root', "Replication Job: 
> > $jobcfg->{id} failed", $err)
> > +                   if $jobstate->{fail_count} == 1 && $mail;
> > +           };
> 
> 
> 
> > +           warn ": $@" if $@;
>                      ^^^^
> Is the colon + space above intended?

Yes it is, because this is a sub-warning of the warning before.
> 
> > +       };
>             ^^^
> nit: semicolon not needed for if branch.

This semicolon belongs to the eval clause.

> Looks OK otherwise:
> Reviewed-by: Thomas Lamprecht <t.lampre...@proxmox.com>
> 
> 
> > +
> >         $start_time = $now // time();
> >     }
> >      };
> > diff --git a/PVE/CLI/pvesr.pm b/PVE/CLI/pvesr.pm
> > index 7da94404..cb79e2bf 100644
> > --- a/PVE/CLI/pvesr.pm
> > +++ b/PVE/CLI/pvesr.pm
> > @@ -221,12 +221,21 @@ __PACKAGE__->register_method ({
> >             default => 0,
> >             optional => 1,
> >         },
> > +       mail => {
> > +           description => "Send an email notification in case of a 
> > failure.",
> > +           type => 'boolean',
> > +           default => 0,
> > +           optional => 1,
> > +       },
> >     },
> >      },
> >      returns => { type => 'null' },
> >      code => sub {
> >     my ($param) = @_;
> >  
> > +   die "Mail and id are mutually exclusive!\n"
> > +       if $param->{id} && $param->{mail};
> > +
> >     my $logfunc;
> >  
> >     if ($param->{verbose}) {
> > @@ -242,7 +251,7 @@ __PACKAGE__->register_method ({
> >  
> >     } else {
> >  
> > -       PVE::API2::Replication::run_jobs(undef, $logfunc);
> > +       PVE::API2::Replication::run_jobs(undef, $logfunc, 0, 
> > $param->{mail});
> >     }
> >  
> >     return undef;
> > diff --git a/bin/init.d/pvesr.service b/bin/init.d/pvesr.service
> > index 5706d426..e0c082af 100644
> > --- a/bin/init.d/pvesr.service
> > +++ b/bin/init.d/pvesr.service
> > @@ -4,4 +4,4 @@ ConditionPathExists=/usr/bin/pvesr
> >  
> >  [Service]
> >  Type=oneshot
> > -ExecStart=/usr/bin/pvesr run
> > +ExecStart=/usr/bin/pvesr run --mail 1
> > 
>

Best Regards,

Wolfgang Link

w.l...@proxmox.com
http://www.proxmox.com

____________________________________________________________________
Proxmox Server Solutions GmbH
BrÀuhausgasse 37, 1050 Vienna, Austria
Commercial register no.: FN 258879 f
Registration office: Handelsgericht Wien

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to