Wait for a task with a certain name to be in a given state.
(master, name, state, delay=1)
| 505 | |
| 506 | |
| 507 | def wait_for_task(master, name, state, delay=1): |
| 508 | """ |
| 509 | Wait for a task with a certain name to be in a given state. |
| 510 | """ |
| 511 | @retry(wait=wait_fixed(0.2), stop=stop_after_delay(delay)) |
| 512 | def _wait_for_task(): |
| 513 | tasks = http.get_json(master.addr, "tasks")["tasks"] |
| 514 | for task in tasks: |
| 515 | if task["name"] == name and task["state"] == state: |
| 516 | return task |
| 517 | raise Exception() |
| 518 | |
| 519 | try: |
| 520 | return _wait_for_task() |
| 521 | except Exception: |
| 522 | raise CLIException("Timeout waiting for task expired") |