forked from pool/s390-tools
d3b5067da2
- Added the following patches (bsc#1070836): s390-tools-sles15-cpuplugd-Improve-systemctl-start-error-handling.patch s390-tools-sles15-mon_tools-Improve-systemctl-start-error-handling.patch s390-tools-sles15-lsluns-do-not-scan-all-if-filters-match-nothing.patch s390-tools-sles15-lsluns-do-not-print-confusing-messages-when-a-filter.patch s390-tools-sles15-lsluns-fix-flawed-formatting-of-man-page.patch s390-tools-sles15-lsluns-enhance-usage-statement-and-man-page.patch s390-tools-sles15-lsluns-clarify-discovery-use-case-relation-to-NPIV-a.patch s390-tools-sles15-lsluns-point-out-IBM-Storwize-configuration-requirem.patch s390-tools-sles15-lsluns-document-restriction-to-zfcp-only-systems.patch s390-tools-sles15-lsluns-complement-alternative-tools-with-lszdev.patch OBS-URL: https://build.opensuse.org/request/show/554611 OBS-URL: https://build.opensuse.org/package/show/Base:System/s390-tools?expand=0&rev=40
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";
|