Merge lp:~cjwatson/jenkins-launchpad-plugin/log-user into lp:jenkins-launchpad-plugin

Proposed by Colin Watson
Status: Merged
Approved by: Evan
Approved revision: 128
Merged at revision: 128
Proposed branch: lp:~cjwatson/jenkins-launchpad-plugin/log-user
Merge into: lp:jenkins-launchpad-plugin
Diff against target: 153 lines (+30/-21)
2 files modified
jlp/jenkinsutils.py (+11/-6)
tests/test_jenkinsutils.py (+19/-15)
To merge this branch: bzr merge lp:~cjwatson/jenkins-launchpad-plugin/log-user
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Evan (community) Approve
Review via email: mp+281983@code.launchpad.net

Commit message

Log the LP username in response to Unauthorized exceptions.

Description of the change

Log the LP username in response to Unauthorized exceptions. This will make problems like https://mir-jenkins.ubuntu.com/job/trigger-ci/9/console easier to track down.

To post a comment you must log in.
Revision history for this message
Evan (ev) wrote :

Looks good.

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'jlp/jenkinsutils.py'
2--- jlp/jenkinsutils.py 2015-09-15 15:10:52 +0000
3+++ jlp/jenkinsutils.py 2016-01-08 11:11:04 +0000
4@@ -612,7 +612,7 @@
5 params['test_result'] = "PASSED"
6
7
8-def start_jenkins_job(launchpaduser, jenkins_url, jenkins_job, mp,
9+def start_jenkins_job(lp_handle, launchpaduser, jenkins_url, jenkins_job, mp,
10 fasttrack_merge=False):
11 """Start a given jenkins job on a jenkins as defined in config file
12
13@@ -642,8 +642,12 @@
14 reviewer=launchpaduser,
15 review_type=get_config_option('launchpad_review_type'))
16 except Unauthorized:
17- logger.info('You are not authorized to review this merge ' +
18- 'proposal. CI process will now be stopped.')
19+ try:
20+ username = lp_handle.me.name
21+ except Unauthorized:
22+ username = '<anonymous>'
23+ logger.info('You (' + username + ') are not authorized to review '
24+ 'this merge proposal. CI process will now be stopped.')
25 return False
26
27 try:
28@@ -815,7 +819,8 @@
29 if launchpadutils.testing_in_progress(mp, jenkins_job):
30 continue
31
32- ret = start_jenkins_job(launchpad_user, jenkins_url, jenkins_job, mp)
33+ ret = start_jenkins_job(lp_handle, launchpad_user, jenkins_url,
34+ jenkins_job, mp)
35 result = ret and result
36 return result
37
38@@ -865,7 +870,7 @@
39
40 launchpad_user = lp_handle.people(
41 get_config_option('launchpad_login'))
42- ret = start_jenkins_job(launchpad_user, jenkins_url, jenkins_job,
43- mp, fasttrack_merge)
44+ ret = start_jenkins_job(lp_handle, launchpad_user, jenkins_url,
45+ jenkins_job, mp, fasttrack_merge)
46 result = ret and result
47 return result
48
49=== modified file 'tests/test_jenkinsutils.py'
50--- tests/test_jenkinsutils.py 2013-11-22 21:56:39 +0000
51+++ tests/test_jenkinsutils.py 2016-01-08 11:11:04 +0000
52@@ -888,6 +888,7 @@
53
54 class TestStartJenkinsJob(unittest.TestCase):
55 def setUp(self):
56+ self.lp_handle = MagicMock()
57 self.launchpad_user = MagicMock()
58
59 def test_start_jenkins_job(self):
60@@ -898,8 +899,8 @@
61 jenkins = MagicMock()
62 jenkins.Jenkins = MagicMock(return_value=j)
63 with patch('jlp.jenkinsutils.jenkins', new=jenkins):
64- jenkinsutils.start_jenkins_job(self.launchpad_user, 'url',
65- 'jenkins_job', mp)
66+ jenkinsutils.start_jenkins_job(self.lp_handle, self.launchpad_user,
67+ 'url', 'jenkins_job', mp)
68 self.assertEqual(j.build_job.call_count, 1)
69 self.assertEqual(mp.nominateReviewer.call_count, 1)
70
71@@ -913,7 +914,8 @@
72 jenkins.Jenkins = MagicMock(return_value=j)
73
74 with patch('jlp.jenkinsutils.jenkins', new=jenkins):
75- ret = jenkinsutils.start_jenkins_job(self.launchpad_user, 'url',
76+ ret = jenkinsutils.start_jenkins_job(self.lp_handle,
77+ self.launchpad_user, 'url',
78 'jenkins_job', mp)
79 self.assertFalse(ret)
80 self.assertEqual(j.build_job.call_count, 0)
81@@ -928,8 +930,8 @@
82 jenkinsInstance.Jenkins = MagicMock(return_value=j)
83 jenkinsInstance.JenkinsException = JenkinsException
84 with patch('jlp.jenkinsutils.jenkins', new=jenkinsInstance):
85- jenkinsutils.start_jenkins_job(self.launchpad_user, 'url',
86- 'jenkins_job', mp)
87+ jenkinsutils.start_jenkins_job(self.lp_handle, self.launchpad_user,
88+ 'url', 'jenkins_job', mp)
89 self.assertEqual(mp.createComment.call_count, 1)
90
91 def test_start_jenkins_job_and_raise_unauthorized(self):
92@@ -941,7 +943,8 @@
93 jenkinsInstance = MagicMock()
94 jenkinsInstance.Jenkins = MagicMock(return_value=j)
95 with patch('jlp.jenkinsutils.jenkins', new=jenkinsInstance):
96- ret = jenkinsutils.start_jenkins_job(self.launchpad_user, 'url',
97+ ret = jenkinsutils.start_jenkins_job(self.lp_handle,
98+ self.launchpad_user, 'url',
99 'jenkins_job', mp)
100 self.assertEqual(mp.createComment.call_count, 0)
101 self.assertEqual(ret, False)
102@@ -954,7 +957,8 @@
103 jenkins.Jenkins = MagicMock(return_value=j)
104 with patch('jlp.jenkinsutils.jenkins', new=jenkins):
105 self.assertEqual(
106- jenkinsutils.start_jenkins_job(self.launchpad_user, 'url',
107+ jenkinsutils.start_jenkins_job(self.lp_handle,
108+ self.launchpad_user, 'url',
109 'jenkins_job', mp),
110 False)
111 self.assertEqual(j.build_job.call_count, 0)
112@@ -982,8 +986,8 @@
113 with patch('jlp.jenkinsutils.jenkins', new=jenkins), \
114 patch('jlp.jenkinsutils.get_json_jenkins',
115 new=get_json_jenkins):
116- jenkinsutils.start_jenkins_job(self.launchpad_user, 'url',
117- 'jenkins_job', mp, True)
118+ jenkinsutils.start_jenkins_job(self.lp_handle, self.launchpad_user,
119+ 'url', 'jenkins_job', mp, True)
120 self.assertEqual(j.build_job.call_count, 1)
121 self.assertEqual(j.build_job.call_args[0][0], 'generic-land')
122
123@@ -997,8 +1001,8 @@
124 jenkins = MagicMock()
125 jenkins.Jenkins = MagicMock(return_value=j)
126 with patch('jlp.jenkinsutils.jenkins', new=jenkins):
127- jenkinsutils.start_jenkins_job(self.launchpad_user, 'url',
128- 'jenkins_job', mp, True)
129+ jenkinsutils.start_jenkins_job(self.lp_handle, self.launchpad_user,
130+ 'url', 'jenkins_job', mp, True)
131 self.assertEqual(j.build_job.call_count, 1)
132 self.assertEqual(j.build_job.call_args[0][0], 'jenkins_job')
133
134@@ -1013,8 +1017,8 @@
135 jenkins = MagicMock()
136 jenkins.Jenkins = MagicMock(return_value=j)
137 with patch('jlp.jenkinsutils.jenkins', new=jenkins):
138- jenkinsutils.start_jenkins_job(self.launchpad_user, 'url',
139- 'jenkins_job', mp)
140+ jenkinsutils.start_jenkins_job(self.lp_handle, self.launchpad_user,
141+ 'url', 'jenkins_job', mp)
142 self.assertEqual(j.build_job.call_args[0][2], None)
143
144 def test_start_jenkins_job_with_jenkins_build_token_set(self):
145@@ -1031,8 +1035,8 @@
146 _config['jenkins_build_token'] = token
147 jenkins.Jenkins = MagicMock(return_value=j)
148 with patch('jlp.jenkinsutils.jenkins', new=jenkins):
149- jenkinsutils.start_jenkins_job(self.launchpad_user, 'url',
150- 'jenkins_job', mp)
151+ jenkinsutils.start_jenkins_job(self.lp_handle, self.launchpad_user,
152+ 'url', 'jenkins_job', mp)
153 self.assertEqual(j.build_job.call_args[0][2], token)
154
155

Subscribers

People subscribed via source and target branches

to all changes: