)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ccb1c388d8dc052bf704f4e4bd6dc0366519ab14","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add hacking test to block cross-virt driver code usage"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The baremetal driver has been accesing some libvirt driver"},{"line_number":10,"context_line":"private classes and config variables. Any code that is intended"},{"line_number":11,"context_line":"to be shared across virt drivers should be in a common package"},{"line_number":12,"context_line":"instead. Add a hacking file to enforce this for imports and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAUH%2F9uUY%3D","line":9,"updated":"2014-02-04 16:54:16.000000000","message":"\"accessing\" is missing an \"s\"","commit_id":"830d695a567bd9d5a05a3e4198efca93ade97238"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ccb1c388d8dc052bf704f4e4bd6dc0366519ab14","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Ifbfe597795795a847830f9bd937dc459cd37d118"},{"line_number":21,"context_line":"Closes-Bug: #1261842"},{"line_number":22,"context_line":"Signed-off-by: Daniel P. Berrange \u003cberrange@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAUH%2F9uUA%3D","line":22,"updated":"2014-02-04 16:54:16.000000000","message":"We don\u0027t do SoBs in OpenStack :)","commit_id":"830d695a567bd9d5a05a3e4198efca93ade97238"}],"nova/hacking/checks.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1d6a15d76a8398dfd1ccc7bfee4c3fa844a21857","unresolved":false,"context_lines":[{"line_number":65,"context_line":"def _get_virt_name(regex, data):"},{"line_number":66,"context_line":"    m \u003d regex.match(data)"},{"line_number":67,"context_line":"    if m is None:"},{"line_number":68,"context_line":"        return None"},{"line_number":69,"context_line":"    driver \u003d m.group(1)"},{"line_number":70,"context_line":"    # Ignore things we mis-detect as virt drivers in the regex"},{"line_number":71,"context_line":"    if driver in [\"test_virt_drivers\", \"driver\","}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BJDQ%3D","line":68,"updated":"2014-01-29 19:13:38.000000000","message":"by default None is returned if you just do return","commit_id":"b53100bad0b89e9b24d3793996abe71d4e72031c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0d685ac73aa480a673045586b0283924dc513ef8","unresolved":false,"context_lines":[{"line_number":65,"context_line":"def _get_virt_name(regex, data):"},{"line_number":66,"context_line":"    m \u003d regex.match(data)"},{"line_number":67,"context_line":"    if m is None:"},{"line_number":68,"context_line":"        return None"},{"line_number":69,"context_line":"    driver \u003d m.group(1)"},{"line_number":70,"context_line":"    # Ignore things we mis-detect as virt drivers in the regex"},{"line_number":71,"context_line":"    if driver in [\"test_virt_drivers\", \"driver\","}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BFeM%3D","line":68,"in_reply_to":"AAAAUH%2F%2BJDQ%3D","updated":"2014-01-30 09:49:36.000000000","message":"IMHO if some code paths return an explicit value, then it is preferable that all codepaths return an explicit value.","commit_id":"b53100bad0b89e9b24d3793996abe71d4e72031c"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1d6a15d76a8398dfd1ccc7bfee4c3fa844a21857","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    # Ignore things we mis-detect as virt drivers in the regex"},{"line_number":71,"context_line":"    if driver in [\"test_virt_drivers\", \"driver\","},{"line_number":72,"context_line":"                  \"disk\", \"api\", \"imagecache\", \"cpu\"]:"},{"line_number":73,"context_line":"        return None"},{"line_number":74,"context_line":"    # TODO(berrange): remove once bugs 1261826 and 126182 are"},{"line_number":75,"context_line":"    # fixed, or baremetal driver is removed, which is first."},{"line_number":76,"context_line":"    if driver \u003d\u003d \"baremetal\":"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BJDI%3D","line":73,"updated":"2014-01-29 19:13:38.000000000","message":"ditto","commit_id":"b53100bad0b89e9b24d3793996abe71d4e72031c"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1d6a15d76a8398dfd1ccc7bfee4c3fa844a21857","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    # TODO(berrange): remove once bugs 1261826 and 126182 are"},{"line_number":75,"context_line":"    # fixed, or baremetal driver is removed, which is first."},{"line_number":76,"context_line":"    if driver \u003d\u003d \"baremetal\":"},{"line_number":77,"context_line":"        return None"},{"line_number":78,"context_line":"    return driver"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BJC8%3D","line":77,"updated":"2014-01-29 19:13:38.000000000","message":"ditto","commit_id":"b53100bad0b89e9b24d3793996abe71d4e72031c"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"42586323ae0bc67dbfdb45dc3068db55c3e18fd8","unresolved":false,"context_lines":[{"line_number":19,"context_line":"cfg_re \u003d re.compile(\".*\\scfg\\.\")"},{"line_number":20,"context_line":"vi_header_re \u003d re.compile(\"^#\\s+vim?:.+\")"},{"line_number":21,"context_line":"virt_file_re \u003d re.compile(\"\\./nova/(?:tests/)?virt/(\\w+)/\")"},{"line_number":22,"context_line":"virt_import_re \u003d re.compile(\"from nova\\.(?:tests\\.)?virt\\.(\\w+) import\")"},{"line_number":23,"context_line":"virt_config_re \u003d re.compile(\"CONF\\.import_opt\\(\u0027.*?\u0027, \u0027nova\\.virt\\.(\\w+)(\u0027|.)\")"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9mBg%3D","line":22,"updated":"2014-02-05 19:34:11.000000000","message":"This won\u0027t detect import x.y.z as xyz","commit_id":"848ea5ff01638ddc25e9462860bca45e26cdd3fa"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"323e9c80bb83a876ca328c0bb6074827a6a8b3cf","unresolved":false,"context_lines":[{"line_number":19,"context_line":"cfg_re \u003d re.compile(\".*\\scfg\\.\")"},{"line_number":20,"context_line":"vi_header_re \u003d re.compile(\"^#\\s+vim?:.+\")"},{"line_number":21,"context_line":"virt_file_re \u003d re.compile(\"\\./nova/(?:tests/)?virt/(\\w+)/\")"},{"line_number":22,"context_line":"virt_import_re \u003d re.compile(\"from nova\\.(?:tests\\.)?virt\\.(\\w+) import\")"},{"line_number":23,"context_line":"virt_config_re \u003d re.compile(\"CONF\\.import_opt\\(\u0027.*?\u0027, \u0027nova\\.virt\\.(\\w+)(\u0027|.)\")"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9gvY%3D","line":22,"in_reply_to":"AAAAUH%2F9mBg%3D","updated":"2014-02-06 12:14:21.000000000","message":"Thanks, I\u0027ll submit a followup to catch this case too..","commit_id":"848ea5ff01638ddc25e9462860bca45e26cdd3fa"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"42586323ae0bc67dbfdb45dc3068db55c3e18fd8","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    is to be shared should be refactored into a common"},{"line_number":78,"context_line":"    module"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    N311"},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":"    thisdriver \u003d _get_virt_name(virt_file_re, filename)"},{"line_number":83,"context_line":"    thatdriver \u003d _get_virt_name(virt_import_re, physical_line)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9mCE%3D","line":80,"updated":"2014-02-05 19:34:11.000000000","message":"N311? the message below says N312","commit_id":"848ea5ff01638ddc25e9462860bca45e26cdd3fa"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"323e9c80bb83a876ca328c0bb6074827a6a8b3cf","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    is to be shared should be refactored into a common"},{"line_number":78,"context_line":"    module"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    N311"},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":"    thisdriver \u003d _get_virt_name(virt_file_re, filename)"},{"line_number":83,"context_line":"    thatdriver \u003d _get_virt_name(virt_import_re, physical_line)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9gvI%3D","line":80,"in_reply_to":"AAAAUH%2F9mCE%3D","updated":"2014-02-06 12:14:21.000000000","message":"Rebase error :-( Fixed in https://review.openstack.org/#/c/71502/","commit_id":"848ea5ff01638ddc25e9462860bca45e26cdd3fa"}],"nova/tests/test_hacking.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"943b458c0c9ee1d1a99c11144f70693ec9f13771","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"#    Copyright 2013 Red Hat, Inc."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2BKRI%3D","line":3,"updated":"2014-01-29 15:47:05.000000000","message":"Minor nit, s/2013/2014/.  I\u0027m not sure it really matters though since we know that Copyright lines quickly become inaccurate in a file.","commit_id":"a42ad817e288552820b92ea94706a3edcf71190e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1d6a15d76a8398dfd1ccc7bfee4c3fa844a21857","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"#    Copyright 2014 Red Hat, Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BJB0%3D","line":1,"updated":"2014-01-29 19:13:38.000000000","message":"lines 1 and  are not needed","commit_id":"b53100bad0b89e9b24d3793996abe71d4e72031c"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7b90a1f39d29fef1c13771ee5d1b0c693a5ed754","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"#    Copyright 2014 Red Hat, Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BFZc%3D","line":1,"in_reply_to":"AAAAUH%2F%2BJB0%3D","updated":"2014-01-30 10:16:08.000000000","message":"Some work are be done to remove vim header: \nhttps://review.openstack.org/#/c/69263/ can you remove it?","commit_id":"b53100bad0b89e9b24d3793996abe71d4e72031c"}]}
