[autotest] Catch exceptions when setting up ts_mon
If the local chromite is broken or has an exception while setting up
monitoring, ignore it and log a warning.
BUG=b:31811227
TEST=None
Change-Id: I83bbb91d99732ad1faa6363142b663cf9ddb2d08
Reviewed-on: https://chromium-review.googlesource.com/391232
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Paul Hobbs <phobbs@google.com>
Reviewed-by: Paul Hobbs <phobbs@google.com>
diff --git a/server/site_utils.py b/server/site_utils.py
index 496a22c..fb44dd5 100644
--- a/server/site_utils.py
+++ b/server/site_utils.py
@@ -755,17 +755,25 @@
"""
if ts_mon_config:
context = ts_mon_config.SetupTsMonGlobalState(*args, **kwargs)
- if hasattr(context, '__exit__'):
- return context
- else:
- return TrivialContextManager()
+ try:
+ context = ts_mon_config.SetupTsMonGlobalState(*args, **kwargs)
+ if hasattr(context, '__exit__'):
+ return context
+ except Exception as e:
+ logging.warning('Caught an exception trying to setup ts_mon, '
+ 'monitoring is disabled: %s', e, exc_info=True)
+ return TrivialContextManager()
else:
return TrivialContextManager()
@contextlib.contextmanager
-def TrivialContextManager():
- """Context manager that does nothing."""
+def TrivialContextManager(*args, **kwargs):
+ """Context manager that does nothing.
+
+ @param *args: Ignored args
+ @param **kwargs: Ignored kwargs.
+ """
yield