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
diff --git a/jlp/commands/launchpadTrigger.py b/jlp/commands/launchpadTrigger.py
index 8f0bbb6..0d4649b 100644
--- a/jlp/commands/launchpadTrigger.py
+++ b/jlp/commands/launchpadTrigger.py
@@ -76,6 +76,9 @@ def launchpadTrigger():
76 default='launchpadTrigger',76 default='launchpadTrigger',
77 help='''Name of the lock and launchpadlib cache77 help='''Name of the lock and launchpadlib cache
78 to be used''')78 to be used''')
79 parser.add_argument('--lock-timeout',
80 default=None,
81 help='''timeout in seconds (or None)''')
79 parser.add_argument("-r", "--repo_type", default="auto",82 parser.add_argument("-r", "--repo_type", default="auto",
80 help="Repository type [bazaar, git, or auto]")83 help="Repository type [bazaar, git, or auto]")
8184
@@ -93,6 +96,6 @@ def launchpadTrigger():
93 instance_name=args['lock_name'])96 instance_name=args['lock_name'])
94 logger.debug('Going to acquire launchpad lock "{}"'97 logger.debug('Going to acquire launchpad lock "{}"'
95 ' for launchpadTrigger'.format(trigger_lock_name))98 ' for launchpadTrigger'.format(trigger_lock_name))
96 with SocketLock(trigger_lock_name):99 with SocketLock(trigger_lock_name, args['lock_timeout']):
97 logger.debug('Lock acquired for launchpadTrigger')100 logger.debug('Lock acquired for launchpadTrigger')
98 return trigger_jenkins(**args)101 return trigger_jenkins(**args)
diff --git a/jlp/socketlock.py b/jlp/socketlock.py
index da7471c..97741cf 100644
--- a/jlp/socketlock.py
+++ b/jlp/socketlock.py
@@ -1,3 +1,4 @@
1from jlp import logger
1import socket2import socket
2from lockfile import LockTimeout, AlreadyLocked3from lockfile import LockTimeout, AlreadyLocked
3import time4import time
@@ -44,6 +45,7 @@ class SocketLock(object):
44 self.socket.bind('\0' + self.lockname)45 self.socket.bind('\0' + self.lockname)
45 return46 return
46 except socket.error:47 except socket.error:
48 logger.exception('Can not acquire SocketLock')
47 if timeout is not None and time.time() > end_time:49 if timeout is not None and time.time() > end_time:
48 if timeout > 0:50 if timeout > 0:
49 raise LockTimeout51 raise LockTimeout

Subscribers

People subscribed via source and target branches