First, globbing can only be the cause of a mess up if the given
noderange is a file that matches.
With this we still have:
for node in $(nodelist compute); do nodepower $node; done
As a potential false positive if any node is a range.
For this, offer suggestion of changing directories.
Also, if it had been:
for NODE in $(nodelist compute); do export NODE; nodepower $NODE; done
Another clause can detect that, which has been added.
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.
If output comes close enough together, make some effort to group it
so that it will have a higher tendency of looking orderly. This of
course only does so when it does not interfere with quickly presenting
the data.
Some processes (e.g. nodefirmware update) warrant a different sort of
strategy to try to abbreviate, where collation falls short. For this,
provide a columnar output that changes to line by line if stdout is not
a terminal.
If even one of a noderange failed to complete the
set boot device step, none would progress. Change
the behavior so that exit code still happens and
processing does stop on timed out nodes, but go
ahead and reboot those that were fine.
If a caller (reasonably) broke out of a loop, a subsequent call would get old data.
Protect against this by discarding data not consumed if previously called.
If a plugin iterates a datetime object, decode to ISO-8601 string
on the way out. This allows plugins to work directly with datetime
objects and allow the messaging layer to normalize it to ISO-8601
While the client can handle it now, have the server
avoid needless processing of '' data from a console
provider. Address it at the deepest level (the
tlvdata implementation) and a place higher up the stack
to avoid hits to log and such.
There was a 5 second timeout to establish basic connectivity, but
was mistakenly extended beyond that. Re-establish default timeout
behavior after connectivity established.
Before there was some awkward ambiguity between top level
key names and node names. For example a node named 'error'
would be tricky. Address that by allocating a 'databynode'
top level container to clarify the namespace of keys is
nodenames specifically. Use this to simplify code that
tried to workaround the ambiguity.
For certain scenarios (e.g. wcons), having a path to get in and communicate data from the outside.
For starters, have a 'GETWINID' directive for wcons to use to fetch the unambiguous window id
to use for xwininfo tricks. TODO includes concepts from xtcd.pl that enabled things like warr