Repository navigation
Cover tape-NAS data-plane hydration scenarios (Phase 6, review #9) - #36
Merged
Merged
Conversation
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
There was a problem hiding this comment.
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
Scope assessment (the recurring pattern):
NasFileState/VirtualFileStatusalready 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