mengw15 opened a new pull request, #7820:
URL: https://github.com/apache/texera/pull/7820
### What changes were proposed in this PR?
The client half of the warehouse dashboard tab: the HTTP client for the
warehouse endpoints and the actions service that owns create and delete on top
of it. No UI renders any of this yet — it is the first of three parts of #6933,
split so each lands as one reviewable change.
- **`DashboardWarehouse` / `WarehouseStatus`** — the wire types, mirroring
what `WarehouseResource` returns: the display name, the id-derived Lakekeeper
catalog name (#7753), flavor, creation time, and the owner fields (#7743),
which are nullable because a user need not have set a name or an avatar.
- **`WarehouseService`** — `GET /warehouse/status`, `POST /warehouse`,
`DELETE /warehouse/{whid}`. The status call answers both questions the UI has
in one round trip: whether the deployment enables the feature, and which
warehouses the caller owns.
- **`WarehouseActionsService`** — mirrors `ComputingUnitActionsService`:
create and delete sit behind one service so the confirm dialog and its wording
live in one place, shared by the dashboard tab and, later, the workspace picker
(#7817). Its delete keeps the dialog busy until the request settles, because
deleting a warehouse that holds data waits out Lakekeeper's asynchronous purge
(#7742) — seconds, not milliseconds — and closing the dialog eagerly would read
as a frozen row.
With the per-user warehouse flag off, which is every deployment today,
nothing calls any of this.
### Any related issues, documentation, discussions?
Part of #6933 (first of three: API client, then the dialogs and row card,
then the page that assembles them). Part of #6870, and consumes the merged
backend: the endpoints (#6932), the owner fields (#7743), the id-derived
catalog name (#7753) and the purge-aware delete (#7742).
### How was this PR tested?
- Vitest specs for both services: the three endpoints and their URLs, the
confirm dialog's shape, that nothing is deleted before confirmation, that the
dialog stays busy until the request settles, and that a failure is reported
without running the caller's refresh callback. 7 tests across 2 files.
- Whole suite as CI runs it: `yarn test:ci`
- Just this change: `ng test --watch=false --include
"src/app/common/service/warehouse/*.spec.ts"`
- Failure paths verified rather than assumed: each behaviour was broken on
purpose and the suite confirmed to fail for the expected reason before being
restored.
- Exercised end to end against a local deployment with the flag on, backed
by live Lakekeeper and MinIO: create, list, and delete, including a warehouse
holding execution data.
### Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (claude-opus-5, claude-fable-5)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]