)]}'
{"nova/network/security_group/security_group_base.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e817ee28822407e0464e99ef448bf473cf6b30f4","unresolved":false,"context_lines":[{"line_number":18,"context_line":"#    under the License."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from six.moves import urllib"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from oslo_utils import netutils as utils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from nova import exception"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_730257b6","line":21,"updated":"2016-11-21 11:02:23.000000000","message":"This blank line is not necessary.\nRemove it.","commit_id":"db37f039af6fc7bb5e92b632629e02d5d257f6b6"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"16db14d90831f4a8c1e33b252902dd87f5f79d78","unresolved":false,"context_lines":[{"line_number":18,"context_line":"#    under the License."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from six.moves import urllib"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from oslo_utils import netutils as utils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from nova import exception"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_b193e04e","line":21,"in_reply_to":"7a77a97e_730257b6","updated":"2016-11-22 05:55:51.000000000","message":"Done","commit_id":"db37f039af6fc7bb5e92b632629e02d5d257f6b6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9a04b1db1909e399ade8167b5111112fc2ecb5b9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"#    under the License."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from six.moves import urllib"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from oslo_utils import netutils as utils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from nova import exception"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_462ac02d","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":0},"updated":"2016-11-24 04:11:51.000000000","message":"six and oslo_utils are on the same *3rd-party* group, so they should be on the same block. meaning a blank line 21 is unnecessary.","commit_id":"dcf134f1bb8bbc9778829e51f3c49d2077d55b98"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"41a70f3fd74a8801058d50475fb0d78df2f7869a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from oslo_utils import encodeutils"},{"line_number":21,"context_line":"from six.moves import urllib"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo_utils import netutils as utils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from nova import exception"},{"line_number":26,"context_line":"from nova.i18n import _"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_0543ddb2","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":40},"updated":"2017-01-31 11:37:01.000000000","message":"nit: It should be just after line 20.","commit_id":"bdf0494f16e35efeae3b7ce590051926323d4e74"}],"nova/utils.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e41c8c37c646e870917e344cf2d74034a39e1538","unresolved":false,"context_lines":[{"line_number":537,"context_line":"        return (\u0027\u0027, \u0027\u0027)"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"def is_valid_ipv6_cidr(address):"},{"line_number":541,"context_line":"    try:"},{"line_number":542,"context_line":"        netaddr.IPNetwork(address, version\u003d6).cidr"},{"line_number":543,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a77a97e_b8c81176","line":540,"range":{"start_line":540,"start_character":4,"end_line":540,"end_character":22},"updated":"2016-11-22 12:32:58.000000000","message":"Maybe this method also can be replaced with oslo.utils\u0027s one.","commit_id":"30e4108af387c0cbac78bf4a796bb4f374a2cc71"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cc1278f0405bf682ae579fbd1c19a039384543d2","unresolved":false,"context_lines":[{"line_number":537,"context_line":"        return (\u0027\u0027, \u0027\u0027)"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"def is_valid_ipv6_cidr(address):"},{"line_number":541,"context_line":"    try:"},{"line_number":542,"context_line":"        netaddr.IPNetwork(address, version\u003d6).cidr"},{"line_number":543,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_4cca0ca3","line":540,"range":{"start_line":540,"start_character":4,"end_line":540,"end_character":22},"in_reply_to":"7a77a97e_b8c81176","updated":"2016-11-23 11:29:50.000000000","message":"Done","commit_id":"30e4108af387c0cbac78bf4a796bb4f374a2cc71"}]}
