test(provisioner): assert VolumeRemove NOT called on failed copy (data-loss guard #2490) #2558

Closed
agent-dev-a wants to merge 1 commits from fix/2490-add-volumeRemove-assertion into main
Member

Adds the explicit VolumeRemove(legacyName) not-called assertion to TestMigrateVolumeIfNeeded_CopyFails_PreservesLegacy. The existing test checked the volume survived via the fake client map, but did not verify the removal API was never invoked. This pins the data-loss guard against regression.

Refs #2490

Full module gate (all clean):

  • go build ./...
  • go vet ./...
  • go test ./...
  • golangci-lint run ./... → 0 issues
Adds the explicit VolumeRemove(legacyName) not-called assertion to TestMigrateVolumeIfNeeded_CopyFails_PreservesLegacy. The existing test checked the volume survived via the fake client map, but did not verify the removal API was never invoked. This pins the data-loss guard against regression. Refs #2490 **Full module gate (all clean):** - `go build ./...` ✅ - `go vet ./...` ✅ - `go test ./...` ✅ - `golangci-lint run ./...` → 0 issues ✅
agent-dev-a added 1 commit 2026-06-10 23:01:54 +00:00
test(provisioner): assert VolumeRemove NOT called on failed copy (data-loss guard #2490)
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 11s
CI / Python Lint & Test (pull_request) Successful in 9s
CI / Detect changes (pull_request) Successful in 11s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 2s
CI / Canvas (Next.js) (pull_request) Successful in 3s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 10s
CI / Canvas Deploy Status (pull_request) Successful in 2s
E2E API Smoke Test / detect-changes (pull_request) Successful in 19s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 5s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 4s
Harness Replays / detect-changes (pull_request) Successful in 9s
E2E Chat / detect-changes (pull_request) Successful in 20s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 11s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 8s
E2E Chat / E2E Chat (pull_request) Successful in 5s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 3s
Harness Replays / Harness Replays (pull_request) Successful in 2s
sop-checklist / review-refire (pull_request_target) Has been skipped
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 15s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 15s
qa-review / approved (pull_request_target) Failing after 12s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, local-postgres-e2
gate-check-v3 / gate-check (pull_request_target) Successful in 15s
security-review / approved (pull_request_target) Failing after 11s
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 11s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m4s
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge user_tasks (pull_request) Has been skipped
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Creates Workspace (pull_request) Has been skipped
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Platform Agent (pull_request) Has been skipped
E2E Staging SaaS (full lifecycle) / pr-validate (pull_request) Successful in 28s
CI / Platform (Go) (pull_request) Successful in 2m16s
CI / all-required (pull_request) Successful in 2s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (stub) (pull_request) Successful in 2m28s
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge (compile+skip) (pull_request) Successful in 2m24s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 5m25s
E2E Staging SaaS (full lifecycle) / E2E Staging Platform Boot (pull_request) Failing after 5m21s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Failing after 7m42s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory) (pull_request) Failing after 8m15s
audit-force-merge / audit (pull_request_target) Has been skipped
df53131871
The existing TestMigrateVolumeIfNeeded_CopyFails_PreservesLegacy checked
that the legacy volume still exists in the fake client's map, but did not
explicitly verify that VolumeRemove(legacyName) was never invoked. Add
that assertion to pin the guard against regression: a non-zero copy exit
must leave the legacy volume intact for retry.

Refs #2490
agent-dev-a closed this pull request 2026-06-10 23:14:49 +00:00
Some checks are pending
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 11s
CI / Python Lint & Test (pull_request) Successful in 9s
CI / Detect changes (pull_request) Successful in 11s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 2s
CI / Canvas (Next.js) (pull_request) Successful in 3s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 10s
CI / Canvas Deploy Status (pull_request) Successful in 2s
E2E API Smoke Test / detect-changes (pull_request) Successful in 19s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 5s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 4s
Harness Replays / detect-changes (pull_request) Successful in 9s
E2E Chat / detect-changes (pull_request) Successful in 20s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 11s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 8s
E2E Chat / E2E Chat (pull_request) Successful in 5s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 3s
Required
Details
Harness Replays / Harness Replays (pull_request) Successful in 2s
sop-checklist / review-refire (pull_request_target) Has been skipped
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 15s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 15s
qa-review / approved (pull_request_target) Failing after 12s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, local-postgres-e2
gate-check-v3 / gate-check (pull_request_target) Successful in 15s
security-review / approved (pull_request_target) Failing after 11s
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 11s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m4s
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge user_tasks (pull_request) Has been skipped
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Creates Workspace (pull_request) Has been skipped
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Platform Agent (pull_request) Has been skipped
E2E Staging SaaS (full lifecycle) / pr-validate (pull_request) Successful in 28s
CI / Platform (Go) (pull_request) Successful in 2m16s
CI / all-required (pull_request) Successful in 2s
Required
Details
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (stub) (pull_request) Successful in 2m28s
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge (compile+skip) (pull_request) Successful in 2m24s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 5m25s
Required
Details
E2E Staging SaaS (full lifecycle) / E2E Staging Platform Boot (pull_request) Failing after 5m21s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Failing after 7m42s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory) (pull_request) Failing after 8m15s
audit-force-merge / audit (pull_request_target) Has been skipped
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (pull_request)
Required

Pull request closed

Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#2558