> 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