[FIX] runbot: use connected user when logging kill/rebuild

As these methods are call in sudo mode, we should use request's user to
have a meaningful log entry.
This commit is contained in:
Christophe Simonis 2018-03-20 10:20:53 +01:00
parent 278d4ed449
commit dc3659c6f1

View File

@ -13,6 +13,7 @@ from subprocess import CalledProcessError
from ..common import dt2time, fqdn, now, locked, grep, time2str, rfind, uniq_list, local_pgadmin_cursor, lock from ..common import dt2time, fqdn, now, locked, grep, time2str, rfind, uniq_list, local_pgadmin_cursor, lock
from odoo import models, fields, api from odoo import models, fields, api
from odoo.exceptions import UserError from odoo.exceptions import UserError
from odoo.http import request
from odoo.tools import config, appdirs from odoo.tools import config, appdirs
_re_error = r'^(?:\d{4}-\d\d-\d\d \d\d:\d\d:\d\d,\d{3} \d+ (?:ERROR|CRITICAL) )|(?:Traceback \(most recent call last\):)$' _re_error = r'^(?:\d{4}-\d\d-\d\d \d\d:\d\d:\d\d,\d{3} \d+ (?:ERROR|CRITICAL) )|(?:Traceback \(most recent call last\):)$'
@ -279,7 +280,8 @@ class runbot_build(models.Model):
else: else:
rebuild = False rebuild = False
if rebuild: if rebuild:
build._log('rebuild', 'Rebuild initiated by %s' % self.env.user.name) user = request.env.user if request else self.env.user
build._log('rebuild', 'Rebuild initiated by %s' % user.name)
def _skip(self): def _skip(self):
"""Mark builds ids as skipped""" """Mark builds ids as skipped"""
@ -614,8 +616,8 @@ class runbot_build(models.Model):
def _ask_kill(self): def _ask_kill(self):
self.ensure_one() self.ensure_one()
user = self.env.user user = request.env.user if request else self.env.user
uid = self.env.uid uid = user.id
if self.state == 'pending': if self.state == 'pending':
self._skip(ids=self.ids) self._skip(ids=self.ids)
self._log('_ask_kill', 'Skipping build %s, requested by %s (user #%s)' % (self.dest, user.name, uid)) self._log('_ask_kill', 'Skipping build %s, requested by %s (user #%s)' % (self.dest, user.name, uid))