(plugin) storage::netapp:ontap::restapi - fix missing counters for space usage and bug in listvolumes (#4041)
* fix missing filter option and missing counters * fix 'uninitialized value in sprintf' in listvol
This commit is contained in:
parent
d2d51f99d2
commit
9b0495633e
|
@ -73,6 +73,33 @@ sub set_counters {
|
||||||
closure_custom_threshold_check => \&catalog_status_threshold_ng
|
closure_custom_threshold_check => \&catalog_status_threshold_ng
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{ label => 'usage', nlabel => 'aggregate.space.usage.bytes', set => {
|
||||||
|
key_values => [ { name => 'used_space' }, { name => 'free_space' }, { name => 'prct_used_space' }, { name => 'prct_free_space' }, { name => 'total_space' }, { name => 'display' }, ],
|
||||||
|
closure_custom_output => $self->can('custom_usage_output'),
|
||||||
|
perfdatas => [
|
||||||
|
{ value => 'used_space', template => '%d', min => 0, max => 'total_space',
|
||||||
|
unit => 'B', cast_int => 1, label_extra_instance => 1, instance_use => 'display' },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ label => 'usage-free', nlabel => 'aggregate.space.free.bytes', display_ok => 0, set => {
|
||||||
|
key_values => [ { name => 'free_space' }, { name => 'used_space' }, { name => 'prct_used_space' }, { name => 'prct_free_space' }, { name => 'total_space' }, { name => 'display' }, ],
|
||||||
|
closure_custom_output => $self->can('custom_usage_output'),
|
||||||
|
perfdatas => [
|
||||||
|
{ value => 'free_space', template => '%d', min => 0, max => 'total_space',
|
||||||
|
unit => 'B', cast_int => 1, label_extra_instance => 1, instance_use => 'display' },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ label => 'usage-prct', nlabel => 'aggregate.space.usage.percentage', display_ok => 0, set => {
|
||||||
|
key_values => [ { name => 'prct_used_space' }, { name => 'display' } ],
|
||||||
|
output_template => 'used : %.2f %%',
|
||||||
|
perfdatas => [
|
||||||
|
{ value => 'prct_used_space', template => '%.2f', min => 0, max => 100,
|
||||||
|
unit => '%', label_extra_instance => 1, instance_use => 'display' },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
{ label => 'read', nlabel => 'aggregate.io.read.usage.bytespersecond', display_ok => 0, set => {
|
{ label => 'read', nlabel => 'aggregate.io.read.usage.bytespersecond', display_ok => 0, set => {
|
||||||
key_values => [ { name => 'read' } ],
|
key_values => [ { name => 'read' } ],
|
||||||
output_template => 'read: %s %s/s',
|
output_template => 'read: %s %s/s',
|
||||||
|
@ -183,6 +210,7 @@ sub new {
|
||||||
bless $self, $class;
|
bless $self, $class;
|
||||||
|
|
||||||
$options{options}->add_options(arguments => {
|
$options{options}->add_options(arguments => {
|
||||||
|
'filter-name:s' => { name => 'filter_name' },
|
||||||
});
|
});
|
||||||
|
|
||||||
return $self;
|
return $self;
|
||||||
|
@ -195,6 +223,8 @@ sub manage_selection {
|
||||||
|
|
||||||
$self->{aggregates} = {};
|
$self->{aggregates} = {};
|
||||||
foreach (@{$aggregates->{records}}) {
|
foreach (@{$aggregates->{records}}) {
|
||||||
|
next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' &&
|
||||||
|
$_->{name} !~ /$self->{option_results}->{filter_name}/);
|
||||||
my $name = $_->{name};
|
my $name = $_->{name};
|
||||||
my $uuid = $_->{uuid};
|
my $uuid = $_->{uuid};
|
||||||
|
|
||||||
|
@ -206,6 +236,10 @@ sub manage_selection {
|
||||||
total_space => $_->{space}->{block_storage}->{size},
|
total_space => $_->{space}->{block_storage}->{size},
|
||||||
used_space => $_->{space}->{block_storage}->{used},
|
used_space => $_->{space}->{block_storage}->{used},
|
||||||
free_space => $_->{space}->{block_storage}->{available},
|
free_space => $_->{space}->{block_storage}->{available},
|
||||||
|
prct_used_space =>
|
||||||
|
($_->{space}->{block_storage}->{used} * 100 / $_->{space}->{block_storage}->{size}),
|
||||||
|
prct_free_space =>
|
||||||
|
($_->{space}->{block_storage}->{available} * 100 / $_->{space}->{block_storage}->{size}),
|
||||||
read => $agg->{metric}->{throughput}->{read},
|
read => $agg->{metric}->{throughput}->{read},
|
||||||
write => $agg->{metric}->{throughput}->{write},
|
write => $agg->{metric}->{throughput}->{write},
|
||||||
other => $agg->{metric}->{throughput}->{other},
|
other => $agg->{metric}->{throughput}->{other},
|
||||||
|
|
|
@ -53,10 +53,11 @@ sub run {
|
||||||
my $volumes = $self->manage_selection(%options);
|
my $volumes = $self->manage_selection(%options);
|
||||||
foreach (@{$volumes->{records}}) {
|
foreach (@{$volumes->{records}}) {
|
||||||
my $vserver_name = defined($_->{svm}) && $_->{svm}->{name} ne '' ? $_->{svm}->{name} : '-';
|
my $vserver_name = defined($_->{svm}) && $_->{svm}->{name} ne '' ? $_->{svm}->{name} : '-';
|
||||||
|
my $volume_state = defined($_->{state}) && $_->{state} ne '' ? $_->{state} : '-';
|
||||||
$self->{output}->output_add(long_msg => sprintf(
|
$self->{output}->output_add(long_msg => sprintf(
|
||||||
'[name = %s][state = %s][vserver = %s]',
|
'[name = %s][state = %s][vserver = %s]',
|
||||||
$_->{name},
|
$_->{name},
|
||||||
$_->{state},
|
$volume_state,
|
||||||
$vserver_name
|
$vserver_name
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
@ -81,10 +82,11 @@ sub disco_show {
|
||||||
my $volumes = $self->manage_selection(%options);
|
my $volumes = $self->manage_selection(%options);
|
||||||
foreach (@{$volumes->{records}}) {
|
foreach (@{$volumes->{records}}) {
|
||||||
my $vserver_name = defined($_->{svm}) && $_->{svm}->{name} ne '' ? $_->{svm}->{name} : '-';
|
my $vserver_name = defined($_->{svm}) && $_->{svm}->{name} ne '' ? $_->{svm}->{name} : '-';
|
||||||
|
my $volume_state = defined($_->{state}) && $_->{state} ne '' ? $_->{state} : '-';
|
||||||
$self->{output}->add_disco_entry(
|
$self->{output}->add_disco_entry(
|
||||||
name => $_->{name},
|
name => $_->{name},
|
||||||
state => $_->{state},
|
state => $volume_state,
|
||||||
vserver_name => $_->{svm}->{name}
|
vserver_name => $vserver_name
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue