mirror of
https://github.com/centreon/centreon-plugins.git
synced 2025-07-27 07:34:35 +02:00
enhance saleforce
This commit is contained in:
parent
9d38ae7907
commit
342ce244d3
@ -41,9 +41,9 @@ sub new {
|
|||||||
|
|
||||||
if (!defined($options{noptions})) {
|
if (!defined($options{noptions})) {
|
||||||
$options{options}->add_options(arguments => {
|
$options{options}->add_options(arguments => {
|
||||||
"hostname:s" => { name => 'hostname' },
|
'hostname:s' => { name => 'hostname' },
|
||||||
"timeout:s" => { name => 'timeout' },
|
'timeout:s' => { name => 'timeout' },
|
||||||
"api-versions:s" => { name => 'api_version' },
|
'api-versions:s' => { name => 'api_version' }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
$options{options}->add_help(package => __PACKAGE__, sections => 'REST API OPTIONS', once => 1);
|
$options{options}->add_help(package => __PACKAGE__, sections => 'REST API OPTIONS', once => 1);
|
||||||
@ -110,20 +110,24 @@ sub request_api {
|
|||||||
|
|
||||||
$self->settings();
|
$self->settings();
|
||||||
|
|
||||||
my $content = $self->{http}->request(method => 'GET', url_path => '/' . $self->{api_version} . $options{path},
|
my $content = $self->{http}->request(
|
||||||
critical_status => '', warning_status => '', unknown_status => '');
|
method => 'GET',
|
||||||
|
url_path => '/' . $self->{api_version} . $options{path},
|
||||||
|
critical_status => '',
|
||||||
|
warning_status => '',
|
||||||
|
unknown_status => ''
|
||||||
|
);
|
||||||
|
|
||||||
my $decoded;
|
my $decoded;
|
||||||
eval {
|
eval {
|
||||||
$decoded = decode_json($content);
|
$decoded = decode_json($content);
|
||||||
};
|
};
|
||||||
if ($@) {
|
if ($@) {
|
||||||
$self->{output}->output_add(long_msg => $content, debug => 1);
|
|
||||||
$self->{output}->add_option_msg(short_msg => "Cannot decode json response");
|
$self->{output}->add_option_msg(short_msg => "Cannot decode json response");
|
||||||
$self->{output}->option_exit();
|
$self->{output}->option_exit();
|
||||||
}
|
}
|
||||||
if ($self->{http}->get_code() != 200) {
|
if ($self->{http}->get_code() != 200) {
|
||||||
$self->{output}->add_option_msg(short_msg => "Connection issue: " . $decoded->{msg});
|
$self->{output}->add_option_msg(short_msg => "Connection issue: " . $decoded->{message});
|
||||||
$self->{output}->option_exit();
|
$self->{output}->option_exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,4 +169,3 @@ API base url path (Default: '/v1').
|
|||||||
B<custom>.
|
B<custom>.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@ -30,21 +30,26 @@ sub custom_status_output {
|
|||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
return sprintf(
|
return sprintf(
|
||||||
"Salesforce '%s' instance status is '%s' (active:'%s') ",
|
"status is '%s' (active:'%s') ",
|
||||||
$self->{result_values}->{name},
|
|
||||||
$self->{result_values}->{status},
|
$self->{result_values}->{status},
|
||||||
$self->{result_values}->{active}
|
$self->{result_values}->{active}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub prefix_volume_output {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
return "Salesforce '" . $options{instance_value}->{name} . "' instance ";
|
||||||
|
}
|
||||||
|
|
||||||
sub set_counters {
|
sub set_counters {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
$self->{maps_counters_type} = [
|
$self->{maps_counters_type} = [
|
||||||
{ name => 'status', type => 1 },
|
{ name => 'salesforce', type => 1, cb_prefix_output => 'prefix_salesforce_output', message_multiple => 'All salesforce instances are ok' }
|
||||||
];
|
];
|
||||||
|
|
||||||
$self->{maps_counters}->{status} = [
|
$self->{maps_counters}->{salesforce} = [
|
||||||
{ label => 'status', threshold => 0, set => {
|
{ label => 'status', threshold => 0, set => {
|
||||||
key_values => [ { name => 'status' }, { name => 'active' }, { name => 'name' } ],
|
key_values => [ { name => 'status' }, { name => 'active' }, { name => 'name' } ],
|
||||||
closure_custom_calc => \&catalog_status_calc,
|
closure_custom_calc => \&catalog_status_calc,
|
||||||
@ -61,7 +66,7 @@ sub set_counters {
|
|||||||
min => 0, label_extra_instance => 1 },
|
min => 0, label_extra_instance => 1 },
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,8 +80,9 @@ sub new {
|
|||||||
'alias' => { name => 'use_alias' },
|
'alias' => { name => 'use_alias' },
|
||||||
'unknown-status:s' => { name => 'unknown_status', default => '' },
|
'unknown-status:s' => { name => 'unknown_status', default => '' },
|
||||||
'warning-status:s' => { name => 'warning_status', default => '' },
|
'warning-status:s' => { name => 'warning_status', default => '' },
|
||||||
'critical-status:s' => { name => 'critical_status', default => '%{status} !~ /OK/' },
|
'critical-status:s' => { name => 'critical_status', default => '%{status} !~ /OK/' }
|
||||||
});
|
});
|
||||||
|
|
||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,7 +91,6 @@ sub check_options {
|
|||||||
$self->SUPER::check_options(%options);
|
$self->SUPER::check_options(%options);
|
||||||
|
|
||||||
$self->change_macros(macros => ['unknown_status', 'warning_status', 'critical_status']);
|
$self->change_macros(macros => ['unknown_status', 'warning_status', 'critical_status']);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub manage_selection {
|
sub manage_selection {
|
||||||
@ -96,14 +101,13 @@ sub manage_selection {
|
|||||||
foreach my $instance (@{$self->{option_results}->{instance}}) {
|
foreach my $instance (@{$self->{option_results}->{instance}}) {
|
||||||
my $result = $options{custom}->request_api(path => $instance_path . $instance . '/status');
|
my $result = $options{custom}->request_api(path => $instance_path . $instance . '/status');
|
||||||
|
|
||||||
$self->{status}->{$instance} = {
|
$self->{salesforce}->{$instance} = {
|
||||||
active => $result->{isActive},
|
active => $result->{isActive},
|
||||||
incident => scalar(@{$result->{Incidents}}),
|
incident => scalar(@{$result->{Incidents}}),
|
||||||
name => $instance,
|
name => $instance,
|
||||||
status => $result->{status},
|
status => $result->{status}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
@ -139,4 +143,3 @@ Set critical threshold for instance status (Default: '%{status} !~ /OK/').
|
|||||||
=back
|
=back
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ sub new {
|
|||||||
|
|
||||||
$self->{version} = '0.1';
|
$self->{version} = '0.1';
|
||||||
%{$self->{modes}} = (
|
%{$self->{modes}} = (
|
||||||
'sfdc-instance' => 'apps::salesforce::restapi::mode::sfdcinstance',
|
'sfdc-instance' => 'apps::salesforce::restapi::mode::sfdcinstance',
|
||||||
);
|
);
|
||||||
$self->{custom_modes}{api} = 'apps::salesforce::restapi::custom::api';
|
$self->{custom_modes}{api} = 'apps::salesforce::restapi::custom::api';
|
||||||
return $self;
|
return $self;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user