topic/jazoff/broctld

Description

Branch topic/jazoff/broctld in the broctl repo contains significant code reorganization
for the upcoming broctld. Here is a high-level list of changes:
1) Refactor broctl to make it usable as a library (reduce global state, module-level setup code, and functions return results instead of printing),
2) Integrate ssh_runner code into broctl to fix current problems (use only one connection per host instead of one per Bro node, broctl shouldn't hang when a host goes down or if we forgot to run "broctl install"),
3) Write state info using SQLite state storage instead of writing to a plain text file (broctl.dat),
4) When the node config changes, we now do additional checks if there are any Bro nodes running that are no longer in our node config and warn user if any are detected,
5) Keep track of the expected state (running or stopped) of each Bro node, and have broctl cron start or stop nodes as needed,
6) Improved broctl cron by adding two new options (MailHostUpDown and StatsLogEnable) to enable users the option to turn off unwanted functionality to speed up broctl cron and reduce the chance of errors,
7) When broctl cron tries to send email but fails, now it will output a message that includes the text it was trying to mail,
8) Silence warning messages (that are intended for interactive use of broctl) when broctl cron runs to reduce unwanted emails from cron,
9) Added new broctl option StatusCmdShowAll to enable users to speed up "broctl status" significantly,
10) Fixed the stats-to-csv script to not create files that can never include any data,
11) Fixed archive-log script to detect exit status of gzip or cp command, so that we don't delete log file when the archival fails,
12) Improved post-terminate script to process log files more consistently,
13) Made all broctl command output go to stdout (previously, some output would go to stderr, which made grepping or redirecting the output more difficult),
14) Improved the default broctl.cfg file to show more of the useful options,
15) Added more error checks to help catch errors earlier,
16) Some error message output is more specific and helpful now

Environment

None

Assignee

Robin Sommer

Reporter

Daniel Thayer

Labels

None

External issue ID

None

Components

Fix versions

Priority

Normal
Configure