)]}'
{"oslo/concurrency/lockutils.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"4fc518b2282c077ca3d0ea24d69927ffb011bda1","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    system is rebooted or the semaphore is manually cleaned up (which is"},{"line_number":163,"context_line":"    difficult to do properly)."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    NOTE(bnemec): Because of the issues above, this is being disabled as the"},{"line_number":166,"context_line":"    default locking mechanism.  However, I\u0027m going to leave the class because"},{"line_number":167,"context_line":"    we may find a use for it in the future."},{"line_number":168,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_f463713f","line":165,"updated":"2014-08-22 04:46:31.000000000","message":"Is this the best thing to do? Doesn\u0027t it exist in git history if we really need to resurrect it...","commit_id":"e83634116fbcd69edc72d694db5c7040710c353d"}],"tests/unit/test_lockutils.py":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"322002ff6c0947f878d9b8bca9913d0bebfae313","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.assertEqual(foo.__name__, \u0027foo\u0027, \"Wrapped function\u0027s name \""},{"line_number":50,"context_line":"                                              \"got mangled\")"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_lock_acquire_release_file_lock(self):"},{"line_number":53,"context_line":"        lock_dir \u003d tempfile.mkdtemp()"},{"line_number":54,"context_line":"        lock_file \u003d os.path.join(lock_dir, \u0027lock\u0027)"},{"line_number":55,"context_line":"        lock \u003d lockutils._FcntlLock(lock_file)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_b14f5033","line":52,"updated":"2014-08-21 23:13:29.000000000","message":"This is the version of the test_lock_acquire_release test from before the posix lock change.","commit_id":"e83634116fbcd69edc72d694db5c7040710c353d"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"4c07fa20e9b34009a102855a1f11cdf078a60479","unresolved":false,"context_lines":[{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        self.assertRaises(threading.ThreadError, lock.acquire)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def test_no_lock_path(self):"},{"line_number":366,"context_line":"        lock_file \u003d os.path.join(self.lock_dir, \u0027should-not-exist\u0027)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"        @lockutils.synchronized(\u0027should-not-exist\u0027, external\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_ef41c5a9","side":"PARENT","line":365,"updated":"2014-08-22 17:24:16.000000000","message":"It turns out this test wasn\u0027t actually working anyway. :-(","commit_id":"ca401cc68dae7fd6cb78a97c559127755f711314"}]}
