Merge ~toabctl/jenkins-launchpad-plugin:master-launchpadTrigger-lock-timeout into jenkins-launchpad-plugin:master

Proposed by Thomas Bechtold
Status: Merged
Merged at revision: f127a70c462db68989976d07572a493c74a0a13e
Proposed branch: ~toabctl/jenkins-launchpad-plugin:master-launchpadTrigger-lock-timeout
Merge into: jenkins-launchpad-plugin:master
Diff against target: 39 lines (+6/-1)
2 files modified
jlp/commands/launchpadTrigger.py (+4/-1)
jlp/socketlock.py (+2/-0)
Reviewer Review Type Date Requested Status
Paride Legovini Approve
Review via email: mp+430305@code.launchpad.net

Commit message

SocketLock improvements

To post a comment you must log in.
Revision history for this message
Paride Legovini (paride) wrote :

LGTM, thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/jlp/commands/launchpadTrigger.py b/jlp/commands/launchpadTrigger.py
2index 8f0bbb6..0d4649b 100644
3--- a/jlp/commands/launchpadTrigger.py
4+++ b/jlp/commands/launchpadTrigger.py
5@@ -76,6 +76,9 @@ def launchpadTrigger():
6 default='launchpadTrigger',
7 help='''Name of the lock and launchpadlib cache
8 to be used''')
9+ parser.add_argument('--lock-timeout',
10+ default=None,
11+ help='''timeout in seconds (or None)''')
12 parser.add_argument("-r", "--repo_type", default="auto",
13 help="Repository type [bazaar, git, or auto]")
14
15@@ -93,6 +96,6 @@ def launchpadTrigger():
16 instance_name=args['lock_name'])
17 logger.debug('Going to acquire launchpad lock "{}"'
18 ' for launchpadTrigger'.format(trigger_lock_name))
19- with SocketLock(trigger_lock_name):
20+ with SocketLock(trigger_lock_name, args['lock_timeout']):
21 logger.debug('Lock acquired for launchpadTrigger')
22 return trigger_jenkins(**args)
23diff --git a/jlp/socketlock.py b/jlp/socketlock.py
24index da7471c..97741cf 100644
25--- a/jlp/socketlock.py
26+++ b/jlp/socketlock.py
27@@ -1,3 +1,4 @@
28+from jlp import logger
29 import socket
30 from lockfile import LockTimeout, AlreadyLocked
31 import time
32@@ -44,6 +45,7 @@ class SocketLock(object):
33 self.socket.bind('\0' + self.lockname)
34 return
35 except socket.error:
36+ logger.exception('Can not acquire SocketLock')
37 if timeout is not None and time.time() > end_time:
38 if timeout > 0:
39 raise LockTimeout

Subscribers

People subscribed via source and target branches