)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1f98fec0d2d03418493207ab6a27870955fbe30c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2013-12-03 14:08:01 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update lockutils and fixture in openstack.common"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change needs for work on bp: db-sync-models-with-migrations"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I139f30b4767ff2c9d1f01ee728823859c09b3859"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"AAAATn%2F%2BBfs%3D","line":8,"updated":"2013-12-03 10:58:54.000000000","message":"When importing modules from oslo, we usually include the corresponding commits in oslo or add a related bug number to validate what it affects. Could you add them?","commit_id":"b4d085e6c810d48860a8e900cedaa6100bdc1c1e"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"72b589c99ff79b17ad43b8a442765e3fec111990","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This change is needed for work on bp: db-sync-models-with-migrations"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Change-Id: I139f30b4767ff2c9d1f01ee728823859c09b3859"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"AAAATn%2F96So%3D","line":35,"updated":"2013-12-04 15:48:28.000000000","message":"Could you add a Closes-Bug: 1065531 so that launchpad will get automatically updated when this merges?","commit_id":"8bb39f8d57fb6ea1ba4394064ec84d62698ed3a3"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"275f59447efd7e3a20b702d1426208417281c2d1","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This change is needed for work on bp: db-sync-models-with-migrations"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Change-Id: I139f30b4767ff2c9d1f01ee728823859c09b3859"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"AAAATn%2F9w4A%3D","line":35,"in_reply_to":"AAAATn%2F96So%3D","updated":"2013-12-06 10:10:03.000000000","message":"Ok, thanks!","commit_id":"8bb39f8d57fb6ea1ba4394064ec84d62698ed3a3"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"41e76fa4d36febbbccced1e54990abe297ac8791","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This change is needed for work on bp: db-sync-models-with-migrations"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Closes-Bug: 1065531"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Change-Id: I139f30b4767ff2c9d1f01ee728823859c09b3859"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"AAAAT3%2F%2F5OE%3D","line":35,"updated":"2014-01-02 22:53:12.000000000","message":"Need a # in front of the bug number for it to link correctly.","commit_id":"81c9705bf6fbd7cca1988b2b00970580cd137c1f"}],"neutron/openstack/common/fixture/config.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"02274b5276c1d1a48c3b00627acd66c8a012a5ed","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    the specified configuration option group."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    All overrides are automatically cleared at the end of the current"},{"line_number":33,"context_line":"    test by the reset() method, which is registred by addCleanup()."},{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def __init__(self, conf\u003dcfg.CONF):"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F%2FKoI%3D","line":33,"updated":"2013-11-13 14:11:38.000000000","message":"registered","commit_id":"f1be8476568c25b48513eba92d37208314aa594b"}],"neutron/openstack/common/lockutils.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"02274b5276c1d1a48c3b00627acd66c8a012a5ed","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    import fcntl"},{"line_number":136,"context_line":"    InterProcessLock \u003d _PosixLock"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"_semaphores \u003d weakref.WeakValueDictionary()"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"@contextlib.contextmanager"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F%2FKmM%3D","line":138,"updated":"2013-11-13 14:11:38.000000000","message":"oslo has the following on line 139:\n\n_semaphores_lock \u003d threading.Lock()","commit_id":"f1be8476568c25b48513eba92d37208314aa594b"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"02274b5276c1d1a48c3b00627acd66c8a012a5ed","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        # this check is not racy - we\u0027re already holding ref locally"},{"line_number":167,"context_line":"        # so GC won\u0027t remove the item and there was no IO switch"},{"line_number":168,"context_line":"        # (only valid in greenthreads)"},{"line_number":169,"context_line":"        _semaphores[name] \u003d sem"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    with sem:"},{"line_number":172,"context_line":"        LOG.debug(_(\u0027Got semaphore \"%(lock)s\"\u0027), {\u0027lock\u0027: name})"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F%2FKl0%3D","line":169,"updated":"2013-11-13 14:11:38.000000000","message":"In olso, lines 161-169 are replaced with:\n\n    with _semaphores_lock:\n        try:\n            sem \u003d _semaphores[name]\n        except KeyError:\n            sem \u003d threading.Semaphore()\n            _semaphores[name] \u003d sem","commit_id":"f1be8476568c25b48513eba92d37208314aa594b"}],"neutron/tests/unit/__init__.py":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"77e65d696f2cf1bd73e59d0b46e301e7cc592556","unresolved":false,"context_lines":[{"line_number":23,"context_line":"reldir \u003d os.path.join(os.path.dirname(__file__), \u0027..\u0027, \u0027..\u0027, \u0027..\u0027)"},{"line_number":24,"context_line":"absdir \u003d os.path.abspath(reldir)"},{"line_number":25,"context_line":"cfg.CONF.state_path \u003d absdir"},{"line_number":26,"context_line":"# An empty lock path forces lockutils.synchronized to use a temporary"},{"line_number":27,"context_line":"# location for lock files that will be cleaned up automatically."},{"line_number":28,"context_line":"cfg.CONF.lock_path \u003d \u0027lock_path\u0027"},{"line_number":29,"context_line":"cfg.CONF.use_stderr \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2FEzA%3D","line":26,"updated":"2013-10-04 20:22:23.000000000","message":"This comment should be removed.","commit_id":"632161c5f769fe23a98a400f434d403ec02c7480"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"77e65d696f2cf1bd73e59d0b46e301e7cc592556","unresolved":false,"context_lines":[{"line_number":25,"context_line":"cfg.CONF.state_path \u003d absdir"},{"line_number":26,"context_line":"# An empty lock path forces lockutils.synchronized to use a temporary"},{"line_number":27,"context_line":"# location for lock files that will be cleaned up automatically."},{"line_number":28,"context_line":"cfg.CONF.lock_path \u003d \u0027lock_path\u0027"},{"line_number":29,"context_line":"cfg.CONF.use_stderr \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2FEyc%3D","line":28,"updated":"2013-10-04 20:22:23.000000000","message":"This is going to try to create a lock_path directory wherever the tests are being run.  I would consider using tempfile.mkdtemp instead.  Also, it should probably be cleaned up afterward.","commit_id":"632161c5f769fe23a98a400f434d403ec02c7480"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"a1d7f3078141f033bfd87bd48d173c570ad62bff","unresolved":false,"context_lines":[{"line_number":25,"context_line":"cfg.CONF.state_path \u003d absdir"},{"line_number":26,"context_line":"# An empty lock path forces lockutils.synchronized to use a temporary"},{"line_number":27,"context_line":"# location for lock files that will be cleaned up automatically."},{"line_number":28,"context_line":"cfg.CONF.lock_path \u003d \u0027lock_path\u0027"},{"line_number":29,"context_line":"cfg.CONF.use_stderr \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2Fb6E%3D","line":28,"in_reply_to":"AAAAS3%2F%2FEyc%3D","updated":"2013-10-16 07:53:13.000000000","message":"Ok, I\u0027ll move to adsdir but cleaning it up afterward won\u0027t work because of parallel test execution in different processes.","commit_id":"632161c5f769fe23a98a400f434d403ec02c7480"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"089cd6d71d2e6aa2a11fd1c899fb3828d340b98b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"reldir \u003d os.path.join(os.path.dirname(__file__), \u0027..\u0027, \u0027..\u0027, \u0027..\u0027)"},{"line_number":24,"context_line":"absdir \u003d os.path.abspath(reldir)"},{"line_number":25,"context_line":"cfg.CONF.state_path \u003d absdir"},{"line_number":26,"context_line":"cfg.CONF.lock_path \u003d os.path.join(absdir, \u0027lock_path\u0027)"},{"line_number":27,"context_line":"cfg.CONF.use_stderr \u003d False"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATH%2F%2FIGs%3D","line":26,"updated":"2013-10-22 20:03:04.000000000","message":"This is still putting lock files in a known location, and leaving the possibility that a stale lock could remain after a failed run, which would break the synchronized tests until it is cleaned up.  We really need a way to set this globally so all the Neutron tests will use the same mkdtemp location.","commit_id":"987bcbc4226220806af24c78ee5051facb1fa55f"}],"tox.ini":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1f98fec0d2d03418493207ab6a27870955fbe30c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"       -r{toxinidir}/test-requirements.txt"},{"line_number":8,"context_line":"       setuptools_git\u003e\u003d0.4"},{"line_number":9,"context_line":"commands \u003d"},{"line_number":10,"context_line":"  python -m neutron.openstack.common.lockutils python setup.py testr --slowest --testr-args\u003d\u0027{posargs}\u0027"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[tox:jenkins]"},{"line_number":13,"context_line":"sitepackages \u003d True"}],"source_content_type":"text/x-properties","patch_set":16,"id":"AAAATn%2F%2BBfc%3D","line":10,"updated":"2013-12-03 10:58:54.000000000","message":"Why is this change required? I\u0027d like to know the reason for further reviews.","commit_id":"b4d085e6c810d48860a8e900cedaa6100bdc1c1e"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"7958a463e19c5b97eaeb97d13db6c618c4ff2cdf","unresolved":false,"context_lines":[{"line_number":7,"context_line":"       -r{toxinidir}/test-requirements.txt"},{"line_number":8,"context_line":"       setuptools_git\u003e\u003d0.4"},{"line_number":9,"context_line":"commands \u003d"},{"line_number":10,"context_line":"  python -m neutron.openstack.common.lockutils python setup.py testr --slowest --testr-args\u003d\u0027{posargs}\u0027"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[tox:jenkins]"},{"line_number":13,"context_line":"sitepackages \u003d True"}],"source_content_type":"text/x-properties","patch_set":16,"id":"AAAATn%2F%2BBIY%3D","line":10,"in_reply_to":"AAAATn%2F%2BBfc%3D","updated":"2013-12-03 12:44:05.000000000","message":"I corrected the commit message and mentioned the reason there. Take a look at it, please.","commit_id":"b4d085e6c810d48860a8e900cedaa6100bdc1c1e"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"72b589c99ff79b17ad43b8a442765e3fec111990","unresolved":false,"context_lines":[{"line_number":21,"context_line":"commands \u003d python ./tools/check_i18n.py ./neutron ./tools/i18n_cfg.py"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"[testenv:cover]"},{"line_number":24,"context_line":"commands \u003d"},{"line_number":25,"context_line":"  python setup.py testr --coverage --testr-args\u003d\u0027{posargs}\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"[testenv:venv]"}],"source_content_type":"text/x-properties","patch_set":17,"id":"AAAATn%2F96Sw%3D","line":24,"updated":"2013-12-04 15:48:28.000000000","message":"I think we need to add the lockutils wrapper here too.","commit_id":"8bb39f8d57fb6ea1ba4394064ec84d62698ed3a3"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"275f59447efd7e3a20b702d1426208417281c2d1","unresolved":false,"context_lines":[{"line_number":21,"context_line":"commands \u003d python ./tools/check_i18n.py ./neutron ./tools/i18n_cfg.py"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"[testenv:cover]"},{"line_number":24,"context_line":"commands \u003d"},{"line_number":25,"context_line":"  python setup.py testr --coverage --testr-args\u003d\u0027{posargs}\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"[testenv:venv]"}],"source_content_type":"text/x-properties","patch_set":17,"id":"AAAATn%2F9wg0%3D","line":24,"in_reply_to":"AAAATn%2F96Sw%3D","updated":"2013-12-06 10:10:03.000000000","message":"ok, will do","commit_id":"8bb39f8d57fb6ea1ba4394064ec84d62698ed3a3"}]}
