mirror of
https://github.com/odoo/runbot.git
synced 2025-03-27 13:25:47 +07:00
[FIX] runbot: add limit on log length
This commit is contained in:
parent
45034d362d
commit
1985917702
@ -357,6 +357,9 @@ class Batch(models.Model):
|
|||||||
self._log(message, *args, level='WARNING')
|
self._log(message, *args, level='WARNING')
|
||||||
|
|
||||||
def _log(self, message, *args, level='INFO'):
|
def _log(self, message, *args, level='INFO'):
|
||||||
|
message = message % args if args else message
|
||||||
|
if len(message) > 300000:
|
||||||
|
message = message[:300000] + '[Truncate, message too long]'
|
||||||
self.env['runbot.batch.log'].create({
|
self.env['runbot.batch.log'].create({
|
||||||
'batch_id': self.id,
|
'batch_id': self.id,
|
||||||
'message': message % args if args else message,
|
'message': message % args if args else message,
|
||||||
|
@ -670,9 +670,9 @@ class BuildResult(models.Model):
|
|||||||
results = build.active_step._make_results(build)
|
results = build.active_step._make_results(build)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if isinstance(e, RunbotException):
|
if isinstance(e, RunbotException):
|
||||||
message = e.args[0]
|
message = e.args[0][:300000]
|
||||||
else:
|
else:
|
||||||
message = 'An error occured while computing results of %s:\n %s' % (build.job, str(e).replace('\\n', '\n').replace("\\'", "'"))
|
message = 'An error occured while computing results of %s:\n %s' % (build.job, str(e).replace('\\n', '\n').replace("\\'", "'")[:10000])
|
||||||
_logger.exception(message)
|
_logger.exception(message)
|
||||||
build._log('_make_results', message, level='ERROR')
|
build._log('_make_results', message, level='ERROR')
|
||||||
results = {'local_result': 'ko'}
|
results = {'local_result': 'ko'}
|
||||||
|
@ -858,6 +858,7 @@ class ConfigStep(models.Model):
|
|||||||
eval_ctx = self.make_python_ctx(build)
|
eval_ctx = self.make_python_ctx(build)
|
||||||
safe_eval(self.python_result_code.strip(), eval_ctx, mode="exec", nocopy=True)
|
safe_eval(self.python_result_code.strip(), eval_ctx, mode="exec", nocopy=True)
|
||||||
return_value = eval_ctx.get('return_value')
|
return_value = eval_ctx.get('return_value')
|
||||||
|
# todo check return_value or write in try except. Example: local result setted to wrong value
|
||||||
if not isinstance(return_value, dict):
|
if not isinstance(return_value, dict):
|
||||||
raise RunbotException('python_result_code must set return_value to a dict values on build')
|
raise RunbotException('python_result_code must set return_value to a dict values on build')
|
||||||
return return_value
|
return return_value
|
||||||
|
Loading…
Reference in New Issue
Block a user