restart.py 834 B

12345678910111213141516171819202122232425
  1. from typing import TYPE_CHECKING
  2. if TYPE_CHECKING:
  3. from render import Render
  4. try:
  5. from .validations import valid_restart_policy_or_raise
  6. except ImportError:
  7. from validations import valid_restart_policy_or_raise
  8. class RestartPolicy:
  9. def __init__(self, render_instance: "Render"):
  10. self._render_instance = render_instance
  11. self._policy: str = "unless-stopped"
  12. self._maximum_retry_count: int = 0
  13. def set_policy(self, policy: str, maximum_retry_count: int = 0):
  14. self._policy = valid_restart_policy_or_raise(policy, maximum_retry_count)
  15. self._maximum_retry_count = maximum_retry_count
  16. def render(self):
  17. if self._policy == "on-failure" and self._maximum_retry_count > 0:
  18. return f"{self._policy}:{self._maximum_retry_count}"
  19. return self._policy