From 23ae4178e7f53001841495faa2752104595c6041 Mon Sep 17 00:00:00 2001 From: Diogo de Campos Date: Fri, 18 May 2018 11:15:35 +0200 Subject: [PATCH] Not adding user_id data to forced builds if it is not available This can happen when making force requests through an external tool, in these situations we do not have a session to extract user data from. --- master/buildbot/status/web/builder.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/master/buildbot/status/web/builder.py b/master/buildbot/status/web/builder.py index e34da75d3a21..804ebf5c7fa7 100644 --- a/master/buildbot/status/web/builder.py +++ b/master/buildbot/status/web/builder.py @@ -43,12 +43,18 @@ def force(self, req, builderNames): master = self.getBuildmaster(req) authz = self.getAuthz(req) owner = authz.getUsernameFull(req) - username = authz.getUsername(req) - user_id = authz.getUserInfo(username).get('uid') scheduler_name = req.args.get("forcescheduler", [""])[0] args = self.decode_request_arguments(req) - args['user_id'] = user_id + + # Try to add user_id to args, but it is ok if we can't + # Sometimes external requests do not have sessions data from which + # to extract user information. + username = authz.getUsername(req) + if username: + user_info = authz.getUserInfo(username) + if user_info: + args['user_id'] = user_info.get('uid') if scheduler_name == "": scheduler = master.scheduler_manager.findSchedulerByBuilderName(