fix(host,deployment-manager,communication): repair cross-module DI regressions from batch 1-2
- DeploymentManager-008: revert IConfiguration overload (violated OptionsTests component-convention); Host now binds the ScadaLink:DeploymentManager section - SiteStreamGrpcServer: make test-only int ctor internal so DI sees one public ctor (resolves ambiguous-constructor failure in SiteCompositionRootTests) - Host site composition-root test config: supply Cluster:SeedNodes for the new ClusterOptionsValidator
This commit is contained in:
@@ -402,18 +402,20 @@ Add an `IConfiguration` parameter (or a configure callback) to
|
||||
|
||||
**Resolution**
|
||||
|
||||
Resolved 2026-05-16 (commit pending): added an
|
||||
`AddDeploymentManager(IServiceCollection, IConfiguration)` overload that binds
|
||||
`DeploymentManagerOptions` to the `ScadaLink:DeploymentManager` configuration
|
||||
section (exposed as `ServiceCollectionExtensions.OptionsSection`). The
|
||||
`Microsoft.Extensions.Options.ConfigurationExtensions` package was added to the
|
||||
project. The original parameterless overload is retained for callers/tests that
|
||||
do not bind configuration. Regression tests:
|
||||
`AddDeploymentManager_WithConfiguration_BindsDeploymentManagerOptions`,
|
||||
`AddDeploymentManager_WithConfiguration_MissingSection_UsesDefaults`. Note: a
|
||||
one-line follow-up in `Host/Program.cs` (call the new overload with
|
||||
`builder.Configuration`) is required to take effect at runtime — that file is
|
||||
outside this module's edit scope and is surfaced for the Host owner.
|
||||
Resolved 2026-05-16 (commit pending): `AddDeploymentManager()` now calls
|
||||
`services.AddOptions<DeploymentManagerOptions>()` so `IOptions<DeploymentManagerOptions>`
|
||||
is always resolvable, and `Host/Program.cs` binds the
|
||||
`ScadaLink:DeploymentManager` section (exposed as
|
||||
`ServiceCollectionExtensions.OptionsSection`) via
|
||||
`services.Configure<DeploymentManagerOptions>(...)` — the same pattern the Host
|
||||
uses for `SecurityOptions`/`InboundApiOptions`. An earlier attempt added an
|
||||
`AddDeploymentManager(IConfiguration)` overload; that was reverted because the
|
||||
project convention (enforced by `Host.Tests.OptionsTests`) forbids component
|
||||
`Add*` methods from depending on `IConfiguration` — the Host owns
|
||||
configuration binding. Regression tests:
|
||||
`AddDeploymentManager_RegistersResolvableOptions_WithDefaults`,
|
||||
`AddDeploymentManager_OptionsBindToConfigurationSection_AsTheHostWires`,
|
||||
`OptionsSection_MatchesTheConventionalComponentSectionPath`.
|
||||
|
||||
### DeploymentManager-009 — Misleading timeout comment on `DeleteInstanceAsync`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user