)]}'
{"octavia/certificates/common/barbican.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"bd801e96f94a1f165048475d9403417d619b57fe","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from oslo.utils import excutils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from octavia.certificates.common import cert"},{"line_number":27,"context_line":"from octavia.i18n import _LE"},{"line_number":28,"context_line":"from octavia.openstack.common import log as logging"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_35ad2b9c","line":27,"updated":"2014-12-02 18:53:31.000000000","message":"im surprised this passes hacking rules.  I feel like this would be better:\n\nfrom octavia import i18n\n\nbut if import _LE directly is a standard in openstack, obviously I\u0027d be fine with it.","commit_id":"1230562f94df1032fd50e21f28cf6e5488aab0ee"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"bd952d21c89d84414fdd38510860e984319f28de","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from oslo.utils import excutils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from octavia.certificates.common import cert"},{"line_number":27,"context_line":"from octavia.i18n import _LE"},{"line_number":28,"context_line":"from octavia.openstack.common import log as logging"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_b5703b09","line":27,"in_reply_to":"5a890539_35ad2b9c","updated":"2014-12-02 18:56:12.000000000","message":"Yep, importing directly is the norm for those.","commit_id":"1230562f94df1032fd50e21f28cf6e5488aab0ee"}],"octavia/certificates/generator/__init__.py":[{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"145b445c6420a2b69eb882dbf847f232f2c58709","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo.config import cfg"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from octavia.openstack.common import importutils"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"certgen_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_3a435814","side":"PARENT","line":17,"updated":"2014-12-02 18:28:28.000000000","message":"nit: Do we need the extra new line?","commit_id":"5ee80243163522818ca30e13c0a1ea557a91b750"}],"octavia/certificates/generator/local.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"bd801e96f94a1f165048475d9403417d619b57fe","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from octavia.certificates.generator import cert_gen"},{"line_number":22,"context_line":"from octavia.common import exceptions"},{"line_number":23,"context_line":"from octavia.i18n import _LE, _LI"},{"line_number":24,"context_line":"from octavia.openstack.common import log as logging"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_f5948338","line":23,"updated":"2014-12-02 18:53:31.000000000","message":"same comments as previous file","commit_id":"1230562f94df1032fd50e21f28cf6e5488aab0ee"}],"octavia/certificates/manager/__init__.py":[{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"145b445c6420a2b69eb882dbf847f232f2c58709","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo.config import cfg"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from octavia.openstack.common import importutils"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"certmgr_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_fa6390ae","side":"PARENT","line":17,"updated":"2014-12-02 18:28:28.000000000","message":"Nit: Do we need the new line?","commit_id":"5ee80243163522818ca30e13c0a1ea557a91b750"}],"octavia/common/config.py":[{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"145b445c6420a2b69eb882dbf847f232f2c58709","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from oslo import messaging"},{"line_number":23,"context_line":"# from paste import deploy"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from octavia.common import utils"},{"line_number":26,"context_line":"from octavia.openstack.common import log as logging"},{"line_number":27,"context_line":"from octavia import version"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_5aa3c49d","side":"PARENT","line":25,"updated":"2014-12-02 18:28:28.000000000","message":"nit: extra new line","commit_id":"5ee80243163522818ca30e13c0a1ea557a91b750"}],"octavia/hacking/checks.py":[{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"e650d799d0fe12dd1fb1edae8517954d5f62ebaf","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            \"neutron/plugins/openvswitch\","},{"line_number":79,"context_line":"            \"neutron/plugins/linuxbridge\","},{"line_number":80,"context_line":"            \"neutron/plugins/vmware\","},{"line_number":81,"context_line":"            \"neutron/plugins/mlnx\"]"},{"line_number":82,"context_line":"    return any([dir in filename for dir in dirs])"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_60f2aa9c","line":81,"updated":"2014-12-02 05:34:49.000000000","message":"Should be updated to list Octavia directories. :)","commit_id":"f9796162da074285648b158ee48d3441bdff22f3"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"34eb049f0208f2961699828c47b1c19b11a7b191","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\"\"\""},{"line_number":20,"context_line":"Guidelines for writing new hacking checks"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":" - Use only for Neutron specific tests. OpenStack general tests"},{"line_number":23,"context_line":"   should be submitted to the common \u0027hacking\u0027 module."},{"line_number":24,"context_line":" - Pick numbers in the range N3xx. Find the current test with"},{"line_number":25,"context_line":"   the highest allocated number and then pick the next value."}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_20eb4279","line":22,"updated":"2014-12-02 05:44:42.000000000","message":"Should probably say \"Octavia\" instead of Neutron here, even though this is clearly based on best practices.)","commit_id":"4e1bf11438917d4f5c9d12fa267de3a5d6097404"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"34eb049f0208f2961699828c47b1c19b11a7b191","unresolved":false,"context_lines":[{"line_number":27,"context_line":"   on the N3xx value."},{"line_number":28,"context_line":" - List the new rule in the top level HACKING.rst file"},{"line_number":29,"context_line":" - Add test cases for each new rule to"},{"line_number":30,"context_line":"   neutron/tests/unit/test_hacking.py"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"\"\"\""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_80e4f6ac","line":30,"updated":"2014-12-02 05:44:42.000000000","message":"octavia/tests/rest/of/path","commit_id":"4e1bf11438917d4f5c9d12fa267de3a5d6097404"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"34eb049f0208f2961699828c47b1c19b11a7b191","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"def validate_log_translations(logical_line, physical_line, filename):"},{"line_number":63,"context_line":"    # Translations are not required in the test directory"},{"line_number":64,"context_line":"    if \"neutron/tests\" in filename:"},{"line_number":65,"context_line":"        return"},{"line_number":66,"context_line":"    if pep8.noqa(physical_line):"},{"line_number":67,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_a04812b4","line":64,"updated":"2014-12-02 05:44:42.000000000","message":"octavia/tests","commit_id":"4e1bf11438917d4f5c9d12fa267de3a5d6097404"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"34eb049f0208f2961699828c47b1c19b11a7b191","unresolved":false,"context_lines":[{"line_number":79,"context_line":"def use_jsonutils(logical_line, filename):"},{"line_number":80,"context_line":"    msg \u003d \"N321: jsonutils.%(fun)s must be used instead of json.%(fun)s\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    # Some files in the tree are not meant to be run from inside Neutron"},{"line_number":83,"context_line":"    # itself, so we should not complain about them not using jsonutils"},{"line_number":84,"context_line":"    json_check_skipped_patterns \u003d ["},{"line_number":85,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_40012e38","line":82,"updated":"2014-12-02 05:44:42.000000000","message":"Octavia","commit_id":"4e1bf11438917d4f5c9d12fa267de3a5d6097404"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"19db058003f9cefd48d0aefb5e0c852ac0ab273b","unresolved":false,"context_lines":[{"line_number":24,"context_line":" - Pick numbers in the range N3xx. Find the current test with"},{"line_number":25,"context_line":"   the highest allocated number and then pick the next value."},{"line_number":26,"context_line":" - Keep the test method code in the source file ordered based"},{"line_number":27,"context_line":"   on the N3xx value."},{"line_number":28,"context_line":" - List the new rule in the top level HACKING.rst file"},{"line_number":29,"context_line":" - Add test cases for each new rule to"},{"line_number":30,"context_line":"   octavia/tests/unit/test_hacking.py"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_4bc86f75","line":27,"updated":"2014-12-02 06:28:18.000000000","message":"Should these maybe be O3xx to not conflict with the Neutron namespace (which I am assuming the \u0027N\u0027 stands for), or do we not even care? \u003e_\u003e","commit_id":"9d1ac7592fab37c695e6b83ff6e8ffcafb4dfbb2"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"49a18b6ab5f6de5928639febd5290fe6abde02b7","unresolved":false,"context_lines":[{"line_number":24,"context_line":" - Pick numbers in the range N3xx. Find the current test with"},{"line_number":25,"context_line":"   the highest allocated number and then pick the next value."},{"line_number":26,"context_line":" - Keep the test method code in the source file ordered based"},{"line_number":27,"context_line":"   on the N3xx value."},{"line_number":28,"context_line":" - List the new rule in the top level HACKING.rst file"},{"line_number":29,"context_line":" - Add test cases for each new rule to"},{"line_number":30,"context_line":"   octavia/tests/unit/test_hacking.py"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_5f09f62f","line":27,"in_reply_to":"5a890539_4bc86f75","updated":"2014-12-02 18:11:53.000000000","message":"Done","commit_id":"9d1ac7592fab37c695e6b83ff6e8ffcafb4dfbb2"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"19db058003f9cefd48d0aefb5e0c852ac0ab273b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        return"},{"line_number":66,"context_line":"    if pep8.noqa(physical_line):"},{"line_number":67,"context_line":"        return"},{"line_number":68,"context_line":"    msg \u003d \"N320: Log messages require translations!\""},{"line_number":69,"context_line":"    if log_translation.match(logical_line):"},{"line_number":70,"context_line":"        yield (0, msg)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_cba37faf","line":68,"updated":"2014-12-02 06:28:18.000000000","message":"As per above, O320 ? ... and a bunch of other places below this too but I\u0027m not going to make a comment on all of them.","commit_id":"9d1ac7592fab37c695e6b83ff6e8ffcafb4dfbb2"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"49a18b6ab5f6de5928639febd5290fe6abde02b7","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        return"},{"line_number":66,"context_line":"    if pep8.noqa(physical_line):"},{"line_number":67,"context_line":"        return"},{"line_number":68,"context_line":"    msg \u003d \"N320: Log messages require translations!\""},{"line_number":69,"context_line":"    if log_translation.match(logical_line):"},{"line_number":70,"context_line":"        yield (0, msg)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_1f14ce4b","line":68,"in_reply_to":"5a890539_cba37faf","updated":"2014-12-02 18:11:53.000000000","message":"Done","commit_id":"9d1ac7592fab37c695e6b83ff6e8ffcafb4dfbb2"}],"octavia/openstack/common/cache/cache.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"19db058003f9cefd48d0aefb5e0c852ac0ab273b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    parameters \u003d parse.parse_qsl(query)"},{"line_number":86,"context_line":"    kwargs \u003d {\u0027options\u0027: dict(parameters)}"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    mgr \u003d driver.DriverManager(\u0027octavia.openstack.common.cache.backends\u0027, backend,"},{"line_number":89,"context_line":"                               invoke_on_load\u003dTrue,"},{"line_number":90,"context_line":"                               invoke_args\u003d[parsed],"},{"line_number":91,"context_line":"                               invoke_kwds\u003dkwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_2b7b232a","line":88,"updated":"2014-12-02 06:28:18.000000000","message":"Why change this linebreak? :/","commit_id":"9d1ac7592fab37c695e6b83ff6e8ffcafb4dfbb2"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"49a18b6ab5f6de5928639febd5290fe6abde02b7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    parameters \u003d parse.parse_qsl(query)"},{"line_number":86,"context_line":"    kwargs \u003d {\u0027options\u0027: dict(parameters)}"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    mgr \u003d driver.DriverManager(\u0027octavia.openstack.common.cache.backends\u0027, backend,"},{"line_number":89,"context_line":"                               invoke_on_load\u003dTrue,"},{"line_number":90,"context_line":"                               invoke_args\u003d[parsed],"},{"line_number":91,"context_line":"                               invoke_kwds\u003dkwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_ff69c2f8","line":88,"in_reply_to":"5a890539_2b7b232a","updated":"2014-12-02 18:11:53.000000000","message":"This file is owned by oslo-incubator.  I didn\u0027t touch it, nor will I.","commit_id":"9d1ac7592fab37c695e6b83ff6e8ffcafb4dfbb2"}]}
