Unify the Cloud service poll loops (delete --force and udf attach --wake)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 42/100
Direzione di ricerca
Start in cloud/services.rs with classify_stop_poll_state and the hand-rolled stop loop, then compare with wait_for and Outcome in cloud/udfs.rs. The shared loop and PollProgress will live in cloud/shared.rs. The issue depends on #1033, which is not merged yet, so confirm that first. Done means delete --force uses the shared loop with unchanged output and exit codes, its existing tests pass unmodified, and new unit tests cover the shared loop and every ServiceState variant.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
Once #1033 lands, the CLI has two loops that poll a Cloud service's state:
| Where | Waits for | Loop | State check | Timeout |
|---|---|---|---|---|
cloud service delete --force (cloud/services.rs) |
stopped (or idle) |
hand-rolled loop + STOP_POLL_INTERVAL (5 s) |
classify_stop_poll_state: matches ServiceState::to_string() against string literals |
none |
cloud udf attach --wake (cloud/udfs.rs, #1033) |
running |
generic wait_for + Outcome + UDF_POLL_INTERVAL (5 s) |
classify_wake_state: matches typed ServiceState variants |
SERVICE_WAKE_TIMEOUT (600 s) |
They share only the progress renderer (PollProgress in cloud/shared.rs, moved there by #1033). cloud udf deploy (#1034) adds build and attachment waits on the UDF loop.
Proposal
- Move
wait_forandOutcometocloud/shared.rs, next toPollProgress, with an optional timeout and a caller-supplied hint for the timeout message. - Put
wait_for_service_runningandclassify_wake_stateincloud/services.rs, next to the stop poll. - Move
service delete --forceonto the shared loop with no timeout.classify_stop_poll_statereturnsOutcomeand matches typedServiceStatevariants instead of strings. - Use one interval constant.
delete --forcekeeps its output and exit codes; its existing tests pass unmodified.
Tests
- Unit-test the shared loop: done, failed, timeout (with the caller's hint), no timeout.
classify_stop_poll_statecovers everyServiceStatevariant, includingUnknown.
Follows #1033.
- Lingua principale
- Rust
- Stelle
- 80
- Fork
- 9
- Merge medio
- 3g 20h
- PR unite (30g)
- 57
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ClickHouse/clickhousectl
-
rust test-coverage
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
ClickHouse/clickhousectl#1175 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
rust test-coverage
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
ClickHouse/clickhousectl#1174 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
client enhancement rust
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
ClickHouse/clickhousectl#1173 ·
I maintainer di solito rispondono entro 1 giorno
-
Write Cloud service connection settings to .envForse già presa @sdairs l’ha presa 1 giorno fa. Apertacloud enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
ClickHouse/clickhousectl#1164 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
ClickHouse/clickhousectl#1163 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di ClickHouse/clickhousectl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 92/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
yunfie-twitter/Palleria#474 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
servo/rust-smallvec#827 ·
I maintainer di solito rispondono entro 1 giorno