Refactor data node startup, add startup mechanism for new node types
Description
Modifies the CmdLineTool to allow configurable startup of new node types.
A GraylogNodeConfiguration interface configures certain whether certain common startup features should be run.
For a node incorporating the features we deem as common, a CommonNodeConfiguration is provided which sets these flags as default.
Data node startup has been changed to use the refactored CmdLineTool directly, setting the necessary features as required by the data node. Additionally, bootstrapping of the data node has been revamped. This does not completely decouple the startup logic from Graylog startup, but uses a common codebase instead of the previously duplicated code.
An example node is currently included in the PR to showcase how new node types can be created (ExampleCommand). This should be removed before merging.
/nocl
Motivation and Context
solves #18908
solves #18011
How Has This Been Tested?
run data node, Graylog, certutil, journal commands manually
Screenshots (if appropriate):
Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [x] Refactoring (non-breaking change)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
Checklist:
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [x] I have read the CONTRIBUTING document.
- [ ] I have added tests to cover my changes.