19 Commits

Author SHA1 Message Date
Ben Nemec
10faffc956 Make lock_wrapper private
This is only intended to be called via the main() function, so it
doesn't need to be public.

Change-Id: Ia215abbe8f8b9e1d8f4f36027b95bc33788a1886
2014-10-08 20:44:30 +00:00
Ben Nemec
baee4673eb Use ConfigFilter for opts
This will prevent them being registered on the global config object
and becoming available to consuming applications.

Change-Id: Ibddb876d18c6aefef9dca08cf5883d8bdca17925
bp graduate-oslo-concurrency
2014-09-30 15:03:48 +00:00
Ben Nemec
5d1461204d Make lockutils main() a console entry point
This is more lib-ish than calling python -m on the module.

As part of this change, I also improved the unit tests for this code.
Before we weren't unsetting OSLO_LOCK_PATH before calling the main
function, so we had no way of knowing if it was being set correctly.

I also added a test case to verify return value propagation and
removed a private method that was never called.

Change-Id: I6c35b5409bf567767c5c71b9041dd7f7a012255d
2014-09-30 15:03:48 +00:00
Ben Nemec
c98d5edc44 Expose lockutils opts to config generator
* Adds an opts module for the config generator to use.
* Makes the opts in lockutils private since we don't want consumers
  using them directly.
* Moves the options to an oslo_concurrency group with appropriate
  deprecated_group settings to keep existing configs working.

Change-Id: Ifdb4d99e27588e8a91d941c60b248ea526c06e0a
2014-09-30 15:03:44 +00:00
Jenkins
5cba7d1830 Merge "Add lock_path as param to remove_external function" 2014-09-29 16:59:12 +00:00
Ben Nemec
19dbcbbb89 Add hacking import exception for i18n
This is preferred over adding noqa's everywhere we import a
translation function.

Change-Id: I171df45b62beb9776e8dbb52e33a408a832bf86f
2014-09-26 17:25:12 +00:00
jichenjc
f350a45ba4 Add lock_path as param to remove_external function
commit b0d0c335 added remove external lock file function, but
the lock_path as lock file location folder is missing and
it make it's impossible to specify where to find the lock file.
This patch added the params.

Change-Id: I9be2fb68fab4690993395d01ef5ad13c0c92f3a3
Related-Bug: #1256306
2014-09-20 15:11:39 +08:00
Jenkins
afdc56d83a Merge "Cleanup and adding timing to lockutils logging" 2014-09-20 05:20:48 +00:00
Brian D. Elliott
103e60e9c0 Cleanup and adding timing to lockutils logging
* Cleanup lockutils logging by showing lock name and function in
same line.  The enables easier parsing of information related to lock
acquisition from logs.

* Logs time a thread spent waiting on locks, as well as time spent
holding locks.  This will make it easier to debug suboptimal locking.

Change-Id: Ic310d84eb1ed75cc1c21c3d7861b4a3927ebaf23
2014-09-18 13:27:11 +00:00
Joshua Harlow
6a0fb778c6 Break up the logging around the lockfile release/unlock
To be better able to identify when and where are file lock
breaks when release occurs it's useful to distingush the
different steps of release and independently log them as
unique steps.

Change-Id: I3b605994ca7673e5c97e73821d2ea777117f5f09
2014-09-16 14:24:10 -07:00
Joshua Harlow
a14a75f0a1 Always log the releasing, even under failure
Change-Id: Ic040d2cad5004caa8786793373fbd5baca54d32e
2014-09-12 09:03:53 -07:00
Ben Nemec
19e0feb5a1 Clarify logging in lockutils
The old logging statements in lockutils made for some confusing log
entries where it would appear a given lock was acquired multiple
times by different threads at the same time.  See referenced bug
for details.

In order to alleviate that confusion, this change does a few things:
1) Adds an explicit "acquired" message inside the lock so it is
   clear when the lock was actually acquired.
2) Moves the release message inside the semaphore so there's no
   chance of it being logged out of order.
3) Removes the "Got semaphore" message and splits it into two
   separate messages depending on whether the semaphore was found
   in the weakref dictionary.  Making it clear which code path
   was followed should help with future debugging.

Change-Id: I0fbb473c60d48c9704597d9e3634402857861a66
Closes-Bug: 1367941
2014-09-11 20:00:18 +00:00
Jenkins
70dcb60796 Merge "Address some potential security issues in lockutils" 2014-09-03 12:58:22 +00:00
Jenkins
ddbce65897 Merge "Switch to oslo.i18n in our code" 2014-08-24 16:37:16 +00:00
Ben Nemec
60167d0b37 Address some potential security issues in lockutils
Adds a note to the lock_path help text explaining how to secure the
target directory.  Also opens lock files in append mode so there is
no possibility of overwriting a file due to a malicious symlink.

Change-Id: I77b72b20088fe66b573c23bd1fd98376c2b0f168
2014-08-22 17:21:24 +00:00
Ben Nemec
f1688a70f2 Use file locks by default again
After a lot of discussion[1], it was decided that this is the
safest way forward.  In the future we can investigate alternative
locking methods, probably as opt-ins so we don't break any
existing consumers of these locks.

[1] http://lists.openstack.org/pipermail/openstack-dev/2014-August/043090.html

Change-Id: I49ff98abc395d3263d55aeff26081b462a8a294e
Partial-Bug: 1327946
2014-08-22 17:13:25 +00:00
Yuriy Taraday
8a2ba06743 Switch to oslo.i18n in our code
Note that gettextutils are still indirectly used by fileutils (through log).

Change-Id: I4ea4830ed149aff87146a4b7392d7e48c6a7c793
2014-08-21 21:10:18 +04:00
Yuriy Taraday
1761de8f02 Make all tests pass 2014-08-07 22:27:31 +04:00
Yuriy Taraday
6fc3e6808b exported from oslo-incubator by graduate.sh 2014-08-07 22:26:50 +04:00