Skip to content

Commit 3d8e9fa

Browse files
committed
add wait_for_status instead of wait_for_active
1 parent 404ef3e commit 3d8e9fa

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

juju/model.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import re
99
import stat
1010
import tempfile
11+
import warnings
1112
import weakref
1213
import zipfile
1314
from concurrent.futures import CancelledError
@@ -2227,7 +2228,8 @@ async def _get_source_api(self, url, controller_name=None):
22272228
return controller
22282229

22292230
async def wait_for_idle(self, apps=None, raise_on_error=True, raise_on_blocked=False,
2230-
wait_for_active=False, timeout=10 * 60, idle_period=15, check_freq=0.5):
2231+
wait_for_active=False, timeout=10 * 60, idle_period=15, check_freq=0.5,
2232+
wait_for_status=None):
22312233
"""Wait for applications in the model to settle into an idle state.
22322234
22332235
:param apps (list[str]): Optional list of specific app names to wait on.
@@ -2259,7 +2261,14 @@ async def wait_for_idle(self, apps=None, raise_on_error=True, raise_on_blocked=F
22592261
22602262
:param check_freq (float): How frequently, in seconds, to check the model.
22612263
The default is every half-second.
2264+
2265+
:param wait_for_status (str): The status to wait for. If None, not waiting.
2266+
The default is None (not waiting for any status).
22622267
"""
2268+
if wait_for_active:
2269+
warnings.warn("wait_for_active is deprecated; use wait_for_status", DeprecationWarning)
2270+
wait_for_status = "active"
2271+
22632272
timeout = timedelta(seconds=timeout) if timeout is not None else None
22642273
idle_period = timedelta(seconds=idle_period)
22652274
start_time = datetime.now()
@@ -2311,8 +2320,8 @@ def _raise_for_status(entities, status):
23112320
if raise_on_blocked and unit.workload_status == "blocked":
23122321
blocks.setdefault("Unit", []).append(unit.name)
23132322
continue
2314-
waiting_for_active = wait_for_active and unit.workload_status != "active"
2315-
if not waiting_for_active and unit.agent_status == "idle":
2323+
waiting_for_status = wait_for_status and unit.workload_status != wait_for_status
2324+
if not waiting_for_status and unit.agent_status == "idle":
23162325
now = datetime.now()
23172326
idle_start = idle_times.setdefault(unit.name, now)
23182327
if now - idle_start < idle_period:

0 commit comments

Comments
 (0)