Don't rm meta files after running a service. Save unchanged services in sort_services() and re-schedule them.

This commit is contained in:
Daniel Nichter
2013-05-03 16:12:52 -07:00
parent 1b547b9822
commit a62b2c193b

View File

@@ -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,16 +5746,20 @@ 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;
} }
my $sorted_services = { my $sorted_services = {
services => $services, services => $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");
} }