forked from pool/s390-tools
126 lines
5.4 KiB
Diff
126 lines
5.4 KiB
Diff
|
Subject: [PATCH] [BZ 161888] lsluns: do not print confusing messages when a filter matches nothing
|
||
|
From: Jens Remus <jremus@linux.vnet.ibm.com>
|
||
|
|
||
|
Description: lsluns: Fix filter handling and documentation enhancements.
|
||
|
Symptom: lsluns lists all LUNs discovered in the FC SAN despite user
|
||
|
given filter(s) that do not match anything:
|
||
|
# lsluns -c 0.0.5080
|
||
|
No valid combination found for adapter '0.0.5080'. Removing
|
||
|
from resource list.
|
||
|
No valid parameters left, using all available resources in
|
||
|
system.
|
||
|
Scanning for LUNs on adapter 0.0.5090
|
||
|
...
|
||
|
|
||
|
lsluns prints the message "No valid combination found for
|
||
|
{adapter|port} '...'. Removing from resource list." for every
|
||
|
adapter and port filter that does not contribute to the final
|
||
|
filtered results.
|
||
|
|
||
|
The formatting of the lsluns (8) man page is flawed.
|
||
|
|
||
|
lsluns is used in unexpected or even unsupported ways.
|
||
|
Problem: Scanning can be resource consumptive. So if a user already wants
|
||
|
to filter, possibly to reduce resource consumption, he does not
|
||
|
want to happen to scan everything and thus consume the worst case
|
||
|
of resources.
|
||
|
|
||
|
The message "No valid combination found for {adapter|port} '...'.
|
||
|
Removing from resource list." is potentially confusing. It is
|
||
|
unclear which combination is being referred to, especially if
|
||
|
only one single adapter or port filter was specified. There is
|
||
|
also no differentiation whether the denoted adapter or port
|
||
|
exists for its own or not. It just does not exist in the final
|
||
|
filtered results.
|
||
|
|
||
|
The formatting of the lsluns (8) man page is flawed.
|
||
|
|
||
|
The lsluns usage text and lsluns (8) man page lack the
|
||
|
information on the intended use cases, requirements, and
|
||
|
restrictions.
|
||
|
Solution: Print a message and exit when all filters match nothing.
|
||
|
|
||
|
Do not print confusing messages when a filter matches nothing.
|
||
|
|
||
|
Fix man page formatting.
|
||
|
|
||
|
Enhance usage text and man page. Clarify discovery use case,
|
||
|
relation to NPIV and to zfcp auto LUN scan. Point out
|
||
|
IBM Storwize configuration requirements. Document restriction to
|
||
|
zfcp-only systems.
|
||
|
Reproduction: Use lsluns and specify adapter bus-ID and/or target port WWPN
|
||
|
filter(s) that do not match anything. Either specify inexistent
|
||
|
bus-IDs and/or WWPNs or invalid filter arguments.
|
||
|
Upstream-ID: c993ad89c544dd162005a9a1e582b51667c46b66
|
||
|
Problem-ID: 161888
|
||
|
|
||
|
Upstream-Description:
|
||
|
|
||
|
lsluns: do not print confusing messages when a filter matches nothing
|
||
|
|
||
|
lsluns printed potentially confusing messages when a filter or combination
|
||
|
of filters matched nothing:
|
||
|
|
||
|
No valid combination found for adapter '0.0.1906'. Removing from
|
||
|
resource list.
|
||
|
No valid combination found for port '0x50050763071845e3'. Removing from
|
||
|
resource list.
|
||
|
...
|
||
|
|
||
|
To the user it is potentially unclear which 'combination' is actually being
|
||
|
referred to, as only one part of the combination is mentioned, and what the
|
||
|
ominous 'resource list' is. The later information is merely useful for a
|
||
|
developer to debug the script.
|
||
|
|
||
|
Such a message was written for every user supplied filter that did not
|
||
|
contribute anything to the resulting subset that is being listed, although
|
||
|
the filter actually might match something when used standalone.
|
||
|
|
||
|
Additionally those messages were printed to stdout instead of stderr. As
|
||
|
there is no debug or verbose switch and the information level of those
|
||
|
messages is low, we may simply discard them.
|
||
|
|
||
|
Reported-by: Steffen Maier <maier@linux.vnet.ibm.com>
|
||
|
Signed-off-by: Jens Remus <jremus@linux.vnet.ibm.com>
|
||
|
Reviewed-by: Steffen Maier <maier@linux.vnet.ibm.com>
|
||
|
Reviewed-by: Benjamin Block <bblock@linux.vnet.ibm.com>
|
||
|
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
|
||
|
|
||
|
|
||
|
Signed-off-by: Jens Remus <jremus@linux.vnet.ibm.com>
|
||
|
---
|
||
|
zconf/lsluns | 15 ---------------
|
||
|
1 file changed, 15 deletions(-)
|
||
|
|
||
|
--- a/zconf/lsluns
|
||
|
+++ b/zconf/lsluns
|
||
|
@@ -215,7 +215,6 @@ sub get_env_list
|
||
|
my $p_ref_list = shift();
|
||
|
my @res ;
|
||
|
my %res_hash;
|
||
|
- my @t_arr;
|
||
|
|
||
|
@res = </sys/bus/ccw/drivers/zfcp/*.*.*/0x*>;
|
||
|
return () if (!@res);
|
||
|
@@ -226,20 +225,6 @@ sub get_env_list
|
||
|
next if (@$p_ref_list && "@$p_ref_list" !~ /$p/);
|
||
|
push @{ $res_hash{$a} }, $p;
|
||
|
}
|
||
|
- foreach my $a (sort @$a_ref_list) {
|
||
|
- if ("@{[keys %res_hash]}" !~ /$a/) {
|
||
|
- print "\tNo valid combination found for adapter '$a'. ",
|
||
|
- "Removing from resource list.\n";
|
||
|
- }
|
||
|
- }
|
||
|
-
|
||
|
- push @t_arr, map { @{$res_hash{$_}} } keys %res_hash;
|
||
|
- foreach my $p (@$p_ref_list) {
|
||
|
- if ("@t_arr" !~ /$p/) {
|
||
|
- print "\tNo valid combination found for port '$p'. ",
|
||
|
- "Removing from resource list.\n";
|
||
|
- }
|
||
|
- }
|
||
|
|
||
|
if (!%res_hash) {
|
||
|
print "$PROGRAM_NAME: Adapter and/or port filter(s) did not match anything\n";
|