mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-09 06:22:57 +00:00
Improves `wait_until` by: * Use `timeout` instead of `iterations`. This allows changing the timeout/interval parameters independently. * Make `timeout` and `interval` optional (default 20s and 0.5s). Most callers don't care. * Only output status every 1s by default, and add optional `status_interval` parameter. * Remove `show_intermediate_error`, this was always emitted anyway. Most callers have been updated to use the defaults, except where they had good reason otherwise.
23 lines
725 B
Python
23 lines
725 B
Python
from __future__ import annotations
|
|
|
|
from fixtures.common_types import TenantId, TimelineId
|
|
from fixtures.log_helper import log
|
|
from fixtures.safekeeper.http import SafekeeperHttpClient
|
|
from fixtures.utils import wait_until
|
|
|
|
|
|
def wait_walreceivers_absent(
|
|
sk_http_cli: SafekeeperHttpClient, tenant_id: TenantId, timeline_id: TimelineId
|
|
):
|
|
"""
|
|
Wait until there is no walreceiver connections from the compute(s) on the
|
|
safekeeper.
|
|
"""
|
|
|
|
def walreceivers_absent():
|
|
status = sk_http_cli.timeline_status(tenant_id, timeline_id)
|
|
log.info(f"waiting for walreceivers to be gone, currently {status.walreceivers}")
|
|
assert len(status.walreceivers) == 0
|
|
|
|
wait_until(walreceivers_absent)
|