add sort system for instances

This commit is contained in:
garnier-quentin 2019-03-18 13:06:49 +01:00
parent 04a7db9ea3
commit fb5cc28cff
1 changed files with 17 additions and 8 deletions

View File

@ -27,6 +27,11 @@ use warnings;
use centreon::plugins::values; use centreon::plugins::values;
use centreon::plugins::misc; use centreon::plugins::misc;
my $sort_subs = {
num => sub { $a <=> $b },
cmp => sub { $a cmp $b },
};
sub set_counters { sub set_counters {
my ($self, %options) = @_; my ($self, %options) = @_;
@ -80,8 +85,7 @@ sub new {
bless $self, $class; bless $self, $class;
$self->{version} = '1.0'; $self->{version} = '1.0';
$options{options}->add_options(arguments => $options{options}->add_options(arguments => {
{
"filter-counters:s" => { name => 'filter_counters' }, "filter-counters:s" => { name => 'filter_counters' },
"list-counters" => { name => 'list_counters' }, "list-counters" => { name => 'list_counters' },
}); });
@ -238,7 +242,10 @@ sub run_instances {
my $message_separator = defined($options{config}->{message_separator}) ? my $message_separator = defined($options{config}->{message_separator}) ?
$options{config}->{message_separator}: ', '; $options{config}->{message_separator}: ', ';
foreach my $id (sort keys %{$self->{$options{config}->{name}}}) { my $sort_method = 'cmp';
$sort_method = $options{config}->{sort_method}
if (defined($options{config}->{sort_method}));
foreach my $id (sort { $sort_subs->{$sort_method}->() } keys %{$self->{$options{config}->{name}}}) {
my ($short_msg, $short_msg_append, $long_msg, $long_msg_append) = ('', '', '', ''); my ($short_msg, $short_msg_append, $long_msg, $long_msg_append) = ('', '', '', '');
my @exits = (); my @exits = ();
foreach (@{$self->{maps_counters}->{$options{config}->{name}}}) { foreach (@{$self->{maps_counters}->{$options{config}->{name}}}) {
@ -387,8 +394,10 @@ sub run_multiple_instances {
my $message_separator = defined($options{config}->{message_separator}) ? my $message_separator = defined($options{config}->{message_separator}) ?
$options{config}->{message_separator} : ', '; $options{config}->{message_separator} : ', ';
my $sort_method = 'cmp';
foreach my $id (sort keys %{$self->{$options{config}->{name}}}) { $sort_method = $options{config}->{sort_method}
if (defined($options{config}->{sort_method}));
foreach my $id (sort { $sort_subs->{$sort_method}->() } keys %{$self->{$options{config}->{name}}}) {
my ($short_msg, $short_msg_append, $long_msg, $long_msg_append) = ('', '', '', ''); my ($short_msg, $short_msg_append, $long_msg, $long_msg_append) = ('', '', '', '');
my @exits = (); my @exits = ();
foreach (@{$self->{maps_counters}->{$options{config}->{name}}}) { foreach (@{$self->{maps_counters}->{$options{config}->{name}}}) {