diff --git a/apps/kayako/api/mode/ticketcount.pm b/apps/kayako/api/mode/ticketcount.pm index e6240fa97..be5774f40 100644 --- a/apps/kayako/api/mode/ticketcount.pm +++ b/apps/kayako/api/mode/ticketcount.pm @@ -148,7 +148,7 @@ sub reload_cache { my $trim_id = centreon::plugins::misc::trim($id->string_value); my ($title) = $xp->find('./title', $actionNode)->get_nodelist; my $trim_title = centreon::plugins::misc::trim($title->string_value); - $datas->{"department_".$trim_id} = $self->{output}->to_utf8($trim_title); + $datas->{"department_".$trim_id} = $self->{output}->decode($trim_title); } $webcontent = $self->{http}->request(url_path => $url_original_path . "/Tickets/TicketPriority&apikey=" . $self->{option_results}->{kayako_api_key} . "&salt=" . $salt . "&signature=" . $digest . "="); @@ -159,7 +159,7 @@ sub reload_cache { my $trim_id = centreon::plugins::misc::trim($id->string_value); my ($title) = $xp->find('./title', $actionNode)->get_nodelist; my $trim_title = centreon::plugins::misc::trim($title->string_value); - $datas->{"priority_".$trim_id} = $self->{output}->to_utf8($trim_title); + $datas->{"priority_".$trim_id} = $self->{output}->decode($trim_title); } $webcontent = $self->{http}->request(url_path => $url_original_path . "/Base/Staff&apikey=" . $self->{option_results}->{kayako_api_key} . "&salt=" . $salt . "&signature=" . $digest . "="); @@ -170,7 +170,7 @@ sub reload_cache { my $trim_id = centreon::plugins::misc::trim($id->string_value); my ($title) = $xp->find('./username', $actionNode)->get_nodelist; my $trim_title = centreon::plugins::misc::trim($title->string_value); - $datas->{"staff_".$trim_id} = $self->{output}->to_utf8($trim_title); + $datas->{"staff_".$trim_id} = $self->{output}->decode($trim_title); } $webcontent = $self->{http}->request(url_path => $url_original_path . "/Tickets/TicketStatus&apikey=" . $self->{option_results}->{kayako_api_key} . "&salt=" . $salt . "&signature=" . $digest . "="); @@ -181,7 +181,7 @@ sub reload_cache { my $trim_id = centreon::plugins::misc::trim($id->string_value); my ($title) = $xp->find('./title', $actionNode)->get_nodelist; my $trim_title = centreon::plugins::misc::trim($title->string_value); - $datas->{"status_".$trim_id} = $self->{output}->to_utf8($trim_title); + $datas->{"status_".$trim_id} = $self->{output}->decode($trim_title); } $self->{statefile_cache}->write(data => $datas); diff --git a/apps/kayako/sql/mode/ticketcount.pm b/apps/kayako/sql/mode/ticketcount.pm index 00faef9de..656f19502 100644 --- a/apps/kayako/sql/mode/ticketcount.pm +++ b/apps/kayako/sql/mode/ticketcount.pm @@ -40,18 +40,18 @@ sub new { my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; - $options{options}->add_options(arguments => - { - "reload-cache-time:s" => { name => 'reload_cache_time', default => 180 }, - "department-id:s" => { name => 'department_id' }, - "staff-id:s" => { name => 'staff_id' }, - "status-id:s" => { name => 'status_id' }, - "priority-id:s" => { name => 'priority_id' }, - "warning:s" => { name => 'warning' }, - "critical:s" => { name => 'critical' }, - "start-date:s" => { name => 'start_date' }, - "end-date:s" => { name => 'end_date' }, - }); + $options{options}->add_options(arguments => { + "reload-cache-time:s" => { name => 'reload_cache_time', default => 180 }, + "department-id:s" => { name => 'department_id' }, + "staff-id:s" => { name => 'staff_id' }, + "status-id:s" => { name => 'status_id' }, + "priority-id:s" => { name => 'priority_id' }, + "warning:s" => { name => 'warning' }, + "critical:s" => { name => 'critical' }, + "start-date:s" => { name => 'start_date' }, + "end-date:s" => { name => 'end_date' } + }); + $self->{statefile_cache} = centreon::plugins::statefile->new(%options); return $self; @@ -104,22 +104,22 @@ sub reload_cache { $self->{sql}->query(query => "SELECT departmentid, title FROM swdepartments"); while ((my $row = $self->{sql}->fetchrow_hashref())) { - $datas->{"department_" . $row->{departmentid}} = $self->{output}->to_utf8($row->{title}); + $datas->{"department_" . $row->{departmentid}} = $self->{output}->decode($row->{title}); } $self->{sql}->query(query => "SELECT priorityid, title FROM swticketpriorities"); while ((my $row = $self->{sql}->fetchrow_hashref())) { - $datas->{"priority_" . $row->{priorityid}} = $self->{output}->to_utf8($row->{title}); + $datas->{"priority_" . $row->{priorityid}} = $self->{output}->decode($row->{title}); } $self->{sql}->query(query => "SELECT staffid, username FROM swstaff"); while ((my $row = $self->{sql}->fetchrow_hashref())) { - $datas->{"staff_" . $row->{staffid}} = $self->{output}->to_utf8($row->{username}); + $datas->{"staff_" . $row->{staffid}} = $self->{output}->decode($row->{username}); } $self->{sql}->query(query => "SELECT ticketstatusid, title FROM swticketstatus"); while ((my $row = $self->{sql}->fetchrow_hashref())) { - $datas->{"status_" . $row->{ticketstatusid}} = $self->{output}->to_utf8($row->{title}); + $datas->{"status_" . $row->{ticketstatusid}} = $self->{output}->decode($row->{title}); } $self->{statefile_cache}->write(data => $datas); diff --git a/centreon/common/airespace/snmp/mode/listgroups.pm b/centreon/common/airespace/snmp/mode/listgroups.pm index 41350c3f4..b9a91ed54 100644 --- a/centreon/common/airespace/snmp/mode/listgroups.pm +++ b/centreon/common/airespace/snmp/mode/listgroups.pm @@ -57,7 +57,7 @@ sub manage_selection { my ($num, $index) = ($1, $2); my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $num . '.' . $index); - my $name = $self->{output}->to_utf8(join('', map(chr($_), split(/\./, $index)))); + my $name = $self->{output}->decode(join('', map(chr($_), split(/\./, $index)))); $results->{$name} = { description => $result->{description} diff --git a/centreon/common/powershell/exchange/activesyncmailbox.pm b/centreon/common/powershell/exchange/activesyncmailbox.pm index 978b925e0..c11f71881 100644 --- a/centreon/common/powershell/exchange/activesyncmailbox.pm +++ b/centreon/common/powershell/exchange/activesyncmailbox.pm @@ -71,7 +71,7 @@ sub check { while ($options{stdout} =~ /\[scenario=(.*?)\]\[result=(.*?)\]\[latency=(.*?)\]\[\[error=(.*?)\]\]/msg) { $self->{data} = {}; ($self->{data}->{scenario}, $self->{data}->{result}, $self->{data}->{latency}, $self->{data}->{error}) = - ($self->{output}->to_utf8($1), centreon::plugins::misc::trim($2), + ($self->{output}->decode($1), centreon::plugins::misc::trim($2), centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4)); $checked++; diff --git a/centreon/common/powershell/exchange/imapmailbox.pm b/centreon/common/powershell/exchange/imapmailbox.pm index 29cf7e102..be6fc8cb2 100644 --- a/centreon/common/powershell/exchange/imapmailbox.pm +++ b/centreon/common/powershell/exchange/imapmailbox.pm @@ -68,7 +68,7 @@ sub check { while ($options{stdout} =~ /\[scenario=(.*?)\]\[result=(.*?)\]\[latency=(.*?)\]\[\[error=(.*?)\]\]/msg) { $self->{data} = {}; ($self->{data}->{scenario}, $self->{data}->{result}, $self->{data}->{latency}, $self->{data}->{error}) = - ($self->{output}->to_utf8($1), centreon::plugins::misc::trim($2), + ($self->{output}->decode($1), centreon::plugins::misc::trim($2), centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4)); $checked++; diff --git a/centreon/common/powershell/exchange/outlookwebservices.pm b/centreon/common/powershell/exchange/outlookwebservices.pm index 5763a7865..708edbbdc 100644 --- a/centreon/common/powershell/exchange/outlookwebservices.pm +++ b/centreon/common/powershell/exchange/outlookwebservices.pm @@ -77,7 +77,7 @@ sub check { while ($options{stdout} =~ /\[id=(.*?)\]\[type=(.*?)\]\[\[message=(.*?)\]\]/msg) { $self->{data} = {}; ($self->{data}->{id}, $self->{data}->{type}, $self->{data}->{message}) = - (centreon::plugins::misc::trim($1), centreon::plugins::misc::trim($2), $self->{output}->to_utf8($3)); + (centreon::plugins::misc::trim($1), centreon::plugins::misc::trim($2), $self->{output}->decode($3)); $checked++; diff --git a/centreon/common/powershell/exchange/owamailbox.pm b/centreon/common/powershell/exchange/owamailbox.pm index 2a6319c83..a1534e9ee 100644 --- a/centreon/common/powershell/exchange/owamailbox.pm +++ b/centreon/common/powershell/exchange/owamailbox.pm @@ -69,7 +69,7 @@ sub check { while ($options{stdout} =~ /\[url=(.*?)\]\[scenario=(.*?)\]\[result=(.*?)\]\[latency=(.*?)\]\[\[error=(.*?)\]\]/msg) { $self->{data} = {}; ($self->{data}->{url}, $self->{data}->{scenario}, $self->{data}->{result}, $self->{data}->{latency}, $self->{data}->{error}) = - ($self->{output}->to_utf8($1), $self->{output}->to_utf8($2), centreon::plugins::misc::trim($3), + ($self->{output}->decode($1), $self->{output}->decode($2), centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4), centreon::plugins::misc::trim($5)); $checked++; diff --git a/centreon/common/powershell/exchange/replicationhealth.pm b/centreon/common/powershell/exchange/replicationhealth.pm index 29ea1e36d..e78121d7c 100644 --- a/centreon/common/powershell/exchange/replicationhealth.pm +++ b/centreon/common/powershell/exchange/replicationhealth.pm @@ -62,7 +62,7 @@ sub check { while ($options{stdout} =~ /\[server=(.*?)\]\[check=(.*?)\]\[result=(.*?)\]\[isvalid=(.*?)\]\[\[error=(.*?)\]\]/msg) { $self->{data} = {}; ($self->{data}->{server}, $self->{data}->{check}, $self->{data}->{result}, $self->{data}->{isvalid}, $self->{data}->{error}) = - ($self->{output}->to_utf8($1), centreon::plugins::misc::trim($2), + ($self->{output}->decode($1), centreon::plugins::misc::trim($2), centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4), centreon::plugins::misc::trim($5)); $checked++; diff --git a/centreon/common/powershell/exchange/services.pm b/centreon/common/powershell/exchange/services.pm index 22a2eb934..f06a52ed7 100644 --- a/centreon/common/powershell/exchange/services.pm +++ b/centreon/common/powershell/exchange/services.pm @@ -64,7 +64,7 @@ sub check { while ($options{stdout} =~ /\[role=(.*?)\]\[requiredservicesrunning=(.*?)\]\[servicesrunning=(.*?)\]\[servicesnotrunning=(.*?)\]/msg) { $self->{data} = {}; ($self->{data}->{role}, $self->{data}->{requiredservicesrunning}, $self->{data}->{servicesrunning}, $self->{data}->{servicesnotrunning}) = - ($self->{output}->to_utf8($1), centreon::plugins::misc::trim($2), + ($self->{output}->decode($1), centreon::plugins::misc::trim($2), centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4)); $checked++; diff --git a/centreon/plugins/output.pm b/centreon/plugins/output.pm index 4c55fa92d..5e049decc 100644 --- a/centreon/plugins/output.pm +++ b/centreon/plugins/output.pm @@ -55,10 +55,11 @@ sub new { 'output-file:s' => { name => 'output_file' }, 'disco-format' => { name => 'disco_format' }, 'disco-show' => { name => 'disco_show' }, - 'float-precision:s' => { name => 'float_precision', default => 8 } + 'float-precision:s' => { name => 'float_precision', default => 8 }, + 'source-encoding:s' => { name => 'source_encoding' , default => 'UTF-8' } }); - %{$self->{option_results}} = (); + $self->{option_results} = {}; $self->{option_msg} = []; @@ -80,7 +81,7 @@ sub new { $self->{explode_perfdata_total} = 0; $self->{range_perfdata} = 0; $self->{global_status} = 0; - $self->{encode_utf8_import} = 0; + $self->{encode_import} = 0; $self->{perlqq} = 0; $self->{disco_elements} = []; @@ -137,6 +138,9 @@ sub check_options { $self->load_perfdata_extend_args(); $self->{option_results}->{use_new_perfdata} = 1 if (defined($self->{option_results}->{output_openmetrics})); + + $self->{source_encoding} = (!defined($self->{option_results}->{source_encoding}) || $self->{option_results}->{source_encoding} eq '') ? + 'UTF-8' : $self->{option_results}->{source_encoding}; } sub add_option_msg { @@ -794,24 +798,23 @@ sub display_disco_show { } } -sub to_utf8 { +sub decode { my ($self, $value) = @_; - if ($self->{encode_utf8_import} == 0) { + if ($self->{encode_import} == 0) { # Some Perl version dont have the following module (like Perl 5.6.x) - if (centreon::plugins::misc::mymodule_load( - no_quit => 1, module => 'Encode', - error_msg => "Cannot load module 'Encode'.") - ) { - print "Cannot load module 'Encode'\n"; - $self->exit(exit_litteral => 'unknown'); - } + my $rv = centreon::plugins::misc::mymodule_load( + no_quit => 1, + module => 'Encode', + error_msg => "Cannot load module 'Encode'." + ); + return $value if ($rv); - $self->{encode_utf8_import} = 1; + $self->{encode_import} = 1; eval '$self->{perlqq} = Encode::PERLQQ'; } - return centreon::plugins::misc::trim(Encode::decode('UTF-8', $value, $self->{perlqq})); + return centreon::plugins::misc::trim(Encode::decode($self->{source_encoding}, $value, $self->{perlqq})); } sub parameter { @@ -1453,6 +1456,10 @@ Display discovery values (if the mode manages it). Set the float precision for thresholds (Default: 8). +=item B<--source-encoding> + +Set encoding of monitoring sources (In some case. Default: 'UTF-8'). + =head1 DESCRIPTION B. diff --git a/hardware/devices/hms/ewon/snmp/mode/listtags.pm b/hardware/devices/hms/ewon/snmp/mode/listtags.pm index 23eb6d93a..d3d5a58c9 100644 --- a/hardware/devices/hms/ewon/snmp/mode/listtags.pm +++ b/hardware/devices/hms/ewon/snmp/mode/listtags.pm @@ -70,7 +70,7 @@ sub manage_selection { next; } - $result->{name} = $self->{output}->to_utf8($result->{name}); + $result->{name} = $self->{output}->decode($result->{name}); $results->{$instance} = $result; } diff --git a/hardware/devices/hms/ewon/snmp/mode/tags.pm b/hardware/devices/hms/ewon/snmp/mode/tags.pm index 820bd3730..c7becac8a 100644 --- a/hardware/devices/hms/ewon/snmp/mode/tags.pm +++ b/hardware/devices/hms/ewon/snmp/mode/tags.pm @@ -224,7 +224,7 @@ sub manage_selection { $self->{tags} = {}; foreach (keys %$tags) { - $tags->{$_} = $self->{output}->to_utf8($tags->{$_}); + $tags->{$_} = $self->{output}->decode($tags->{$_}); if (defined($self->{option_results}->{filter_tag_index}) && $self->{option_results}->{filter_tag_index} ne '' && $_ !~ /$self->{option_results}->{filter_tag_index}/) { $self->{output}->output_add(long_msg => "skipping '" . $tags->{$_} . "': no matching 'org' filter.", debug => 1); diff --git a/network/brocade/snmp/mode/interfaces.pm b/network/brocade/snmp/mode/interfaces.pm index b99fa7e52..706f1874d 100644 --- a/network/brocade/snmp/mode/interfaces.pm +++ b/network/brocade/snmp/mode/interfaces.pm @@ -127,12 +127,12 @@ sub reload_cache_fcportname { my $if_index = $1; push @{$options{datas}->{all_ids}}, $if_index if ($store_index == 1); if ($options{result}->{ $self->{oids_label}->{ifname}->{oid} }->{$_} =~ /\d+\/(\d+)$/) { - $options{datas}->{ $options{name} . '_' . $if_index } = $self->{output}->to_utf8( + $options{datas}->{ $options{name} . '_' . $if_index } = $self->{output}->decode( $options{result}->{ $self->{oids_label}->{ $options{name} }->{oid} }->{ $self->{oids_label}->{ $options{name} }->{oid} . '.' . ($1 + 1) } ); } else { # we use ifname if there is no fcportname - $options{datas}->{ $options{name} . '_' . $if_index } = $self->{output}->to_utf8( + $options{datas}->{ $options{name} . '_' . $if_index } = $self->{output}->decode( $options{result}->{ $self->{oids_label}->{ifname}->{oid} }->{$_} ); } diff --git a/network/citrix/netscaler/snmp/mode/listvservers.pm b/network/citrix/netscaler/snmp/mode/listvservers.pm index 41bdf7230..b01b67feb 100644 --- a/network/citrix/netscaler/snmp/mode/listvservers.pm +++ b/network/citrix/netscaler/snmp/mode/listvservers.pm @@ -34,7 +34,7 @@ my %map_vs_type = ( 2 => 'loadbalancinggroup', 3 => 'sslvpn', 4 => 'contentswitching', - 5 => 'cacheredirection', + 5 => 'cacheredirection' ); sub new { @@ -42,12 +42,12 @@ sub new { my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; - $options{options}->add_options(arguments => - { - "name:s" => { name => 'name' }, - "regexp" => { name => 'use_regexp' }, - "filter-type:s" => { name => 'filter_type' }, - }); + $options{options}->add_options(arguments => { + 'name:s' => { name => 'name' }, + 'regexp' => { name => 'use_regexp' }, + 'filter-type:s' => { name => 'filter_type' } + }); + $self->{vs_id_selected} = []; return $self; @@ -77,7 +77,7 @@ sub manage_selection { next; } - $name = $self->{output}->to_utf8($name); + $name = $self->{output}->decode($name); if (!defined($self->{option_results}->{use_regexp}) && $name eq $self->{option_results}->{name}) { push @{$self->{vs_id_selected}}, $instance; next; diff --git a/network/f5/bigip/snmp/mode/apm.pm b/network/f5/bigip/snmp/mode/apm.pm index 8f117a94e..b129b0e18 100644 --- a/network/f5/bigip/snmp/mode/apm.pm +++ b/network/f5/bigip/snmp/mode/apm.pm @@ -33,7 +33,7 @@ sub set_counters { { name => 'global', type => 0, skipped_code => { -10 => 1 } }, { name => 'vs', type => 3, cb_prefix_output => 'prefix_vs_output', cb_long_output => 'vs_long_output', indent_long_output => ' ', message_multiple => 'All virtual servers are ok', group => [ - { name => 'ap', display_long => 1, cb_prefix_output => 'prefix_ap_output', message_multiple => 'All access profiles are ok', type => 1, skipped_code => { -10 => 1 } }, + { name => 'ap', display_long => 1, cb_prefix_output => 'prefix_ap_output', message_multiple => 'All access profiles are ok', type => 1, skipped_code => { -10 => 1 } } ] } ]; @@ -43,56 +43,53 @@ sub set_counters { key_values => [ { name => 'apmAccessStatTotalSessions', diff => 1 } ], output_template => 'created sessions: %s', perfdatas => [ - { value => 'apmAccessStatTotalSessions', template => '%s', min => 0 }, - ], + { template => '%s', min => 0 } + ] } }, { label => 'sessions-active', nlabel => 'system.sessions.active.count', set => { key_values => [ { name => 'apmAccessStatCurrentActiveSessions' } ], output_template => 'active sessions: %s', perfdatas => [ - { value => 'apmAccessStatCurrentActiveSessions', template => '%s', min => 0 }, - ], + { template => '%s', min => 0 } + ] } }, { label => 'sessions-pending', nlabel => 'system.sessions.pending.count', set => { key_values => [ { name => 'apmAccessStatCurrentPendingSessions' } ], output_template => 'pending sessions: %s', perfdatas => [ - { value => 'apmAccessStatCurrentPendingSessions', template => '%s', min => 0 }, - ], + { template => '%s', min => 0 } + ] } - }, + } ]; $self->{maps_counters}->{ap} = [ - { label => 'ap-sessions-created', nlabel => 'acessprofile.sessions.created.count', set => { + { label => 'ap-sessions-created', nlabel => 'accessprofile.sessions.created.count', set => { key_values => [ { name => 'apmPaStatTotalSessions', diff => 1 } ], output_template => 'created sessions: %s', perfdatas => [ - { value => 'apmPaStatTotalSessions', template => '%s', - min => 0, label_extra_instance => 1 }, - ], + { template => '%s', min => 0, label_extra_instance => 1 } + ] } }, - { label => 'ap-sessions-active', nlabel => 'acessprofile.sessions.active.count', set => { + { label => 'ap-sessions-active', nlabel => 'accessprofile.sessions.active.count', set => { key_values => [ { name => 'apmPaStatCurrentActiveSessions' } ], output_template => 'active sessions: %s', perfdatas => [ - { value => 'apmPaStatCurrentActiveSessions', template => '%s', - min => 0, label_extra_instance => 1 }, - ], + { template => '%s', min => 0, label_extra_instance => 1 } + ] } }, - { label => 'ap-sessions-pending', nlabel => 'acessprofile.sessions.pending.count', set => { + { label => 'ap-sessions-pending', nlabel => 'accessprofile.sessions.pending.count', set => { key_values => [ { name => 'apmPaStatCurrentPendingSessions' } ], output_template => 'pending sessions: %s', perfdatas => [ - { value => 'apmPaStatCurrentPendingSessions', template => '%s', - min => 0, label_extra_instance => 1 }, - ], + { template => '%s', min => 0, label_extra_instance => 1 } + ] } - }, + } ]; } @@ -121,7 +118,7 @@ sub new { $options{options}->add_options(arguments => { 'filter-vs:s' => { name => 'filter_vs' }, - 'filter-ap:s' => { name => 'filter_ap' }, + 'filter-ap:s' => { name => 'filter_ap' } }); return $self; @@ -160,8 +157,8 @@ sub manage_selection { my $instance = $1; my @indexes = split(/\./, $instance); - my $ap_name = $self->{output}->to_utf8(join('', map(chr($_), splice(@indexes, 0, shift(@indexes)) ))); - my $vs_name = $self->{output}->to_utf8(join('', map(chr($_), splice(@indexes, 0, shift(@indexes)) ))); + my $ap_name = $self->{output}->decode(join('', map(chr($_), splice(@indexes, 0, shift(@indexes)) ))); + my $vs_name = $self->{output}->decode(join('', map(chr($_), splice(@indexes, 0, shift(@indexes)) ))); $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result->{$oid_apmPaStatEntry}, instance => $instance); if (defined($self->{option_results}->{filter_vs}) && $self->{option_results}->{filter_vs} ne '' && diff --git a/network/f5/bigip/snmp/mode/listnodes.pm b/network/f5/bigip/snmp/mode/listnodes.pm index a3c66bb61..007dab2c4 100644 --- a/network/f5/bigip/snmp/mode/listnodes.pm +++ b/network/f5/bigip/snmp/mode/listnodes.pm @@ -31,7 +31,7 @@ sub new { bless $self, $class; $options{options}->add_options(arguments => { - 'filter-name:s' => { name => 'filter_name' }, + 'filter-name:s' => { name => 'filter_name' } }); return $self; @@ -48,14 +48,14 @@ sub manage_selection { my $map_pool_status = { 0 => 'none', 1 => 'green', 2 => 'yellow', 3 => 'red', - 4 => 'blue', 5 => 'gray', + 4 => 'blue', 5 => 'gray' }; my $map_pool_enabled = { - 0 => 'none', 1 => 'enabled', 2 => 'disabled', 3 => 'disabledbyparent', + 0 => 'none', 1 => 'enabled', 2 => 'disabled', 3 => 'disabledbyparent' }; my $mapping = { AvailState => { oid => '.1.3.6.1.4.1.3375.2.2.4.3.2.1.3', map => $map_pool_status }, - EnabledState => { oid => '.1.3.6.1.4.1.3375.2.2.4.3.2.1.4', map => $map_pool_enabled }, + EnabledState => { oid => '.1.3.6.1.4.1.3375.2.2.4.3.2.1.4', map => $map_pool_enabled } }; my $oid_ltmNodeAddrStatusEntry = '.1.3.6.1.4.1.3375.2.2.4.3.2.1'; @@ -71,7 +71,7 @@ sub manage_selection { my ($num, $index) = ($1, $2); my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $num . '.' . $index); - my $name = $self->{output}->to_utf8(join('', map(chr($_), split(/\./, $index)))); + my $name = $self->{output}->decode(join('', map(chr($_), split(/\./, $index)))); if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && $name !~ /$self->{option_results}->{filter_name}/) { @@ -81,7 +81,7 @@ sub manage_selection { $results->{$name} = { status => $result->{AvailState}, - state => $result->{EnabledState}, + state => $result->{EnabledState} }; } diff --git a/network/f5/bigip/snmp/mode/listpools.pm b/network/f5/bigip/snmp/mode/listpools.pm index e9158742f..8ad25ce04 100644 --- a/network/f5/bigip/snmp/mode/listpools.pm +++ b/network/f5/bigip/snmp/mode/listpools.pm @@ -33,7 +33,7 @@ sub new { bless $self, $class; $options{options}->add_options(arguments => { - 'filter-name:s' => { name => 'filter_name' }, + 'filter-name:s' => { name => 'filter_name' } }); return $self; @@ -73,7 +73,7 @@ sub manage_selection { my ($num, $index) = ($1, $2); my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $num . '.' . $index); - my $name = $self->{output}->to_utf8(join('', map(chr($_), split(/\./, $index)))); + my $name = $self->{output}->decode(join('', map(chr($_), split(/\./, $index)))); if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && $name !~ /$self->{option_results}->{filter_name}/) { diff --git a/network/f5/bigip/snmp/mode/listvirtualservers.pm b/network/f5/bigip/snmp/mode/listvirtualservers.pm index 5617e930c..b4839da08 100644 --- a/network/f5/bigip/snmp/mode/listvirtualservers.pm +++ b/network/f5/bigip/snmp/mode/listvirtualservers.pm @@ -91,7 +91,7 @@ sub manage_selection { my ($num, $index) = ($1, $2); my $result = $options{snmp}->map_instance(mapping => $mapping->{$map}, results => $snmp_result->{$branch}, instance => $num . '.' . $index); - my $name = $self->{output}->to_utf8(join('', map(chr($_), split(/\./, $index)))); + my $name = $self->{output}->decode(join('', map(chr($_), split(/\./, $index)))); if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && $name !~ /$self->{option_results}->{filter_name}/) { $self->{output}->output_add(long_msg => "skipping virtual server '" . $name . "'.", debug => 1); diff --git a/network/f5/bigip/snmp/mode/nodestatus.pm b/network/f5/bigip/snmp/mode/nodestatus.pm index f79aa0910..8257e6de3 100644 --- a/network/f5/bigip/snmp/mode/nodestatus.pm +++ b/network/f5/bigip/snmp/mode/nodestatus.pm @@ -24,7 +24,7 @@ use base qw(centreon::plugins::templates::counter); use strict; use warnings; -use centreon::plugins::templates::catalog_functions qw(catalog_status_threshold catalog_status_calc); +use centreon::plugins::templates::catalog_functions qw(catalog_status_threshold); sub custom_status_output { my ($self, %options) = @_; @@ -47,7 +47,6 @@ sub set_counters { $self->{maps_counters}->{node} = [ { label => 'status', threshold => 0, set => { key_values => [ { name => 'state' }, { name => 'status' }, { name => 'reason' },{ name => 'display' } ], - closure_custom_calc => \&catalog_status_calc, closure_custom_output => $self->can('custom_status_output'), closure_custom_perfdata => sub { return 0; }, closure_custom_threshold_check => \&catalog_status_threshold, @@ -142,7 +141,7 @@ sub manage_selection { my ($num, $index) = ($1, $2); my $result = $options{snmp}->map_instance(mapping => $mapping->{$map}, results => $snmp_result->{$branch_name}, instance => $num . '.' . $index); - my $name = $self->{output}->to_utf8(join('', map(chr($_), split(/\./, $index)))); + my $name = $self->{output}->decode(join('', map(chr($_), split(/\./, $index)))); if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && $name !~ /$self->{option_results}->{filter_name}/) { diff --git a/network/f5/bigip/snmp/mode/poolstatus.pm b/network/f5/bigip/snmp/mode/poolstatus.pm index 97c5d4a42..3842ee823 100644 --- a/network/f5/bigip/snmp/mode/poolstatus.pm +++ b/network/f5/bigip/snmp/mode/poolstatus.pm @@ -24,7 +24,7 @@ use base qw(centreon::plugins::templates::counter); use strict; use warnings; -use centreon::plugins::templates::catalog_functions qw(catalog_status_threshold_ng catalog_status_calc); +use centreon::plugins::templates::catalog_functions qw(catalog_status_threshold_ng); sub custom_status_output { my ($self, %options) = @_; @@ -33,7 +33,7 @@ sub custom_status_output { 'status: %s [state: %s] [reason: %s]', $self->{result_values}->{status}, $self->{result_values}->{state}, - $self->{result_values}->{reason}, + $self->{result_values}->{reason} ); return $msg; } @@ -50,7 +50,6 @@ sub set_counters { label => 'status', type => 2, warning_default => '%{state} eq "enabled" and %{status} eq "yellow"', critical_default => '%{state} eq "enabled" and %{status} eq "red"', set => { key_values => [ { name => 'state' }, { name => 'status' }, { name => 'reason' },{ name => 'display' } ], - closure_custom_calc => \&catalog_status_calc, closure_custom_output => $self->can('custom_status_output'), closure_custom_perfdata => sub { return 0; }, closure_custom_threshold_check => \&catalog_status_threshold_ng @@ -118,18 +117,18 @@ my $mapping = { new => { AvailState => { oid => '.1.3.6.1.4.1.3375.2.2.5.5.2.1.2', map => $map_pool_status }, EnabledState => { oid => '.1.3.6.1.4.1.3375.2.2.5.5.2.1.3', map => $map_pool_enabled }, - StatusReason => { oid => '.1.3.6.1.4.1.3375.2.2.5.5.2.1.5' }, + StatusReason => { oid => '.1.3.6.1.4.1.3375.2.2.5.5.2.1.5' } }, old => { AvailState => { oid => '.1.3.6.1.4.1.3375.2.2.5.1.2.1.18', map => $map_pool_status }, EnabledState => { oid => '.1.3.6.1.4.1.3375.2.2.5.1.2.1.19', map => $map_pool_enabled }, - StatusReason => { oid => '.1.3.6.1.4.1.3375.2.2.5.1.2.1.21' }, + StatusReason => { oid => '.1.3.6.1.4.1.3375.2.2.5.1.2.1.21' } }, }; my $mapping2 = { ltmPoolStatServerCurConns => { oid => '.1.3.6.1.4.1.3375.2.2.5.2.3.1.8' }, ltmPoolActiveMemberCnt => { oid => '.1.3.6.1.4.1.3375.2.2.5.1.2.1.8' }, - ltmPoolMemberCnt => { oid => '.1.3.6.1.4.1.3375.2.2.5.1.2.1.23' }, + ltmPoolMemberCnt => { oid => '.1.3.6.1.4.1.3375.2.2.5.1.2.1.23' } }; sub manage_selection { @@ -154,7 +153,7 @@ sub manage_selection { my ($num, $index) = ($1, $2); my $result = $options{snmp}->map_instance(mapping => $mapping->{$map}, results => $snmp_result->{$branch_name}, instance => $num . '.' . $index); - my $name = $self->{output}->to_utf8(join('', map(chr($_), split(/\./, $index)))); + my $name = $self->{output}->decode(join('', map(chr($_), split(/\./, $index)))); if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && $name !~ /$self->{option_results}->{filter_name}/) { diff --git a/network/f5/bigip/snmp/mode/virtualserverstatus.pm b/network/f5/bigip/snmp/mode/virtualserverstatus.pm index 96fbc0ac4..b6dd777f4 100644 --- a/network/f5/bigip/snmp/mode/virtualserverstatus.pm +++ b/network/f5/bigip/snmp/mode/virtualserverstatus.pm @@ -135,7 +135,7 @@ sub manage_selection { $oid =~ /^$oid_status->{$map}\.(.*?)\.(.*)$/; my ($num, $index) = ($1, $2); - my $name = $self->{output}->to_utf8(join('', map(chr($_), split(/\./, $index)))); + my $name = $self->{output}->decode(join('', map(chr($_), split(/\./, $index)))); if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && $name !~ /$self->{option_results}->{filter_name}/) { $self->{output}->output_add(long_msg => "skipping '" . $name . "': no matching filter name.", debug => 1); diff --git a/network/juniper/common/junos/mode/stack.pm b/network/juniper/common/junos/mode/stack.pm index 8c453ab56..e3189d199 100644 --- a/network/juniper/common/junos/mode/stack.pm +++ b/network/juniper/common/junos/mode/stack.pm @@ -188,7 +188,7 @@ sub manage_selection { my $port_name = $2; my $result2 = $options{snmp}->map_instance(mapping => $mapping2, results => $snmp_result->{$oid_jnxVirtualChassisPortEntry}, instance => $chassis_id . '.' . $1 . '.' . $port_name); - $port_name = $self->{output}->to_utf8(join('', map(chr($_), split(/\./, $port_name)))); + $port_name = $self->{output}->decode(join('', map(chr($_), split(/\./, $port_name)))); $self->{member}->{$result->{jnxVirtualChassisMemberSerialnumber}}->{port}->{$port_name} = { display => $port_name, admin_status => $result2->{jnxVirtualChassisPortAdminStatus}, diff --git a/network/mikrotik/snmp/mode/listfrequencies.pm b/network/mikrotik/snmp/mode/listfrequencies.pm index 6eab32c94..b6109f2bd 100644 --- a/network/mikrotik/snmp/mode/listfrequencies.pm +++ b/network/mikrotik/snmp/mode/listfrequencies.pm @@ -32,13 +32,13 @@ sub new { $options{options}->add_options(arguments => { 'oid-filter:s' => { name => 'oid_filter', default => 'ifname' }, - 'oid-display:s' => { name => 'oid_display', default => 'ifname' }, + 'oid-display:s' => { name => 'oid_display', default => 'ifname' } }); $self->{oids_label} = { 'ifdesc' => '.1.3.6.1.2.1.2.2.1.2', 'ifalias' => '.1.3.6.1.2.1.31.1.1.1.18', - 'ifname' => '.1.3.6.1.2.1.31.1.1.1.1', + 'ifname' => '.1.3.6.1.2.1.31.1.1.1.1' }; return $self; @@ -58,7 +58,7 @@ sub run { foreach my $key ($self->{snmp}->oid_lex_sort(keys %{$interfaceTables->{ $self->{oids_label}->{'ifname'} }})) { next if ($key !~ /^$self->{oids_label}->{'ifname'}\.(.*)$/); - $self->{datas}->{'ifname' . "_" . $1} = $self->{output}->to_utf8($interfaceTables->{$self->{oids_label}->{'ifname'} }->{$key}); + $self->{datas}->{'ifname' . "_" . $1} = $self->{output}->decode($interfaceTables->{$self->{oids_label}->{'ifname'} }->{$key}); push @{$self->{datas}->{all_ids}}, $1; } diff --git a/network/mikrotik/snmp/mode/listssids.pm b/network/mikrotik/snmp/mode/listssids.pm index 13cbb95fb..d95b4726a 100644 --- a/network/mikrotik/snmp/mode/listssids.pm +++ b/network/mikrotik/snmp/mode/listssids.pm @@ -32,13 +32,13 @@ sub new { $options{options}->add_options(arguments => { 'oid-filter:s' => { name => 'oid_filter', default => 'ifname' }, - 'oid-display:s' => { name => 'oid_display', default => 'ifname' }, + 'oid-display:s' => { name => 'oid_display', default => 'ifname' } }); $self->{oids_label} = { 'ifdesc' => '.1.3.6.1.2.1.2.2.1.2', 'ifalias' => '.1.3.6.1.2.1.31.1.1.1.18', - 'ifname' => '.1.3.6.1.2.1.31.1.1.1.1', + 'ifname' => '.1.3.6.1.2.1.31.1.1.1.1' }; return $self; @@ -58,7 +58,7 @@ sub run { foreach my $key ($self->{snmp}->oid_lex_sort(keys %{$interfaceTables->{ $self->{oids_label}->{'ifname'} }})) { next if ($key !~ /^$self->{oids_label}->{'ifname'}\.(.*)$/); - $self->{datas}->{'ifname' . "_" . $1} = $self->{output}->to_utf8($interfaceTables->{$self->{oids_label}->{'ifname'} }->{$key}); + $self->{datas}->{'ifname' . "_" . $1} = $self->{output}->decode($interfaceTables->{$self->{oids_label}->{'ifname'} }->{$key}); push @{$self->{datas}->{all_ids}}, $1; } diff --git a/network/securactive/mode/bca.pm b/network/securactive/mode/bca.pm index d2b792c6b..2dd63e412 100644 --- a/network/securactive/mode/bca.pm +++ b/network/securactive/mode/bca.pm @@ -90,7 +90,7 @@ sub manage_selection { next; } - $self->{result_names}->{$oid} = $self->{output}->to_utf8($self->{result_names}->{$oid}); + $self->{result_names}->{$oid} = $self->{output}->decode($self->{result_names}->{$oid}); if (!defined($self->{option_results}->{use_regexp}) && $self->{result_names}->{$oid} eq $self->{option_results}->{name}) { push @{$self->{bca_id_selected}}, $instance; } @@ -110,11 +110,15 @@ sub run { $self->{snmp} = $options{snmp}; $self->manage_selection(); - $self->{snmp}->load(oids => [$oid_spvBCAStatus, $oid_spvBCAEURT, $oid_spvBCASRT, - $oid_spvBCARTTClient, $oid_spvBCARTTServer, - $oid_spvBCADTTClient, $oid_spvBCADTTServer, - $oid_spvBCAThresholdWarning, $oid_spvBCAThresholdAlert], - instances => $self->{bca_id_selected}); + $self->{snmp}->load( + oids => [ + $oid_spvBCAStatus, $oid_spvBCAEURT, $oid_spvBCASRT, + $oid_spvBCARTTClient, $oid_spvBCARTTServer, + $oid_spvBCADTTClient, $oid_spvBCADTTServer, + $oid_spvBCAThresholdWarning, $oid_spvBCAThresholdAlert + ], + instances => $self->{bca_id_selected} + ); my $result = $self->{snmp}->get_leef(); if (!defined($self->{option_results}->{name}) || defined($self->{option_results}->{use_regexp})) { @@ -202,4 +206,4 @@ Allows to use regexp to filter filesystem name (with option --name). =back =cut - \ No newline at end of file + diff --git a/network/securactive/mode/bcn.pm b/network/securactive/mode/bcn.pm index 8bb35cd91..f26ae9542 100644 --- a/network/securactive/mode/bcn.pm +++ b/network/securactive/mode/bcn.pm @@ -82,7 +82,7 @@ sub manage_selection { next; } - $self->{result_names}->{$oid} = $self->{output}->to_utf8($self->{result_names}->{$oid}); + $self->{result_names}->{$oid} = $self->{output}->decode($self->{result_names}->{$oid}); if (!defined($self->{option_results}->{use_regexp}) && $self->{result_names}->{$oid} eq $self->{option_results}->{bcn}) { push @{$self->{bcn_id_selected}}, $instance; } @@ -181,4 +181,4 @@ Regexp dst to transform display value. (security risk!!!) =back =cut - \ No newline at end of file + diff --git a/network/securactive/mode/listbca.pm b/network/securactive/mode/listbca.pm index a085455d7..3c239221f 100644 --- a/network/securactive/mode/listbca.pm +++ b/network/securactive/mode/listbca.pm @@ -61,7 +61,7 @@ sub manage_selection { next; } - $self->{result_names}->{$oid} = $self->{output}->to_utf8($self->{result_names}->{$oid}); + $self->{result_names}->{$oid} = $self->{output}->decode($self->{result_names}->{$oid}); if (!defined($self->{option_results}->{use_regexp}) && $self->{result_names}->{$oid} eq $self->{option_results}->{name}) { push @{$self->{bca_id_selected}}, $instance; next; @@ -131,4 +131,4 @@ Allows to use regexp to filter bca name (with option --name). =back =cut - \ No newline at end of file + diff --git a/network/securactive/mode/listbcn.pm b/network/securactive/mode/listbcn.pm index 7645e17dc..79c89b7e2 100644 --- a/network/securactive/mode/listbcn.pm +++ b/network/securactive/mode/listbcn.pm @@ -32,14 +32,14 @@ sub new { my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; - $options{options}->add_options(arguments => - { - "bcn:s" => { name => 'bcn' }, - "name" => { name => 'use_name' }, - "regexp" => { name => 'use_regexp' }, - "display-transform-src:s" => { name => 'display_transform_src' }, - "display-transform-dst:s" => { name => 'display_transform_dst' }, - }); + $options{options}->add_options(arguments => { + 'bcn:s' => { name => 'bcn' }, + 'name' => { name => 'use_name' }, + 'regexp' => { name => 'use_regexp' }, + 'display-transform-src:s' => { name => 'display_transform_src' }, + 'display-transform-dst:s' => { name => 'display_transform_dst' } + }); + $self->{bcn_id_selected} = []; return $self; @@ -72,7 +72,7 @@ sub manage_selection { next; } - $self->{result_names}->{$oid} = $self->{output}->to_utf8($self->{result_names}->{$oid}); + $self->{result_names}->{$oid} = $self->{output}->decode($self->{result_names}->{$oid}); if (!defined($self->{option_results}->{use_regexp}) && $self->{result_names}->{$oid} eq $self->{option_results}->{bcn}) { push @{$self->{bcn_id_selected}}, $instance; } @@ -94,8 +94,10 @@ sub run { $self->{output}->output_add(long_msg => "'" . $name . "'"); } - $self->{output}->output_add(severity => 'OK', - short_msg => 'List bcn:'); + $self->{output}->output_add( + severity => 'OK', + short_msg => 'List bcn:' + ); $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); $self->{output}->exit(); } @@ -126,8 +128,10 @@ sub disco_show { my $name = $self->{result_names}->{$oid_spvBCNName . '.' . $instance}; $name = $self->get_display_value(value => $name); - $self->{output}->add_disco_entry(name => $name, - bcnid => $instance); + $self->{output}->add_disco_entry( + name => $name, + bcnid => $instance + ); } } @@ -164,4 +168,4 @@ Regexp dst to transform display value. (security risk!!!) =back =cut - \ No newline at end of file + diff --git a/network/stonesoft/snmp/mode/storage.pm b/network/stonesoft/snmp/mode/storage.pm index a1e4d74d6..2d1a1cd07 100644 --- a/network/stonesoft/snmp/mode/storage.pm +++ b/network/stonesoft/snmp/mode/storage.pm @@ -154,7 +154,7 @@ sub manage_selection { foreach my $key ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{$oid_fwMountPointName}})) { $key =~ /\.([0-9]+)$/; my $instance = $1; - my $filter_name = $self->{output}->to_utf8($self->{results}->{$oid_fwMountPointName}->{$key}); + my $filter_name = $self->{output}->decode($self->{results}->{$oid_fwMountPointName}->{$key}); next if (!defined($filter_name)); if (!defined($self->{option_results}->{storage})) { push @{$self->{storage_id_selected}}, $instance; diff --git a/os/windows/snmp/mode/listservices.pm b/os/windows/snmp/mode/listservices.pm index 9f5cb9ce2..27b4fa4fd 100644 --- a/os/windows/snmp/mode/listservices.pm +++ b/os/windows/snmp/mode/listservices.pm @@ -74,7 +74,7 @@ sub manage_selection { foreach my $oid (keys %$snmp_result) { next if ($oid !~ /^$mapping->{svSvcOperatingState}->{oid}\.(.*?)\.(.*)$/); my $instance = $1 . '.' . $2; - my $svc_name = $self->{output}->to_utf8(join('', map(chr($_), split(/\./, $2)))); + my $svc_name = $self->{output}->decode(join('', map(chr($_), split(/\./, $2)))); my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $instance); if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && diff --git a/os/windows/snmp/mode/service.pm b/os/windows/snmp/mode/service.pm index 69155930b..ea435ea14 100644 --- a/os/windows/snmp/mode/service.pm +++ b/os/windows/snmp/mode/service.pm @@ -86,11 +86,12 @@ sub run { severity => 'OK', short_msg => 'All service states are ok' ); + use Encode; foreach my $oid ($options{snmp}->oid_lex_sort(keys %$result)) { next if ($oid !~ /^$oid_svSvcOperatingState\.(\d+)\.(.*)$/); my $instance = $1 . '.' . $2; - my $svc_name = $self->{output}->to_utf8(join('', map(chr($_), split(/\./, $2)))); + my $svc_name = $self->{output}->decode(join('', map(chr($_), split(/\./, $2)))); my $svc_installed_state = $result->{$oid_svSvcInstalledState . '.' . $instance}; my $svc_operating_state = $result->{$oid_svSvcOperatingState . '.' . $instance}; for (my $i = 0; $i < scalar(@{$self->{option_results}->{service}}); $i++) { diff --git a/os/windows/wsman/mode/listservices.pm b/os/windows/wsman/mode/listservices.pm index 6f1a0db31..fa3fe5141 100644 --- a/os/windows/wsman/mode/listservices.pm +++ b/os/windows/wsman/mode/listservices.pm @@ -71,14 +71,18 @@ sub run { $self->manage_selection(); foreach my $name (sort(keys %{$self->{result}})) { - $self->{output}->output_add(long_msg => "'" . $name . "' [DisplayName = " . $self->{output}->to_utf8($self->{result}->{$name}->{DisplayName}) . '] [' . - 'StartMode = ' . $self->{result}->{$name}->{StartMode} . '] [' . - 'State = ' . $self->{result}->{$name}->{State} . - ']'); + $self->{output}->output_add( + long_msg => "'" . $name . "' [DisplayName = " . $self->{output}->decode($self->{result}->{$name}->{DisplayName}) . '] [' . + 'StartMode = ' . $self->{result}->{$name}->{StartMode} . '] [' . + 'State = ' . $self->{result}->{$name}->{State} . + ']' + ); } - $self->{output}->output_add(severity => 'OK', - short_msg => 'List services:'); + $self->{output}->output_add( + severity => 'OK', + short_msg => 'List services:' + ); $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); $self->{output}->exit(); } @@ -98,7 +102,7 @@ sub disco_show { foreach my $name (sort(keys %{$self->{result}})) { $self->{output}->add_disco_entry( name => $name, - display_name => $self->{output}->to_utf8($self->{result}->{$name}->{DisplayName}), + display_name => $self->{output}->decode($self->{result}->{$name}->{DisplayName}), start_mode => $self->{result}->{$name}->{StartMode}, state => $self->{result}->{$name}->{State} ); diff --git a/snmp_standard/mode/diskusage.pm b/snmp_standard/mode/diskusage.pm index 49fe33049..a2c4661f1 100644 --- a/snmp_standard/mode/diskusage.pm +++ b/snmp_standard/mode/diskusage.pm @@ -268,8 +268,8 @@ sub reload_cache { foreach my $key (keys %$result) { next if ($key !~ /$oid_dskPath\.([0-9]+)$/); $datas->{disks}->{$1} = [ - $self->{output}->to_utf8($result->{$key}), - $self->{output}->to_utf8($result->{$oid_dskDevice . '.' . $1}) + $self->{output}->decode($result->{$key}), + $self->{output}->decode($result->{$oid_dskDevice . '.' . $1}) ]; } diff --git a/snmp_standard/mode/interfaces.pm b/snmp_standard/mode/interfaces.pm index 1e5e3ef05..699510902 100644 --- a/snmp_standard/mode/interfaces.pm +++ b/snmp_standard/mode/interfaces.pm @@ -924,7 +924,7 @@ sub reload_cache_index_value { foreach (keys %{$options{result}->{ $self->{oids_label}->{$options{name}}->{oid} }}) { /^$self->{oids_label}->{$options{name}}->{oid}\.(.*)$/; push @{$options{datas}->{all_ids}}, $1 if ($store_index == 1); - $options{datas}->{$options{name} . "_" . $1} = $self->{output}->to_utf8($options{result}->{ $self->{oids_label}->{$options{name}}->{oid} }->{$_}); + $options{datas}->{$options{name} . '_' . $1} = $self->{output}->decode($options{result}->{ $self->{oids_label}->{$options{name}}->{oid} }->{$_}); } } diff --git a/snmp_standard/mode/listdiskspath.pm b/snmp_standard/mode/listdiskspath.pm index e5c04fa6b..2860d6cef 100644 --- a/snmp_standard/mode/listdiskspath.pm +++ b/snmp_standard/mode/listdiskspath.pm @@ -34,19 +34,18 @@ sub new { my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; - $options{options}->add_options(arguments => - { - "diskpath:s" => { name => 'diskpath' }, - "name" => { name => 'use_name' }, - "regexp" => { name => 'use_regexp' }, - "regexp-isensitive" => { name => 'use_regexpi' }, - "display-transform-src:s" => { name => 'display_transform_src' }, - "display-transform-dst:s" => { name => 'display_transform_dst' }, - "skip-total-size-zero" => { name => 'skip_total_size_zero' }, - }); + $options{options}->add_options(arguments => { + 'diskpath:s' => { name => 'diskpath' }, + 'name' => { name => 'use_name' }, + 'regexp' => { name => 'use_regexp' }, + 'regexp-isensitive' => { name => 'use_regexpi' }, + 'display-transform-src:s' => { name => 'display_transform_src' }, + 'display-transform-dst:s' => { name => 'display_transform_dst' }, + 'skip-total-size-zero' => { name => 'skip_total_size_zero' } + }); $self->{diskpath_id_selected} = []; - + return $self; } @@ -113,7 +112,7 @@ sub manage_selection { my $total_diskpath = 0; foreach my $key ($self->{snmp}->oid_lex_sort(keys %$result)) { next if ($key !~ /\.([0-9]+)$/); - $self->{datas}->{'dskPath_' . $1} = $self->{output}->to_utf8($result->{$key}); + $self->{datas}->{'dskPath_' . $1} = $self->{output}->decode($result->{$key}); $total_diskpath = $1; } diff --git a/snmp_standard/mode/listinterfaces.pm b/snmp_standard/mode/listinterfaces.pm index d4369fb1c..c71471aff 100644 --- a/snmp_standard/mode/listinterfaces.pm +++ b/snmp_standard/mode/listinterfaces.pm @@ -244,7 +244,7 @@ sub manage_selection { $self->{datas}->{all_ids} = []; foreach my $key ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{ $self->{oids_label}->{$self->{option_results}->{oid_filter}} }})) { next if ($key !~ /^$self->{oids_label}->{$self->{option_results}->{oid_filter}}\.(.*)$/); - $self->{datas}->{$self->{option_results}->{oid_filter} . "_" . $1} = $self->{output}->to_utf8($self->{results}->{$self->{oids_label}->{ $self->{option_results}->{oid_filter}} }->{$key}); + $self->{datas}->{$self->{option_results}->{oid_filter} . "_" . $1} = $self->{output}->decode($self->{results}->{$self->{oids_label}->{ $self->{option_results}->{oid_filter}} }->{$key}); push @{$self->{datas}->{all_ids}}, $1; } @@ -256,7 +256,7 @@ sub manage_selection { if ($self->{option_results}->{oid_filter} ne $self->{option_results}->{oid_display}) { foreach my $key ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{ $self->{oids_label}->{$self->{option_results}->{oid_display}} }})) { next if ($key !~ /^$self->{oids_label}->{$self->{option_results}->{oid_display}}\.(.*)$/); - $self->{datas}->{$self->{option_results}->{oid_display} . "_" . $1} = $self->{output}->to_utf8($self->{results}->{$self->{oids_label}->{ $self->{option_results}->{oid_display}} }->{$key}); + $self->{datas}->{$self->{option_results}->{oid_display} . "_" . $1} = $self->{output}->decode($self->{results}->{$self->{oids_label}->{ $self->{option_results}->{oid_display}} }->{$key}); } } @@ -300,7 +300,7 @@ sub get_extra_values_by_instance { foreach (keys %{$self->{results}->{ $self->{extra_oids}->{$name}->{oid} }}) { if (/^$self->{extra_oids}->{$name}->{oid}\.$matching/) { $extra_values->{$name} = '' if (!defined($extra_values->{$name})); - $extra_values->{$name} .= $append . $self->{output}->to_utf8($self->{results}->{ $self->{extra_oids}->{$name}->{oid} }->{$_}); + $extra_values->{$name} .= $append . $self->{output}->decode($self->{results}->{ $self->{extra_oids}->{$name}->{oid} }->{$_}); $append = ','; } } diff --git a/snmp_standard/mode/liststorages.pm b/snmp_standard/mode/liststorages.pm index 216846aaf..5d3492974 100644 --- a/snmp_standard/mode/liststorages.pm +++ b/snmp_standard/mode/liststorages.pm @@ -77,18 +77,17 @@ sub new { my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; - $options{options}->add_options(arguments => - { - "storage:s" => { name => 'storage' }, - "name" => { name => 'use_name' }, - "regexp" => { name => 'use_regexp' }, - "regexp-isensitive" => { name => 'use_regexpi' }, - "oid-filter:s" => { name => 'oid_filter', default => 'hrStorageDescr'}, - "oid-display:s" => { name => 'oid_display', default => 'hrStorageDescr'}, - "display-transform-src:s" => { name => 'display_transform_src' }, - "display-transform-dst:s" => { name => 'display_transform_dst' }, - "filter-storage-type:s" => { name => 'filter_storage_type', default => '^(hrStorageFixedDisk|hrStorageNetworkDisk|hrFSBerkeleyFFS)$' }, - }); + $options{options}->add_options(arguments => { + 'storage:s' => { name => 'storage' }, + 'name' => { name => 'use_name' }, + 'regexp' => { name => 'use_regexp' }, + 'regexp-isensitive' => { name => 'use_regexpi' }, + 'oid-filter:s' => { name => 'oid_filter', default => 'hrStorageDescr'}, + 'oid-display:s' => { name => 'oid_display', default => 'hrStorageDescr'}, + 'display-transform-src:s' => { name => 'display_transform_src' }, + 'display-transform-dst:s' => { name => 'display_transform_dst' }, + 'filter-storage-type:s' => { name => 'filter_storage_type', default => '^(hrStorageFixedDisk|hrStorageNetworkDisk|hrFSBerkeleyFFS)$' } + }); $self->{storage_id_selected} = []; @@ -187,7 +186,7 @@ sub manage_selection { push @{$self->{datas}->{all_ids}}, $storage_index; } - $self->{datas}->{$$_[1] . "_" . $storage_index} = $self->{output}->to_utf8($result->{ $oids_hrStorageTable{$$_[1]} }->{$key}); + $self->{datas}->{$$_[1] . "_" . $storage_index} = $self->{output}->decode($result->{ $oids_hrStorageTable{$$_[1]} }->{$key}); } } @@ -200,7 +199,7 @@ sub manage_selection { $result = $self->{snmp}->get_table(oid => $oids_hrStorageTable{$self->{option_results}->{oid_display}}); foreach my $key ($self->{snmp}->oid_lex_sort(keys %$result)) { next if ($key !~ /\.([0-9]+)$/); - $self->{datas}->{$self->{option_results}->{oid_display} . "_" . $1} = $self->{output}->to_utf8($result->{$key}); + $self->{datas}->{$self->{option_results}->{oid_display} . "_" . $1} = $self->{output}->decode($result->{$key}); } } diff --git a/snmp_standard/mode/storage.pm b/snmp_standard/mode/storage.pm index d5263665a..d75c723ab 100644 --- a/snmp_standard/mode/storage.pm +++ b/snmp_standard/mode/storage.pm @@ -420,7 +420,7 @@ sub reload_cache { push @{$datas->{all_ids}}, $storage_index; } - $datas->{$$_[1] . "_" . $storage_index} = $self->{output}->to_utf8($result->{ $oids_hrStorageTable{$$_[1]} }->{$key}); + $datas->{$$_[1] . "_" . $storage_index} = $self->{output}->decode($result->{ $oids_hrStorageTable{$$_[1]} }->{$key}); } } diff --git a/storage/netapp/ontap/snmp/mode/failover.pm b/storage/netapp/ontap/snmp/mode/failover.pm index cfb350a99..6eea77616 100644 --- a/storage/netapp/ontap/snmp/mode/failover.pm +++ b/storage/netapp/ontap/snmp/mode/failover.pm @@ -170,7 +170,7 @@ sub manage_selection { my $instance = $1; $result = $options{snmp}->map_instance(mapping => $mapping_ha, results => $snmp_result->{$oid_haEntry}, instance => $instance); - my $name = $self->{output}->to_utf8(join('', map(chr($_), split(/\./, $instance)))); + my $name = $self->{output}->decode(join('', map(chr($_), split(/\./, $instance)))); if (defined($self->{option_results}->{filter_node}) && $self->{option_results}->{filter_node} ne '' && $name !~ /$self->{option_results}->{filter_node}/) { $self->{output}->output_add(long_msg => "skipping node '" . $name . "'.", debug => 1);