Skip to content

Cover tape-NAS data-plane hydration scenarios (Phase 6, review #9) - #36

Merged
github-actions[bot] merged 1 commit into
masterfrom
feat/tape-native-nas-models
Jul 20, 2026
Merged

github-actions[bot] merged 1 commit into
masterfrom
feat/tape-native-nas-models

Conversation

@Amantux

@Amantux Amantux commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Phase 6 first increment. The review asked to test real data-plane behaviors, not only REST. The data plane is an in-process virtual FS + hydration cache (no libfuse mount yet), so the meaningful behaviors are tested at that level:

  • offline read errors clearly until hydrated, then serves real bytes to dest
  • eviction forces re-hydration (no stale serve)
  • concurrent opens of an offline file all fail cleanly (no race/crash)
  • missing file → FileNotFoundError; write/delete → PermissionError (read-only)

Scope assessment (the recurring pattern): NasFileState/VirtualFileStatus already model online/offline/hydrating/exporting/missing/corrupt — the review overstated this gap too. The genuinely-missing bits (foreign media, vault, fragmentation, small-file aggregation, sequestered) are deferred rather than added as unused enum values (no third usage yet). A containerized SMB/NFS client harness is a follow-up once the FS is wired to libfuse — there's no real mount to serve yet.

12 fuse tests green (5 new + 7 existing).

https://claude.ai/code/session_012K5Zjc2bggcyJtFbz2D4Pw

The review asked to test real data-plane behaviors, not only REST. The data
plane is an in-process virtual FS + hydration cache (no libfuse mount yet), so
the meaningful behaviors are tested at that level:

- offline read errors clearly until hydrated, then serves real bytes to dest
- eviction forces re-hydration (no stale serve)
- concurrent opens of an offline file all fail cleanly (no race/crash)
- missing file -> FileNotFoundError; write/delete -> PermissionError (read-only)

Assessed Phase 6 scope: NasFileState/VirtualFileStatus already model
online/offline/hydrating/exporting/missing/corrupt (review overstated this gap
too); the genuinely-missing bits (foreign media, vault, fragmentation, small-file
aggregation, sequestered) are deferred rather than added as unused enum values.
A containerized SMB/NFS client harness is a follow-up once the FS is wired to
libfuse — there is no real mount to serve yet.

12 fuse tests green (5 new + 7 existing).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012K5Zjc2bggcyJtFbz2D4Pw
Copilot AI review requested due to automatic review settings July 20, 2026 17:36

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds scenario-focused unit tests for the Tape-NAS “data plane” (the in-process virtual filesystem + hydration cache) to validate hydration/offline behavior beyond REST-level checks.

Changes:

  • Add unit tests that verify offline reads fail until hydrated, then succeed with correct bytes written to a destination file.
  • Add tests ensuring cache eviction forces re-hydration (no reads from an evicted cache entry).
  • Add concurrency/read-only/missing-file scenarios to ensure consistent errors and read-only enforcement.

@github-actions
github-actions Bot merged commit 9b5eed0 into master Jul 20, 2026
10 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants