Config options refactor

What does this MR do?

  • Makes SystemID a simple string type in common.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?

#38630

Closes #38831 (closed)

Edited by Arran Walker

Merge request reports

Loading