Honor cancellation at standard inspection boundaries

This commit is contained in:
2026-10-07 16:47:28 +00:00
parent 12841f15c8
commit 4cb795cc20
7 changed files with 207 additions and 0 deletions

View File

@@ -34,6 +34,9 @@ func newConfigValidateCommand[C any](suite ConfigSuite[C]) (Command, error) {
}
func runConfigValidation[C any](invocation Invocation, suite ConfigSuite[C], input configInput[C]) Outcome {
if err := invocation.Context.Err(); err != nil {
return Failure(err)
}
scopeNames, err := selectConfigScopes(suite, input, ConfigValidate)
if err != nil {
return Failure(err)
@@ -46,12 +49,19 @@ func runConfigValidation[C any](invocation Invocation, suite ConfigSuite[C], inp
if !ok || scope.Acquire == nil {
return validationFailure(fmt.Errorf("configuration scope %q has no acquisition callback", name), diagnostics, writtenRecord)
}
if err := invocation.Context.Err(); err != nil {
return validationFailure(err, diagnostics, writtenRecord)
}
acquired, acquireErr := scope.Acquire(invocation.Context, ConfigRequest{Operation: ConfigValidate, Selection: input.Selection}, contexts[name])
diagnostics = append(diagnostics, acquired.Diagnostics...)
if acquireErr != nil {
return validationFailure(acquireErr, diagnostics, writtenRecord)
}
if err := invocation.Context.Err(); err != nil {
return validationFailure(err, diagnostics, writtenRecord)
}
record, err := validationSuccessRecord(name, input.Format)
if err != nil {
return validationFailure(err, diagnostics, writtenRecord)