[MERGED] osmo-gsm-tester[master]: resource error logging that is easier to understand
Neels Hofmeyr has submitted this change and it was merged. Change subject: resource error logging that is easier to understand .. 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 --- M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/suite.py 2 files changed, 20 insertions(+), 2 deletions(-) Approvals: Neels Hofmeyr: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index e660066..ebc9457 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -463,8 +463,9 @@ available = available_dict.get(kind) self.dbg(available=len(available)) if not available: -raise NoResourceExn('No unused resource found: %r%s' % +raise NoResourceExn('When trying to reserve %r nr %d: No unused resource found%s' % (kind, + self.count(kind) + 1, (' matching %r' % specifics) if specifics else '') ) pick = available[0] @@ -496,5 +497,13 @@ self.resources_pool.free(self.origin, self.reserved) self.reserved = None +def counts(self): +counts = {} +for key in self.reserved.keys(): +counts[key] = self.count(key) +return counts + +def count(self, key): +return len(self.reserved.get(key) or []) # vim: expandtab tabstop=4 shiftwidth=4 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): -- To view, visit https://gerrit.osmocom.org/2705 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ic6887bbe5fe74a73f0e344cd4078dd7ed989cc15 Gerrit-PatchSet: 3 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol
osmo-gsm-tester[master]: resource error logging that is easier to understand
Patch Set 3: Code-Review+2 pushing this on, if anything is left open I shall follow up with a patch -- To view, visit https://gerrit.osmocom.org/2705 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ic6887bbe5fe74a73f0e344cd4078dd7ed989cc15 Gerrit-PatchSet: 3 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: No
[PATCH] osmo-gsm-tester[master]: resource error logging that is easier to understand
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/2705 to look at the new patch set (#3). 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 --- M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/suite.py 2 files changed, 20 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/05/2705/3 diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index e660066..ebc9457 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -463,8 +463,9 @@ available = available_dict.get(kind) self.dbg(available=len(available)) if not available: -raise NoResourceExn('No unused resource found: %r%s' % +raise NoResourceExn('When trying to reserve %r nr %d: No unused resource found%s' % (kind, + self.count(kind) + 1, (' matching %r' % specifics) if specifics else '') ) pick = available[0] @@ -496,5 +497,13 @@ self.resources_pool.free(self.origin, self.reserved) self.reserved = None +def counts(self): +counts = {} +for key in self.reserved.keys(): +counts[key] = self.count(key) +return counts + +def count(self, key): +return len(self.reserved.get(key) or []) # vim: expandtab tabstop=4 shiftwidth=4 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): -- To view, visit https://gerrit.osmocom.org/2705 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ic6887bbe5fe74a73f0e344cd4078dd7ed989cc15 Gerrit-PatchSet: 3 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol
osmo-gsm-tester[master]: resource error logging that is easier to understand
Patch Set 2: (2 comments) https://gerrit.osmocom.org/#/c/2705/2/src/osmo_gsm_tester/resource.py File src/osmo_gsm_tester/resource.py: Line 468: self.count(kind) + 1, You didn't move this to the line above https://gerrit.osmocom.org/#/c/2705/2/src/osmo_gsm_tester/suite.py File src/osmo_gsm_tester/suite.py: Line 346: 'RESERVED COUNT:', pprint.pformat(self.reserved_resources.counts()), > ah yes, using it here. Perfect I didn't see it, thanks -- To view, visit https://gerrit.osmocom.org/2705 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ic6887bbe5fe74a73f0e344cd4078dd7ed989cc15 Gerrit-PatchSet: 2 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: Yes
osmo-gsm-tester[master]: resource error logging that is easier to understand
Patch Set 1: (2 comments) https://gerrit.osmocom.org/#/c/2705/1/src/osmo_gsm_tester/resource.py File src/osmo_gsm_tester/resource.py: Line 468: self.count(kind) + 1, I'd move this line up together with kind Line 500: def counts(self): Do we need this? doesn't seem to be used, but OK with keeping it if it can be useful later -- To view, visit https://gerrit.osmocom.org/2705 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ic6887bbe5fe74a73f0e344cd4078dd7ed989cc15 Gerrit-PatchSet: 1 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-HasComments: Yes
[PATCH] osmo-gsm-tester[master]: resource error logging that is easier to understand
Review at https://gerrit.osmocom.org/2705 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 --- M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/suite.py 2 files changed, 20 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/05/2705/1 diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index e660066..ebc9457 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -463,8 +463,9 @@ available = available_dict.get(kind) self.dbg(available=len(available)) if not available: -raise NoResourceExn('No unused resource found: %r%s' % +raise NoResourceExn('When trying to reserve %r nr %d: No unused resource found%s' % (kind, + self.count(kind) + 1, (' matching %r' % specifics) if specifics else '') ) pick = available[0] @@ -496,5 +497,13 @@ self.resources_pool.free(self.origin, self.reserved) self.reserved = None +def counts(self): +counts = {} +for key in self.reserved.keys(): +counts[key] = self.count(key) +return counts + +def count(self, key): +return len(self.reserved.get(key) or []) # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py index 0664897..ca73840 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 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: @@ -337,6 +339,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): -- To view, visit https://gerrit.osmocom.org/2705 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic6887bbe5fe74a73f0e344cd4078dd7ed989cc15 Gerrit-PatchSet: 1 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Neels Hofmeyr