resource error logging that is easier to understand
Log what a suite requested, what it has reserved and the complete resource
state.
Change-Id: Ic6887bbe5fe74a73f0e344cd4078dd7ed989cc15
diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py
index d55ee92..5d03b95 100644
--- a/src/osmo_gsm_tester/suite.py
+++ b/src/osmo_gsm_tester/suite.py
@@ -22,6 +22,7 @@
import time
import copy
import traceback
+import pprint
from . import config, log, template, util, resource, schema, ofono_client, osmo_nitb, event_loop
from . import test
@@ -130,7 +131,8 @@
ftype = type(e).__name__
fmsg = repr(e) + '\n' + traceback.format_exc().rstrip()
if isinstance(e, resource.NoResourceExn):
- fmsg += '\n' + 'Current resource state:\n' + repr(suite_run.reserved_resources)
+ fmsg += suite_run.resource_status_str()
+
self.set_fail(ftype, fmsg, False)
finally:
@@ -314,6 +316,13 @@
self.log('prompt entered:', repr(entered))
return entered
+ def resource_status_str(self):
+ return '\n'.join(('',
+ 'SUITE RUN: %s' % self.origin_id(),
+ 'ASKED FOR:', pprint.pformat(self._resource_requirements),
+ 'RESERVED COUNT:', pprint.pformat(self.reserved_resources.counts()),
+ 'RESOURCES STATE:', repr(self.reserved_resources)))
+
loaded_suite_definitions = {}
def load(suite_name):