)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ef7be1916ed93a9a208ae23d35e37463ea8b3a75","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove vim headers 2nd round"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We don\u0027t need to have the vim headers in each source files."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I347307a5145b2760c69085b6ca850d6a9137ffc6"},{"line_number":12,"context_line":"Closes-Bug: #1229324"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAUH%2F%2BRAc%3D","line":9,"updated":"2014-01-28 15:10:29.000000000","message":"I think there was a mailing list thread on this, please link that in here which points out the agreement to remove these in the projects.","commit_id":"3688d63de543b69350e09ce44fe00440ec5f80a6"}],"nova/cert/__init__.py":[{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"be147aaeafa04f643a35b18dd5e62f08a2445505","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 2012 OpenStack Foundation"},{"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":13,"id":"AAAAUH%2F92IY%3D","side":"PARENT","line":3,"updated":"2014-02-03 11:43:50.000000000","message":"Don\u0027t delete copyright","commit_id":"3e5a08e4210ab079d2938a01cc435be88f09bc71"}],"nova/conductor/tasks/__init__.py":[{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"be147aaeafa04f643a35b18dd5e62f08a2445505","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUH%2F92IM%3D","side":"PARENT","line":1,"updated":"2014-02-03 11:43:50.000000000","message":"Don\u0027t delete copyright","commit_id":"3e5a08e4210ab079d2938a01cc435be88f09bc71"}],"nova/db/sqlalchemy/migrate_repo/__init__.py":[{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"be147aaeafa04f643a35b18dd5e62f08a2445505","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 2012 OpenStack Foundation"},{"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":13,"id":"AAAAUH%2F92II%3D","side":"PARENT","line":3,"updated":"2014-02-03 11:43:50.000000000","message":"Don\u0027t delete copyright","commit_id":"3e5a08e4210ab079d2938a01cc435be88f09bc71"}],"nova/hacking/checks.py":[{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"b25bd91efb7cd9883d46d750ca76412fbd2c8d32","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"def no_vim_headers(physical_line):"},{"line_number":64,"context_line":"    msg \u003d \"N123: Don\u0027t put vim configuration in source files\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    if vim_header_re.match(physical_line):"},{"line_number":67,"context_line":"        return 0, msg"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BLIc%3D","line":64,"updated":"2014-01-29 13:02:34.000000000","message":"I don\u0027t know where the registry of these codes is.  There\u0027s some suggestion at https://github.com/openstack-dev/hacking/blob/master/hacking/core.py#L54 but N123 was chosen arbitrarily.","commit_id":"4f0141f8a2e1fa61de765d0df39e7e9f1e6ffbdc"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"97f4faa815af9202da5afb5e1a1d0ebcd0c71890","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"def no_vim_headers(physical_line):"},{"line_number":64,"context_line":"    msg \u003d \"N123: Don\u0027t put vim configuration in source files\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    if vim_header_re.match(physical_line):"},{"line_number":67,"context_line":"        return 0, msg"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BLAk%3D","line":64,"in_reply_to":"AAAAUH%2F%2BLIc%3D","updated":"2014-01-29 13:18:22.000000000","message":"I don\u0027t believe there is any registry or numbering scheme for the nova specific hacking rules. I think you are fine to pick an arbitrary free number after the N prefix.","commit_id":"4f0141f8a2e1fa61de765d0df39e7e9f1e6ffbdc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fd285606fb828aebfd2809edf5595a6915caed3e","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    msg \u003d \"N123: Don\u0027t put vim configuration in source files\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    if vim_header_re.match(physical_line):"},{"line_number":67,"context_line":"        return 0, msg"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def factory(register):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2BKkM%3D","line":67,"updated":"2014-01-29 15:00:14.000000000","message":"I\u0027m no expert here, but why isn\u0027t this yield(0, msg) like the other checks?\n\nAlso, newbie question on this type of code, but where is N123 defined?  Google failed me.","commit_id":"c89e2a1490cc7797c75140cc26521b0ab30d95f0"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0de1ee0bdba967bfb469a45eee6eab0c01e74da2","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    msg \u003d \"N123: Don\u0027t put vim configuration in source files\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    if vim_header_re.match(physical_line):"},{"line_number":67,"context_line":"        return 0, msg"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def factory(register):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2BKiE%3D","line":67,"in_reply_to":"AAAAUH%2F%2BKkM%3D","updated":"2014-01-29 15:05:50.000000000","message":"It is just wierdness with flake8 - if you use \u0027physical_line\u0027 you must have a single \u0027return\u0027 statement, whereas with \u0027logical_line\u0027 you  must have one or more yield statements. No idea why, but it crashes \u0026 burns if you get this wrong.\n\nThere\u0027s no external definition of Nxxxx numbers - they\u0027re arbitrarily allocated by the people writing checks in this file as needed.","commit_id":"c89e2a1490cc7797c75140cc26521b0ab30d95f0"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"3f79fe83dbc9a3417954a8ac4054456016d1b417","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    msg \u003d \"N123: Don\u0027t put vim configuration in source files\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    if vim_header_re.match(physical_line):"},{"line_number":67,"context_line":"        return 0, msg"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def factory(register):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2BKf8%3D","line":67,"in_reply_to":"AAAAUH%2F%2BKkM%3D","updated":"2014-01-29 15:12:11.000000000","message":"The yield/return inconsistency is due to pep8.py where physical line checks are expected to return a single result (https://github.com/jcrocholl/pep8/blob/master/pep8.py#L1267) whereas logical line checks return many (https://github.com/jcrocholl/pep8/blob/master/pep8.py#L1327).  I don\u0027t know exactly why pep8.py does that.  The type of check performed is determined by introspecting the name of the argument (!)\n\nThere was a discussion about N123 in PatchSet 5.  There isn\u0027t a definition or registry so I just chose something that was not already in use.","commit_id":"c89e2a1490cc7797c75140cc26521b0ab30d95f0"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"ae381b655b9861b55f6925fd58bd485cc18c7607","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"session_check \u003d re.compile(\"\\w*def [a-zA-Z0-9].*[(].*session.*[)]\")"},{"line_number":19,"context_line":"cfg_re \u003d re.compile(\".*\\scfg\\.\")"},{"line_number":20,"context_line":"vim_header_re \u003d re.compile(\"^#.*vim:\")"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def import_no_db_in_virt(logical_line, filename):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2BB5A%3D","line":20,"updated":"2014-01-30 20:53:47.000000000","message":"this will catch:\n\n#vim:\n\neven though that isn\u0027t a valid vim modeline.","commit_id":"bf60c08883a1181d6c6924df7fc725f79be73a02"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"c6938a30bd1dd26e919930dba2d73003e405916f","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"session_check \u003d re.compile(\"\\w*def [a-zA-Z0-9].*[(].*session.*[)]\")"},{"line_number":19,"context_line":"cfg_re \u003d re.compile(\".*\\scfg\\.\")"},{"line_number":20,"context_line":"vim_header_re \u003d re.compile(\"^#.*vim:\")"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def import_no_db_in_virt(logical_line, filename):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F9%2FkU%3D","line":20,"in_reply_to":"AAAAUH%2F%2BB5A%3D","updated":"2014-01-31 08:34:14.000000000","message":"I\u0027ll enhance this","commit_id":"bf60c08883a1181d6c6924df7fc725f79be73a02"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"ae381b655b9861b55f6925fd58bd485cc18c7607","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    msg \u003d \"N123: Don\u0027t put vim configuration in source files\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    if vim_header_re.match(physical_line):"},{"line_number":67,"context_line":"        return 0, msg"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def factory(register):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2BB3g%3D","line":67,"updated":"2014-01-30 20:53:47.000000000","message":"vim modelines by default can only be found in the first and last 5 lines of a file.  checking each line with a an regex is just extra work.","commit_id":"bf60c08883a1181d6c6924df7fc725f79be73a02"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"c6938a30bd1dd26e919930dba2d73003e405916f","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    msg \u003d \"N123: Don\u0027t put vim configuration in source files\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    if vim_header_re.match(physical_line):"},{"line_number":67,"context_line":"        return 0, msg"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def factory(register):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2BBoY%3D","line":67,"in_reply_to":"AAAAUH%2F%2BB3g%3D","updated":"2014-01-31 08:34:14.000000000","message":"Thanks Joe - I\u0027ll update this check.","commit_id":"bf60c08883a1181d6c6924df7fc725f79be73a02"}],"nova/network/security_group/__init__.py":[{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"be147aaeafa04f643a35b18dd5e62f08a2445505","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 Nicira, Inc."},{"line_number":4,"context_line":"# All Rights Reserved"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUH%2F92IA%3D","side":"PARENT","line":3,"updated":"2014-02-03 11:43:50.000000000","message":"Don\u0027t delete copyright","commit_id":"3e5a08e4210ab079d2938a01cc435be88f09bc71"}],"nova/storage/__init__.py":[{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"be147aaeafa04f643a35b18dd5e62f08a2445505","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 (c) 2013 Hewlett-Packard, 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":13,"id":"AAAAUH%2F92H4%3D","side":"PARENT","line":3,"updated":"2014-02-03 11:43:50.000000000","message":"Don\u0027t delete copyright","commit_id":"3e5a08e4210ab079d2938a01cc435be88f09bc71"}],"nova/tests/api/ec2/test_faults.py":[{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"05f2af3c9f298e7997aa40e2d681e617bd48bb7d","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F9%2FJc%3D","line":1,"updated":"2014-01-31 10:19:18.000000000","message":"can you remove this empty line, please?","commit_id":"1e21616880998a1a1e8e099af5f3f06cbe2ae8f9"}],"nova/tests/api/openstack/compute/contrib/test_disk_config.py":[{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"05f2af3c9f298e7997aa40e2d681e617bd48bb7d","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F9%2FI4%3D","line":1,"updated":"2014-01-31 10:19:18.000000000","message":"can you remove this empty lines?","commit_id":"1e21616880998a1a1e8e099af5f3f06cbe2ae8f9"}]}
