Config options refactor
What does this MR do?
- Makes
SystemIDa simple string type incommon.Config, rather than leaking a complex type to multiple packages. - Moves "configfile" logic to a new package:
- Validation, system ID logic, config loading metrics are now all encapsulated in a single internal package.
- Mutations of the config now have a clearer path: You can only load and apply mutations at the same time.
This doesn't resolve all problems at once, but encapsulation goes a long way towards simplifying the problem.
What's the best way to test this MR?
Test list, run, register, reset-token, run-single, unregister, verify commands to ensure that they work the same.
A basic test should be enough, as not much has changed here, mostly just moving stuff around.
What are the relevant issue numbers?
Closes #38831 (closed)
Edited by Arran Walker