indent + manage no vm running
This commit is contained in:
parent
82041f9120
commit
12e545e235
|
@ -106,6 +106,11 @@ sub run {
|
|||
}
|
||||
}
|
||||
|
||||
if (scalar(@ds_array) == 0) {
|
||||
centreon::vmware::common::set_response(code => 200, short_message => "no virtual machines running or no datastore found");
|
||||
return ;
|
||||
}
|
||||
|
||||
@properties = ('info');
|
||||
my $result2 = centreon::vmware::common::get_views($self->{connector}, \@ds_array, \@properties);
|
||||
return if (!defined($result2));
|
||||
|
|
|
@ -207,11 +207,12 @@ sub search_in_datastore {
|
|||
my (%options) = @_;
|
||||
my $result;
|
||||
|
||||
my $files = FileQueryFlags->new(fileSize => 1,
|
||||
fileType => 1,
|
||||
modification => 1,
|
||||
fileOwner => 1
|
||||
);
|
||||
my $files = FileQueryFlags->new(
|
||||
fileSize => 1,
|
||||
fileType => 1,
|
||||
modification => 1,
|
||||
fileOwner => 1
|
||||
);
|
||||
my $hostdb_search_spec = HostDatastoreBrowserSearchSpec->new(
|
||||
details => $files,
|
||||
searchCaseInsensitive => $options{searchCaseInsensitive},
|
||||
|
@ -219,8 +220,10 @@ sub search_in_datastore {
|
|||
query => $options{query}
|
||||
);
|
||||
eval {
|
||||
$result = $options{browse_ds}->SearchDatastoreSubFolders(datastorePath => $options{ds_name},
|
||||
searchSpec => $hostdb_search_spec);
|
||||
$result = $options{browse_ds}->SearchDatastoreSubFolders(
|
||||
datastorePath => $options{ds_name},
|
||||
searchSpec => $hostdb_search_spec
|
||||
);
|
||||
};
|
||||
if ($@) {
|
||||
return (undef, $@) if (defined($options{return}) && $options{return} == 1);
|
||||
|
@ -237,16 +240,22 @@ sub get_perf_metric_ids {
|
|||
foreach (@{$options{metrics}}) {
|
||||
if (defined($options{connector}->{perfcounter_cache}->{$_->{label}})) {
|
||||
if ($options{interval} != 20 && $options{connector}->{perfcounter_cache}->{$_->{label}}{level} > $options{connector}->{sampling_periods}->{$options{interval}}->{level}) {
|
||||
set_response(code => -1,
|
||||
short_message => sprintf("Cannot get counter '%s' for the sampling period '%s' (counter level: %s, sampling level: %s)",
|
||||
$_->{label}, $options{interval},
|
||||
$options{connector}->{perfcounter_cache}->{$_->{label}}{level},
|
||||
$options{connector}->{sampling_periods}->{$options{interval}}->{level}));
|
||||
set_response(
|
||||
code => -1,
|
||||
short_message => sprintf(
|
||||
"Cannot get counter '%s' for the sampling period '%s' (counter level: %s, sampling level: %s)",
|
||||
$_->{label}, $options{interval},
|
||||
$options{connector}->{perfcounter_cache}->{$_->{label}}{level},
|
||||
$options{connector}->{sampling_periods}->{$options{interval}}->{level}
|
||||
)
|
||||
);
|
||||
return undef;
|
||||
}
|
||||
foreach my $instance (@{$_->{instances}}) {
|
||||
my $metric = PerfMetricId->new(counterId => $options{connector}->{perfcounter_cache}->{$_->{label}}{key},
|
||||
instance => $instance);
|
||||
my $metric = PerfMetricId->new(
|
||||
counterId => $options{connector}->{perfcounter_cache}->{$_->{label}}{key},
|
||||
instance => $instance
|
||||
);
|
||||
push @$filtered_list, $metric;
|
||||
}
|
||||
} else {
|
||||
|
@ -264,36 +273,44 @@ sub performance_builder_specific {
|
|||
my $time_shift = defined($options{time_shift}) ? $options{time_shift} : 0;
|
||||
my @perf_query_spec;
|
||||
foreach my $entry (@{$options{metrics}}) {
|
||||
my $perf_metric_ids = get_perf_metric_ids(connector => $options{connector},
|
||||
metrics => $entry->{metrics},
|
||||
interval => $options{interval});
|
||||
my $perf_metric_ids = get_perf_metric_ids(
|
||||
connector => $options{connector},
|
||||
metrics => $entry->{metrics},
|
||||
interval => $options{interval}
|
||||
);
|
||||
return undef if (!defined($perf_metric_ids));
|
||||
|
||||
my $tstamp = time();
|
||||
my (@t) = gmtime($tstamp - $options{interval} - $time_shift);
|
||||
my $startTime = sprintf("%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]);
|
||||
my $startTime = sprintf(
|
||||
"%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]
|
||||
);
|
||||
(@t) = gmtime($tstamp);
|
||||
my $endTime = sprintf("%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]);
|
||||
my $endTime = sprintf(
|
||||
"%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]
|
||||
);
|
||||
if ($options{interval} == 20) {
|
||||
push @perf_query_spec, PerfQuerySpec->new(entity => $entry->{entity},
|
||||
metricId => $perf_metric_ids,
|
||||
format => 'normal',
|
||||
intervalId => 20,
|
||||
startTime => $startTime,
|
||||
endTime => $endTime
|
||||
);
|
||||
#maxSample => 1);
|
||||
push @perf_query_spec, PerfQuerySpec->new(
|
||||
entity => $entry->{entity},
|
||||
metricId => $perf_metric_ids,
|
||||
format => 'normal',
|
||||
intervalId => 20,
|
||||
startTime => $startTime,
|
||||
endTime => $endTime
|
||||
);
|
||||
#maxSample => 1);
|
||||
} else {
|
||||
push @perf_query_spec, PerfQuerySpec->new(entity => $entry->{entity},
|
||||
metricId => $perf_metric_ids,
|
||||
format => 'normal',
|
||||
intervalId => $options{interval},
|
||||
startTime => $startTime,
|
||||
endTime => $endTime
|
||||
);
|
||||
#maxSample => 1);
|
||||
push @perf_query_spec, PerfQuerySpec->new(
|
||||
entity => $entry->{entity},
|
||||
metricId => $perf_metric_ids,
|
||||
format => 'normal',
|
||||
intervalId => $options{interval},
|
||||
startTime => $startTime,
|
||||
endTime => $endTime
|
||||
);
|
||||
#maxSample => 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -305,37 +322,46 @@ sub performance_builder_global {
|
|||
|
||||
my $time_shift = defined($options{time_shift}) ? $options{time_shift} : 0;
|
||||
my @perf_query_spec;
|
||||
my $perf_metric_ids = get_perf_metric_ids(connector => $options{connector},
|
||||
metrics => $options{metrics},
|
||||
interval => $options{interval});
|
||||
my $perf_metric_ids = get_perf_metric_ids(
|
||||
connector => $options{connector},
|
||||
metrics => $options{metrics},
|
||||
interval => $options{interval}
|
||||
);
|
||||
return undef if (!defined($perf_metric_ids));
|
||||
|
||||
my $tstamp = time();
|
||||
my (@t) = gmtime($tstamp - $options{interval} - $time_shift);
|
||||
my $startTime = sprintf("%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]);
|
||||
my $startTime = sprintf(
|
||||
"%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]
|
||||
);
|
||||
(@t) = gmtime($tstamp);
|
||||
my $endTime = sprintf("%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]);
|
||||
my $endTime = sprintf(
|
||||
"%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]
|
||||
);
|
||||
|
||||
foreach (@{$options{views}}) {
|
||||
if ($options{interval} == 20) {
|
||||
push @perf_query_spec, PerfQuerySpec->new(entity => $_,
|
||||
metricId => $perf_metric_ids,
|
||||
format => 'normal',
|
||||
intervalId => 20,
|
||||
startTime => $startTime,
|
||||
endTime => $endTime);
|
||||
#maxSample => 1);
|
||||
push @perf_query_spec, PerfQuerySpec->new(
|
||||
entity => $_,
|
||||
metricId => $perf_metric_ids,
|
||||
format => 'normal',
|
||||
intervalId => 20,
|
||||
startTime => $startTime,
|
||||
endTime => $endTime
|
||||
);
|
||||
#maxSample => 1);
|
||||
} else {
|
||||
push @perf_query_spec, PerfQuerySpec->new(entity => $_,
|
||||
metricId => $perf_metric_ids,
|
||||
format => 'normal',
|
||||
intervalId => $options{interval},
|
||||
startTime => $startTime,
|
||||
endTime => $endTime
|
||||
);
|
||||
#maxSample => 1);
|
||||
push @perf_query_spec, PerfQuerySpec->new(
|
||||
entity => $_,
|
||||
metricId => $perf_metric_ids,
|
||||
format => 'normal',
|
||||
intervalId => $options{interval},
|
||||
startTime => $startTime,
|
||||
endTime => $endTime
|
||||
);
|
||||
#maxSample => 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -364,14 +390,20 @@ sub generic_performance_values_historic {
|
|||
my $perfdata;
|
||||
|
||||
if (defined($views)) {
|
||||
$perfdata = performance_builder_global(connector => $obj_vmware,
|
||||
views => $views,
|
||||
metrics => $perfs,
|
||||
interval => $interval, time_shift => $options{time_shift});
|
||||
$perfdata = performance_builder_global(
|
||||
connector => $obj_vmware,
|
||||
views => $views,
|
||||
metrics => $perfs,
|
||||
interval => $interval,
|
||||
time_shift => $options{time_shift}
|
||||
);
|
||||
} else {
|
||||
$perfdata = performance_builder_specific(connector => $obj_vmware,
|
||||
metrics => $perfs,
|
||||
interval => $interval, time_shift => $options{time_shift});
|
||||
$perfdata = performance_builder_specific(
|
||||
connector => $obj_vmware,
|
||||
metrics => $perfs,
|
||||
interval => $interval,
|
||||
time_shift => $options{time_shift}
|
||||
);
|
||||
}
|
||||
return undef if (!defined($perfdata));
|
||||
|
||||
|
@ -412,8 +444,14 @@ sub generic_performance_values_historic {
|
|||
};
|
||||
if ($@) {
|
||||
if ($@ =~ /querySpec.interval.*InvalidArgumentFault/msi) {
|
||||
set_response(code => -1, short_message => sprintf("Interval '%s' is surely not supported for the managed entity (caller: %s)",
|
||||
$interval, join('--', caller)));
|
||||
set_response(
|
||||
code => -1,
|
||||
short_message => sprintf(
|
||||
"Interval '%s' is surely not supported for the managed entity (caller: %s)",
|
||||
$interval,
|
||||
join('--', caller)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$obj_vmware->{logger}->writeLogError("'" . $obj_vmware->{whoaim} . "' $@");
|
||||
}
|
||||
|
@ -466,8 +504,14 @@ sub search_entities {
|
|||
if (scalar(@$begin_views) > 0) {
|
||||
my $temp_views = [];
|
||||
while ((my $view = shift @$begin_views)) {
|
||||
my ($status, $views) = find_entity_views(connector => $options{command}->{connector}, view_type => $$scope[1], properties => $properties, filter => $filters,
|
||||
begin_entity => $view, output_message => 0);
|
||||
my ($status, $views) = find_entity_views(
|
||||
connector => $options{command}->{connector},
|
||||
view_type => $$scope[1],
|
||||
properties => $properties,
|
||||
filter => $filters,
|
||||
begin_entity => $view,
|
||||
output_message => 0
|
||||
);
|
||||
next if ($status == 0);
|
||||
return undef if ($status == -1);
|
||||
push @$temp_views, @$views;
|
||||
|
@ -490,8 +534,14 @@ sub search_entities {
|
|||
if (scalar(@$begin_views) > 0) {
|
||||
my $results = [];
|
||||
foreach my $view (@$begin_views) {
|
||||
my ($status, $views) = find_entity_views(connector => $options{command}->{connector}, view_type => $options{view_type}, properties => $options{properties}, filter => $options{filter},
|
||||
begin_entity => $view, output_message => 0);
|
||||
my ($status, $views) = find_entity_views(
|
||||
connector => $options{command}->{connector},
|
||||
view_type => $options{view_type},
|
||||
properties => $options{properties},
|
||||
filter => $options{filter},
|
||||
begin_entity => $view,
|
||||
output_message => 0
|
||||
);
|
||||
next if ($status == 0);
|
||||
return undef if ($status == -1);
|
||||
push @$results, @$views;
|
||||
|
@ -699,11 +749,15 @@ sub vsan_get_performances {
|
|||
my $time_shift = defined($options{time_shift}) ? $options{time_shift} : 0;
|
||||
my $tstamp = time();
|
||||
my (@t) = gmtime($tstamp - $options{interval} - $time_shift);
|
||||
my $startTime = sprintf("%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]);
|
||||
my $startTime = sprintf(
|
||||
"%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]
|
||||
);
|
||||
(@t) = gmtime($tstamp);
|
||||
my $endTime = sprintf("%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]);
|
||||
my $endTime = sprintf(
|
||||
"%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(1900+$t[5]),(1+$t[4]),$t[3],$t[2],$t[1],$t[0]
|
||||
);
|
||||
my $querySpec = VsanPerfQuerySpec->new(
|
||||
entityRefId => $options{entityRefId}, # for example: 'virtual-machine:*'
|
||||
labels => $options{labels}, # for example: ['iopsRead, iopsWrite']
|
||||
|
|
Loading…
Reference in New Issue