From d82180605c97b0f6cbda76a3ded9abfa99fb6905 Mon Sep 17 00:00:00 2001 From: Elijah DeLee Date: Wed, 8 Jan 2020 12:47:17 -0500 Subject: [PATCH] Raise a more informative error when timeout Right now we are often left with very little info if we do get a timeout on something that HasStatus. Take advantage of the assert_status function that is also available on items using the HasStatus mixin to show more info. --- awxkit/awxkit/api/mixins/has_status.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/awxkit/awxkit/api/mixins/has_status.py b/awxkit/awxkit/api/mixins/has_status.py index 3f88539988..8844e131fa 100644 --- a/awxkit/awxkit/api/mixins/has_status.py +++ b/awxkit/awxkit/api/mixins/has_status.py @@ -4,6 +4,7 @@ import json import six from awxkit.utils import poll_until +from awxkit.exceptions import WaitUntilTimeout def bytes_to_str(obj): @@ -28,7 +29,11 @@ class HasStatus(object): def wait_until_status(self, status, interval=1, timeout=60, **kwargs): status = [status] if not isinstance(status, (list, tuple)) else status - poll_until(lambda: getattr(self.get(), 'status') in status, interval=interval, timeout=timeout, **kwargs) + try: + poll_until(lambda: getattr(self.get(), 'status') in status, interval=interval, timeout=timeout, **kwargs) + except WaitUntilTimeout: + # This will raise a more informative error than just "WaitUntilTimeout" error + self.assert_status(status) return self def wait_until_completed(self, interval=5, timeout=60, **kwargs):