diff options
Diffstat (limited to 'meta/classes/report-error.bbclass')
| -rw-r--r-- | meta/classes/report-error.bbclass | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/meta/classes/report-error.bbclass b/meta/classes/report-error.bbclass index c5aaaa8a11..11eee9bdc5 100644 --- a/meta/classes/report-error.bbclass +++ b/meta/classes/report-error.bbclass | |||
| @@ -18,7 +18,6 @@ def errorreport_getdata(e): | |||
| 18 | def errorreport_savedata(e, newdata, file): | 18 | def errorreport_savedata(e, newdata, file): |
| 19 | import json | 19 | import json |
| 20 | logpath = e.data.getVar('ERR_REPORT_DIR', True) | 20 | logpath = e.data.getVar('ERR_REPORT_DIR', True) |
| 21 | bb.utils.mkdirhier(logpath) | ||
| 22 | datafile = os.path.join(logpath, file) | 21 | datafile = os.path.join(logpath, file) |
| 23 | with open(datafile, "w") as f: | 22 | with open(datafile, "w") as f: |
| 24 | json.dump(newdata, f, indent=4, sort_keys=True) | 23 | json.dump(newdata, f, indent=4, sort_keys=True) |
| @@ -27,7 +26,11 @@ def errorreport_savedata(e, newdata, file): | |||
| 27 | python errorreport_handler () { | 26 | python errorreport_handler () { |
| 28 | import json | 27 | import json |
| 29 | 28 | ||
| 29 | logpath = e.data.getVar('ERR_REPORT_DIR', True) | ||
| 30 | datafile = os.path.join(logpath, "error-report.txt") | ||
| 31 | |||
| 30 | if isinstance(e, bb.event.BuildStarted): | 32 | if isinstance(e, bb.event.BuildStarted): |
| 33 | bb.utils.mkdirhier(logpath) | ||
| 31 | data = {} | 34 | data = {} |
| 32 | machine = e.data.getVar("MACHINE", False) | 35 | machine = e.data.getVar("MACHINE", False) |
| 33 | data['machine'] = machine | 36 | data['machine'] = machine |
| @@ -38,7 +41,9 @@ python errorreport_handler () { | |||
| 38 | data['failures'] = [] | 41 | data['failures'] = [] |
| 39 | data['component'] = e.getPkgs()[0] | 42 | data['component'] = e.getPkgs()[0] |
| 40 | data['branch_commit'] = base_detect_branch(e.data) + ": " + base_detect_revision(e.data) | 43 | data['branch_commit'] = base_detect_branch(e.data) + ": " + base_detect_revision(e.data) |
| 44 | lock = bb.utils.lockfile(datafile + '.lock') | ||
| 41 | errorreport_savedata(e, data, "error-report.txt") | 45 | errorreport_savedata(e, data, "error-report.txt") |
| 46 | bb.utils.unlockfile(lock) | ||
| 42 | 47 | ||
| 43 | elif isinstance(e, bb.build.TaskFailed): | 48 | elif isinstance(e, bb.build.TaskFailed): |
| 44 | task = e.task | 49 | task = e.task |
| @@ -56,12 +61,16 @@ python errorreport_handler () { | |||
| 56 | 61 | ||
| 57 | else: | 62 | else: |
| 58 | taskdata['log'] = "No Log" | 63 | taskdata['log'] = "No Log" |
| 64 | lock = bb.utils.lockfile(datafile + '.lock') | ||
| 59 | jsondata = json.loads(errorreport_getdata(e)) | 65 | jsondata = json.loads(errorreport_getdata(e)) |
| 60 | jsondata['failures'].append(taskdata) | 66 | jsondata['failures'].append(taskdata) |
| 61 | errorreport_savedata(e, jsondata, "error-report.txt") | 67 | errorreport_savedata(e, jsondata, "error-report.txt") |
| 68 | bb.utils.unlockfile(lock) | ||
| 62 | 69 | ||
| 63 | elif isinstance(e, bb.event.BuildCompleted): | 70 | elif isinstance(e, bb.event.BuildCompleted): |
| 71 | lock = bb.utils.lockfile(datafile + '.lock') | ||
| 64 | jsondata = json.loads(errorreport_getdata(e)) | 72 | jsondata = json.loads(errorreport_getdata(e)) |
| 73 | bb.utils.unlockfile(lock) | ||
| 65 | failures = jsondata['failures'] | 74 | failures = jsondata['failures'] |
| 66 | if(len(failures) > 0): | 75 | if(len(failures) > 0): |
| 67 | filename = "error_report_" + e.data.getVar("BUILDNAME", False)+".txt" | 76 | filename = "error_report_" + e.data.getVar("BUILDNAME", False)+".txt" |
