diff --git a/centreon-plugins/cloud/aws/mode/cloudwatch.pm b/centreon-plugins/cloud/aws/mode/cloudwatch.pm index a89f91b27..636a09ec8 100644 --- a/centreon-plugins/cloud/aws/mode/cloudwatch.pm +++ b/centreon-plugins/cloud/aws/mode/cloudwatch.pm @@ -27,7 +27,6 @@ use warnings; use centreon::plugins::misc; use POSIX; use JSON; -use Module::Load; my $CloudwatchMetrics = { cpu => "cloud::aws::mode::metrics::ec2instancecpu", @@ -192,12 +191,12 @@ sub run { my ( $msg, $exit_code, $awsapi ); - if ( defined( $CloudwatchMetrics->{ $self->{option_results}->{metric} } ) ) - { - load $CloudwatchMetrics->{ $self->{option_results}->{metric} },qw/cloudwatchCheck/; - cloudwatchCheck($self); - } - else { + if ( defined( $CloudwatchMetrics->{ $self->{option_results}->{metric} } ) ) { + centreon::plugins::misc::mymodule_load(output => $options{output}, module => $CloudwatchMetrics->{$self->{option_results}->{metric}}, + error_msg => "Cannot load module '" . $CloudwatchMetrics->{$self->{option_results}->{metric}} . "'."); + my $func = $CloudwatchMetrics->{$self->{option_results}->{metric}}->can('cloudwatchCheck'); + $func->($self); + } else { $self->{output} ->add_option_msg( short_msg => "Wrong option. Cannot find metric '" . $self->{option_results}->{metric}