mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-07 21:09:14 +00:00
Always expect a list of services. If none and no previous services, warn about no services enabled. If either or, then apply the curr services even if empty list to disable everything.
This commit is contained in:
24
bin/pt-agent
24
bin/pt-agent
@@ -6265,29 +6265,29 @@ sub get_services {
|
||||
agent
|
||||
client
|
||||
lib_dir
|
||||
services
|
||||
)) or die;
|
||||
my $link = $args{link};
|
||||
my $agent = $args{agent};
|
||||
my $client = $args{client};
|
||||
my $lib_dir = $args{lib_dir};
|
||||
|
||||
# Optional args
|
||||
my $prev_services = $args{services}; # may not be defined yet
|
||||
my $prev_services = $args{services};
|
||||
|
||||
my $success = 0;
|
||||
|
||||
eval {
|
||||
$logger->info('Getting services');
|
||||
|
||||
# Get services from Percona.
|
||||
my $curr_services = $client->get(
|
||||
link => $link,
|
||||
);
|
||||
|
||||
# If the current and new services are different,
|
||||
# write the new ones to disk, then schedule them.
|
||||
if ( $curr_services && @$curr_services ) {
|
||||
|
||||
if ( !$curr_services ) {
|
||||
$logger->error("GET $link did not return anything, expected a list of services");
|
||||
}
|
||||
elsif ( !scalar @$curr_services && !scalar keys %$prev_services ) {
|
||||
$logger->warning("No services are enabled for this agent");
|
||||
}
|
||||
else {
|
||||
if ( $state->{all_services_are_stopped} ) {
|
||||
$logger->info('Restarting services after safeguard shutdown');
|
||||
# If prev_services is empty, then it's like agent startup:
|
||||
@@ -6389,7 +6389,7 @@ sub get_services {
|
||||
exec_cmd => $args{exec_cmd}, # optional, for testing
|
||||
);
|
||||
|
||||
$logger->info('Services applied successfully');
|
||||
$logger->info('Service changes applied successfully');
|
||||
}
|
||||
else {
|
||||
$logger->info('Services have not changed');
|
||||
@@ -6398,10 +6398,6 @@ sub get_services {
|
||||
$prev_services = $sorted_services->{services};
|
||||
$success = 1;
|
||||
}
|
||||
elsif ( $prev_services && !scalar keys %$prev_services ) {
|
||||
$logger->info('All services have been removed');
|
||||
# TODO
|
||||
}
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
$logger->warning($EVAL_ERROR);
|
||||
|
Reference in New Issue
Block a user