Skip to content

feat(process-storms): fail-fast AORC pre-flight before the scan#15

Merged
HenryGeorgist merged 1 commit into
USACE-Cloud-Compute:mainfrom
nghiemv:feat/aorc-preflight
Jul 15, 2026
Merged

feat(process-storms): fail-fast AORC pre-flight before the scan#15
HenryGeorgist merged 1 commit into
USACE-Cloud-Compute:mainfrom
nghiemv:feat/aorc-preflight

Conversation

@nghiemv

@nghiemv nghiemv commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

process-storms could run 10+ minutes (or hours) before dying with a cryptic
zarr KeyError: '.zmetadata' when a required AORC year was never mirrored (the
2026-05-27 2025.zarr incident). This HEADs each required year's .zmetadata
up front and raises in seconds with a copy-pasteable ./run.py mirror command.

  • Ported from the fork's plugin/actions/aorc_preflight.py (stdlib + boto3).
  • Runs only on the scan path (not on a catalog reload).
  • No-op when AORC_S3_BASE_URL is unset (local dev); warns but doesn't raise
    when creds are absent (can't probe a private bucket).
  • required_years tacks on the next year when a late-year storm window crosses
    the boundary.

Tests: test/test_aorc_preflight.py (required-years incl. boundary crossing;
skip-when-no-base-url; raise-on-missing-year). 5 pass.

process-storms could run 10+ minutes (or hours) before dying with a cryptic
zarr KeyError: '.zmetadata' when a required AORC year was never mirrored (the
2026-05-27 2025.zarr incident). HEAD each year's .zmetadata up front and raise
in seconds with a copy-pasteable './run.py mirror' command instead.

Ported from the fork's plugin/actions/aorc_preflight.py (stdlib + boto3).
No-op when AORC_S3_BASE_URL is unset (local dev); only runs on the scan path,
not on a catalog reload.
@HenryGeorgist
HenryGeorgist merged commit 41f8658 into USACE-Cloud-Compute:main Jul 15, 2026
2 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