When attributes were specified with an incorrect noderange
it was failing to report the noderange error. If that were
specifically addressed, it would then proceed to erroneously
complain about valid attribute names.
Rather than manually curate the VERSION, use git tags
and auto-create intermediate builds with unique identifiers.
Identify both number of commits to indicate order and the git
short rev to see which rev matches.
nodelist command would show 'help' with no arguments, but
natural expectation is to list all nodes. Adjust to match
that expectation. If a noderange was somehow problematic,
the output was not appropriate, this too is addressed.
nodeconsole provides a wrapper for confetty offering logical
tab completion for console specifically as well as help
text to explain critical info about using nodeconsole.
nodelist provides functionality analagous to nodels in
xCAT 2.x codebase
When attribute notification is requested, node deletion was not
sent to the watchers. Address the limitation by notifying on all
attributes for a deleted node.
When a rollover event was detected, the offset
of the rollover event itself was being read
from the rolled file erroneously. Skip to
next loop iteration so that the metadata about
the rollover event is properly ignored in building
the text data buffer.
The log format for other pieces of data is JSON.
Change the rollover event to be consistent. Also
do not record the previous name of the log file,
as that isn't used, and the current filename is
likely to change when it too gets rolled over
so there's no practical use of knowing the
no longer valid name for the transaction.
Under windows, we can't use flock. However we can
get locking using msvcrt using different, but related
semantics. Imitate whole file locking by just locking
first byte. We have to make sure we seek() to the same
place when locking and unlocking, as Windows requires
the offset to be same for both operations.
Add TimedAndSizeRotatingFileHandler which mixes together
the RotatingFileHandler and TimedRotatingFileHandler from
python logging module to process the log data.
Add logrollover event to track the renamed information, so
that console session can read the log data from current log
file and last renamed file.
Global configuration is used by the log handler. The format
of the log section in '/etc/confluent/service.cfg' is like:
[log]
when = m
backup_count = 3
max_bytes = 8192
utc = False
The two files should be identical. confluentsrv.py exists
only because PyInstaller struggles unless the target is a
'py' file and does not have some namespace conflict with a
module.