From 5bd7248c6c9996621f9d9439b9c507dde8d20b7d Mon Sep 17 00:00:00 2001 From: Daniel Nichter Date: Fri, 14 Jun 2013 19:12:58 -0700 Subject: [PATCH] Replace __BIN_DIR__ and __TRASH_FILE__. Init --spool/.trash. --- bin/pt-agent | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/bin/pt-agent b/bin/pt-agent index 6537a726..a4278177 100755 --- a/bin/pt-agent +++ b/bin/pt-agent @@ -5398,7 +5398,7 @@ sub main { $logger->info("Done running $service, exit $exit_status"); }; if ( $EVAL_ERROR ) { - $logger->error("Error running pt-agent --service $service: $EVAL_ERROR"); + $logger->fatal("Error running service $service: $EVAL_ERROR"); } return $exit_status; } @@ -5418,7 +5418,7 @@ sub main { $logger->info("Done sending data for $service, exit $exit_status"); }; if ( $EVAL_ERROR ) { - $logger->error("Error running pt-agent --send-data $service: $EVAL_ERROR"); + $logger->fatal("Error running sending $service data: $EVAL_ERROR"); } return $exit_status; } @@ -5487,7 +5487,7 @@ sub main { ); }; if ( $EVAL_ERROR ) { - $logger->fatal("pt-agent crashed: $EVAL_ERROR"); + $logger->fatal("Error running agent: $EVAL_ERROR"); } $logger->info("pt-agent exit $exit_status, oktorun $oktorun"); @@ -6779,10 +6779,11 @@ sub run_service { my $cxn = $args{Cxn}; # Optional args - my $agent = $args{agent}; # for testing - my $client = $args{client}; # for testing - my $json = $args{json}; # for testing - my $prefix = $args{prefix} || int(time); # for testing + my $bin_dir = defined $args{bin_dir} ? $args{bin_dir} : "$FindBin::Bin/"; + my $agent = $args{agent}; # for testing + my $client = $args{client}; # for testing + my $json = $args{json}; # for testing + my $prefix = $args{prefix} || int(time); # for testing my $start_time = time; @@ -6970,13 +6971,15 @@ sub run_service { if ( my $query = $task->query ) { $query = replace_special_vars( cmd => $query, + spool_dir => $spool_dir, output_files => \@output_files, # __RUN_n_OUTPUT__ service => $service->name, # __SERVICE__ lib_dir => $lib_dir, # __LIB__ meta_dir => "$lib_dir/meta", # __META__ stage_dir => $tmp_dir, # __STAGE__ store => $store, # __STORE_key__ - ts => $prefix, + ts => $prefix, # __TS__ + bin_dir => $bin_dir, # __BIN_DIR__ ); $logger->info("Task $taskno query: $query"); my $rows; @@ -7033,13 +7036,15 @@ sub run_service { ); $cmd = replace_special_vars( cmd => $cmd, + spool_dir => $spool_dir, output_files => \@output_files, # __RUN_n_OUTPUT__ service => $service->name, # __SERVICE__ lib_dir => $lib_dir, # __LIB__ meta_dir => "$lib_dir/meta", # __META__ stage_dir => $tmp_dir, # __STAGE__ store => $store, # __STORE_key__ - ts => $prefix, + ts => $prefix, # __TS__ + bin_dir => $bin_dir, # __BIN_DIR__ ); $logger->info("Task $taskno command: $cmd"); @@ -7157,6 +7162,7 @@ sub replace_special_vars { have_required_args(\%args, qw( cmd + spool_dir output_files service lib_dir @@ -7164,8 +7170,10 @@ sub replace_special_vars { stage_dir store ts + bin_dir )) or die; my $cmd = $args{cmd}; + my $spool_dir = $args{spool_dir}; my $output_files = $args{output_files}; my $service = $args{service}; my $lib_dir = $args{lib_dir}; @@ -7173,6 +7181,7 @@ sub replace_special_vars { my $stage_dir = $args{stage_dir}; my $store = $args{store}; my $ts = $args{ts}; + my $bin_dir = $args{bin_dir}; my $new_cmd = join(' ', map { @@ -7195,6 +7204,9 @@ sub replace_special_vars { $word =~ s/__SERVICE__/$service/g; $word =~ s/__STAGE_FILE_/$stage_dir\/$ts.$service/g; $word =~ s/__META__FILE__/$meta_dir\/$service/g; + $word =~ s/__BIN_DIR__/$bin_dir/g; + $word =~ s/__TRASH_FILE__/$spool_dir\/.trash\/$service/g; + $word; } split(/\s+/, $cmd) @@ -7224,7 +7236,7 @@ sub init_spool_dir { die "$spool_dir is not writeable\n"; } - foreach my $subdir ( $service, '.tmp' ) { + foreach my $subdir ( $service, '.tmp', '.trash' ) { next unless $subdir; # service may be undef my $dir = "$spool_dir/$subdir"; if ( ! -d $dir ) { @@ -7316,7 +7328,7 @@ sub send_data { ); $daemon->run(); - $logger->info("Sending $service service data"); + $logger->info("Sending $service data"); # Connect to Percona, get entry links. my $entry_links;