diff --git a/storage/nimble/restapi/mode/components/fan.pm b/storage/nimble/restapi/mode/components/fan.pm index caefe919e..0d91b0d50 100644 --- a/storage/nimble/restapi/mode/components/fan.pm +++ b/storage/nimble/restapi/mode/components/fan.pm @@ -40,6 +40,7 @@ sub check { foreach my $array (@{$self->{results}->{shelve}->{data}}) { my $array_name = $array->{array_name}; + $array_name .= ':' . $array->{serial} if ($self->use_serial()); foreach my $ctrl (@{$array->{ctrlrs}}) { foreach my $sensor (@{$ctrl->{ctrlr_sensors}}) { diff --git a/storage/nimble/restapi/mode/components/psu.pm b/storage/nimble/restapi/mode/components/psu.pm index fc52010f9..d08c92269 100644 --- a/storage/nimble/restapi/mode/components/psu.pm +++ b/storage/nimble/restapi/mode/components/psu.pm @@ -40,6 +40,7 @@ sub check { foreach my $array (@{$self->{results}->{shelve}->{data}}) { my $array_name = $array->{array_name}; + $array_name .= ':' . $array->{serial} if ($self->use_serial()); foreach my $sensor (@{$array->{chassis_sensors}}) { next if ($sensor->{type} ne 'power supply'); diff --git a/storage/nimble/restapi/mode/components/temperature.pm b/storage/nimble/restapi/mode/components/temperature.pm index a0c67e62e..31e2d1329 100644 --- a/storage/nimble/restapi/mode/components/temperature.pm +++ b/storage/nimble/restapi/mode/components/temperature.pm @@ -40,6 +40,7 @@ sub check { foreach my $array (@{$self->{results}->{shelve}->{data}}) { my $array_name = $array->{array_name}; + $array_name .= ':' . $array->{serial} if ($self->use_serial()); foreach my $ctrl (@{$array->{ctrlrs}}) { foreach my $sensor (@{$ctrl->{ctrlr_sensors}}) { diff --git a/storage/nimble/restapi/mode/hardware.pm b/storage/nimble/restapi/mode/hardware.pm index a5825d0cb..ea2f862d7 100644 --- a/storage/nimble/restapi/mode/hardware.pm +++ b/storage/nimble/restapi/mode/hardware.pm @@ -73,6 +73,24 @@ sub new { return $self; } +sub use_serial { + my ($self, %options) = @_; + + return $self->{use_serial} if (defined($self->{use_serial})); + + $self->{use_serial} = 0; + my $array_names = {}; + foreach (@{$self->{results}->{shelve}->{data}}) { + if (defined($array_names->{ $_->{array_name} })) { + $self->{use_serial} = 1; + last; + } + $array_names->{ $_->{array_name} } = 1; + } + + return $self->{use_serial}; +} + sub execute_custom { my ($self, %options) = @_;