Asking for the mac addresses of a node whose inventory does not describe any,
which is every node reached over ipmi, printed absolutely nothing and exited
successfully, leaving no way to tell an empty answer from a broken command. Name
what was asked for instead. The exit code stays successful, since an inventory
that does not mention something is a valid answer rather than a failure.
Each of these loops rebinds the name that holds the iterable. They work
today because the iterable is evaluated once before the loop starts, but
the name is then gone, so any later use reads a loop item instead of the
collection.
- nodeinventory: `for arg in args` / `for arg in arg.split(',')`.
- confignet (common and debian copies): iname holds the comma separated
interface list and is then reused for each interface in it.
- xcc _get_agentless_firmware: adata holds the adapter query response and
is then reused for each adapter.
No behaviour change, just distinct names for distinct things.
RHEL8 will no longer tolerate implicit use of python.
For now relent to being python2, though ideally one day
it could be either.
Unfortunately, this means once code is ready for python3, we have to
probably implement build time changes for python3 enabled distros
to have different shebangs than python2 distros.
The suppression was unable to be accomplished for bash without
somehow otherwise breaking the shell. zsh and csh could be better at
one-off glob disabling though.
Various commands may (accidentally or intentionally) encounter
non-ascii data. While python stdout without pipe is fine, when piping
it assumes ascii. Fix this to always assume utf-8 explicitly.