mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-11 13:40:07 +00:00
Don't rm meta files after running a service. Save unchanged services in sort_services() and re-schedule them.
This commit is contained in:
@@ -5692,6 +5692,7 @@ sub get_services {
|
|||||||
@$started_ok,
|
@$started_ok,
|
||||||
@$restarted_ok,
|
@$restarted_ok,
|
||||||
@$ran_once_ok,
|
@$ran_once_ok,
|
||||||
|
@{$sorted_services->{unchanged}},
|
||||||
],
|
],
|
||||||
lib_dir => $lib_dir,
|
lib_dir => $lib_dir,
|
||||||
bin_dir => $args{bin_dir}, # optional, for testing
|
bin_dir => $args{bin_dir}, # optional, for testing
|
||||||
@@ -5728,6 +5729,7 @@ sub sort_services {
|
|||||||
my @added;
|
my @added;
|
||||||
my @updated;
|
my @updated;
|
||||||
my @removed;
|
my @removed;
|
||||||
|
my @unchanged;
|
||||||
|
|
||||||
foreach my $service ( @$curr_services ) {
|
foreach my $service ( @$curr_services ) {
|
||||||
my $name = $service->name;
|
my $name = $service->name;
|
||||||
@@ -5744,6 +5746,9 @@ sub sort_services {
|
|||||||
elsif ( $service->ts > $prev_services->{$name}->ts ) {
|
elsif ( $service->ts > $prev_services->{$name}->ts ) {
|
||||||
push @updated, $service;
|
push @updated, $service;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
push @unchanged, $service;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ( scalar keys %$prev_services ) {
|
if ( scalar keys %$prev_services ) {
|
||||||
@removed = grep { !exists $services->{$_->name} } values %$prev_services;
|
@removed = grep { !exists $services->{$_->name} } values %$prev_services;
|
||||||
@@ -5754,6 +5759,7 @@ sub sort_services {
|
|||||||
added => \@added,
|
added => \@added,
|
||||||
updated => \@updated,
|
updated => \@updated,
|
||||||
removed => \@removed,
|
removed => \@removed,
|
||||||
|
unchanged => \@unchanged,
|
||||||
};
|
};
|
||||||
return $sorted_services;
|
return $sorted_services;
|
||||||
}
|
}
|
||||||
@@ -6250,6 +6256,7 @@ sub run_service {
|
|||||||
# Remove tmp output files.
|
# Remove tmp output files.
|
||||||
foreach my $file ( @output_files ) {
|
foreach my $file ( @output_files ) {
|
||||||
next unless defined $file && -f $file;
|
next unless defined $file && -f $file;
|
||||||
|
next if $file =~ m!/meta/!; # TODO: handle this better
|
||||||
unlink $file
|
unlink $file
|
||||||
or _warn("Error removing $file: $OS_ERROR");
|
or _warn("Error removing $file: $OS_ERROR");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user