Skip to content

Add R hotkey to recall migrated data sets with live indicator#32

Merged
Tannex merged 3 commits into
mainfrom
migrated-dataset-recall
Jul 19, 2026
Merged

Add R hotkey to recall migrated data sets with live indicator#32
Tannex merged 3 commits into
mainfrom
migrated-dataset-recall

Conversation

@Tannex

@Tannex Tannex commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • Press R on the data-set list to submit an HRECALL for a migrated data set (new zosmf.Recaller capability, PUT …/restfiles/ds/<dsn> with {"request":"hrecall","wait":false}).
  • While the recall runs, the row's VOLUME cell shows an animated ⠋ RECALL indicator. z/OSMF exposes no recall-progress API, so completion is observed by re-listing the data set every 3 s until it leaves migration storage (capped at ~5 min, then a WARN status).
  • On completion the cached row is refreshed in place with the new volume and a READY status reports recalled DSN to VOL001.
  • Opening a migrated data set no longer runs into an opaque read error; it now warns … is migrated; press R to recall it.
  • Recaller is a separate optional interface so the read-only Browser surface (and its fakes/demo) stay untouched; sessions that can't recall get a WARN.

Testing

  • go build ./... && go vet ./... && go test ./... all green; gofmt -l clean.
  • New tests cover the transport (request shape, HTTP error, name validation), IsMigrated, and the full TUI flow: start → poll while migrated → complete and refresh row, plus failure, unsupported-session, not-migrated, attempt-cap, and open-hint paths.

🤖 Generated with Claude Code

Pressing R on a migrated data set submits an HRECALL through z/OSMF and
marks the row with an animated RECALL indicator. Since z/OSMF reports no
recall progress, the catalog is polled every few seconds until the data
set leaves migration storage, then the row refreshes in place with its
new volume. Opening a migrated data set now hints at the hotkey instead
of failing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Tannex
Tannex force-pushed the migrated-dataset-recall branch from 644c7b8 to 3fdf3af Compare July 19, 2026 14:29
Tannex and others added 2 commits July 19, 2026 16:42
The watcher listed the catalog with the exact DSN as a prefix, and the
client force-appends a wildcard to wildcard-free prefixes. For names
with an eight-character last qualifier (or 44 characters total) that
produced an invalid dslevel, so every check failed silently and the
watch warned after the cap even though the recall had completed - while
a manual refresh showed it immediately.

Catalog checks now use an exact-name dslevel lookup, poll errors are
remembered and surfaced in the give-up warning, the watch backs off in
stages (3s/10s/30s) to cover roughly half an hour for tape recalls, and
any data set browse result resolves pending recall indicators so a
manual refresh finishes the watch on the spot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A wildcard-free prefix is now an exact catalog lookup, which is what the
recall watcher needs, and prefix searches require the user to spell out
* or % themselves. This removes the ExactName request flag added for the
watcher and the append special case.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Tannex
Tannex merged commit b517bf3 into main Jul 19, 2026
4 checks passed
@Tannex
Tannex deleted the migrated-dataset-recall branch July 19, 2026 15:13
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.

1 participant