mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-31 07:44:57 +08:00
* feat(api): return typed deletion outcomes with explicit missing-target semantics Implement phase 2 of #3051 across the public gateway API and first-party SDKs. Preserve asynchronous sandbox deletion and observed resource identities, reserve legacy wire fields, and document the coordinated migration. Signed-off-by: Mrunal Patel <mrunalp@gmail.com> * fix(sdk): bind deletion waits to sandbox identity Track accepted deletions by original sandbox identity in Rust and TypeScript. Preserve name-only waits and cover replacement races and lookup failures. Merge the phase-one cleanup fix and adapt its interceptor regressions to typed deletion outcomes. Refs #3051. Signed-off-by: Mrunal Patel <mrunalp@gmail.com> * test(e2e): accept asynchronous stopped sandbox deletion Allow either completed or accepted deletion output, then continue polling for actual sandbox absence. This preserves the lifecycle assertion under the phase-two deletion contract. Refs #3051. Signed-off-by: Mrunal Patel <mrunalp@gmail.com> --------- Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
28 lines
941 B
Go
28 lines
941 B
Go
// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package v1
|
|
|
|
import "github.com/NVIDIA/OpenShell/sdk/go/openshell/v1/types"
|
|
|
|
// DeletionOutcome distinguishes completion from asynchronous acceptance.
|
|
type DeletionOutcome = types.DeletionOutcome
|
|
|
|
// Known deletion outcomes. Unrecognized values do not establish completion.
|
|
const (
|
|
DeletionUnspecified = types.DeletionUnspecified
|
|
DeletionCompleted = types.DeletionCompleted
|
|
DeletionAccepted = types.DeletionAccepted
|
|
DeletionAlreadyAbsent = types.DeletionAlreadyAbsent
|
|
)
|
|
|
|
// DeletionResult describes the original target, not a same-name replacement.
|
|
type DeletionResult = types.DeletionResult
|
|
|
|
// DeleteOptions configures the missing-target contract.
|
|
type DeleteOptions = types.DeleteOptions
|
|
|
|
func allowMissing(opts []DeleteOptions) bool {
|
|
return len(opts) > 0 && opts[0].AllowMissing
|
|
}
|