)]}'
{"nova/crypto.py":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"898faf7c364cfdb0e75f3c6598b7062bf033706b","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    # NOTE(haypo): OpenSSH 6.7 and older doesn\u0027t support the -E option to"},{"line_number":131,"context_line":"    # specify the hash method. First try without -E since most Linux"},{"line_number":132,"context_line":"    # distribution for OpenStack Kilo still use OpenSSH 6.7."},{"line_number":133,"context_line":"    args \u003d (\u0027ssh-keygen\u0027, \u0027-q\u0027, \u0027-l\u0027, \u0027-f\u0027, public_key_file)"},{"line_number":134,"context_line":"    (out, err) \u003d utils.execute(*args)"},{"line_number":135,"context_line":"    fingerprint \u003d out.split(\u0027 \u0027)[1]"},{"line_number":136,"context_line":"    if fingerprint.startswith(\u0027SHA256:\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_d2221452","line":133,"updated":"2015-06-16 20:44:28.000000000","message":"Can you leave this line as it was before, so the change looks cleaner?  Also, I think the comment is best reserved just for the SHA256 case below.","commit_id":"47f776198c646259b8d4ecc00da2c57ec92e3af6"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"de57c3c602cea112dc850fbeb7e975c21af985ba","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    # NOTE(haypo): OpenSSH 6.7 and older doesn\u0027t support the -E option to"},{"line_number":131,"context_line":"    # specify the hash method. First try without -E since most Linux"},{"line_number":132,"context_line":"    # distribution for OpenStack Kilo still use OpenSSH 6.7."},{"line_number":133,"context_line":"    args \u003d (\u0027ssh-keygen\u0027, \u0027-q\u0027, \u0027-l\u0027, \u0027-f\u0027, public_key_file)"},{"line_number":134,"context_line":"    (out, err) \u003d utils.execute(*args)"},{"line_number":135,"context_line":"    fingerprint \u003d out.split(\u0027 \u0027)[1]"},{"line_number":136,"context_line":"    if fingerprint.startswith(\u0027SHA256:\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_5a5607cf","line":133,"in_reply_to":"fa32b979_b24430b7","updated":"2015-06-17 09:58:54.000000000","message":"Hum, I understand that my patch is fine (even if you didn\u0027t vote +1).","commit_id":"47f776198c646259b8d4ecc00da2c57ec92e3af6"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"1c6577378ce31d6c9a781abee9fe2d8ff5d5bca6","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    # NOTE(haypo): OpenSSH 6.7 and older doesn\u0027t support the -E option to"},{"line_number":131,"context_line":"    # specify the hash method. First try without -E since most Linux"},{"line_number":132,"context_line":"    # distribution for OpenStack Kilo still use OpenSSH 6.7."},{"line_number":133,"context_line":"    args \u003d (\u0027ssh-keygen\u0027, \u0027-q\u0027, \u0027-l\u0027, \u0027-f\u0027, public_key_file)"},{"line_number":134,"context_line":"    (out, err) \u003d utils.execute(*args)"},{"line_number":135,"context_line":"    fingerprint \u003d out.split(\u0027 \u0027)[1]"},{"line_number":136,"context_line":"    if fingerprint.startswith(\u0027SHA256:\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_b24430b7","line":133,"in_reply_to":"fa32b979_d2221452","updated":"2015-06-16 20:48:59.000000000","message":"Sorry ignore my first comment.  I missed that you\u0027re using args below.","commit_id":"47f776198c646259b8d4ecc00da2c57ec92e3af6"}],"nova/tests/unit/test_crypto.py":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"887de324a7883afe83232e9ba6f000e7fa70b9b8","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        ]"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        fingerprint \u003d crypto.generate_fingerprint(\u0027public key\u0027)"},{"line_number":280,"context_line":"        self.assertEqual(fingerprint,"},{"line_number":281,"context_line":"                         \u002767:6e:f8:21:5c:b4:d5:95:74:54:e4:9e:f8:63:7d:60\u0027)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        self.assertEqual(len(mock_execute.call_args_list), 2,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_0d3a96cc","line":280,"updated":"2015-07-01 13:44:36.000000000","message":"by openstack convention, order assertEqual(expected, actual)","commit_id":"903146f53a23e5b53798aa4bf16827390ac327ea"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"a545cde43ade771202ec162e5016d5977e3cd082","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        ]"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        fingerprint \u003d crypto.generate_fingerprint(\u0027public key\u0027)"},{"line_number":280,"context_line":"        self.assertEqual(fingerprint,"},{"line_number":281,"context_line":"                         \u002767:6e:f8:21:5c:b4:d5:95:74:54:e4:9e:f8:63:7d:60\u0027)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        self.assertEqual(len(mock_execute.call_args_list), 2,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_a696273d","line":280,"in_reply_to":"ba3cc151_0d3a96cc","updated":"2015-07-01 14:37:27.000000000","message":"Oh, I was not aware of this convention. I don\u0027t see it in \"OpenStack Style Guidelines\":\n\nhttp://docs.openstack.org/developer/hacking/\n\nIt\u0027s now fixed.","commit_id":"903146f53a23e5b53798aa4bf16827390ac327ea"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"887de324a7883afe83232e9ba6f000e7fa70b9b8","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        self.assertEqual(len(mock_execute.call_args_list), 2,"},{"line_number":284,"context_line":"                         mock_execute.call_args)"},{"line_number":285,"context_line":"        self.assertEqual(mock_execute.call_args_list[0],"},{"line_number":286,"context_line":"                         [(\u0027ssh-keygen\u0027, \u0027-q\u0027, \u0027-l\u0027, \u0027-f\u0027, mock.ANY)])"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    @mock.patch.object(utils, \u0027execute\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_ad328af0","line":285,"updated":"2015-07-01 13:44:36.000000000","message":"by openstack convention, order assertEqual(expected, actual)","commit_id":"903146f53a23e5b53798aa4bf16827390ac327ea"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"887de324a7883afe83232e9ba6f000e7fa70b9b8","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        ]"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        fingerprint \u003d crypto.generate_fingerprint(\u0027public key\u0027)"},{"line_number":301,"context_line":"        self.assertEqual(fingerprint,"},{"line_number":302,"context_line":"                         \u0027b7:7d:ca:d5:31:9c:27:c6:b4:60:b2:d0:fa:0d:b4:9d\u0027)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        self.assertEqual(len(mock_execute.call_args_list), 2,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_1a0c0a40","line":301,"updated":"2015-07-01 13:44:36.000000000","message":"by openstack convention, order assertEqual(expected, actual)","commit_id":"903146f53a23e5b53798aa4bf16827390ac327ea"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"887de324a7883afe83232e9ba6f000e7fa70b9b8","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        self.assertEqual(len(mock_execute.call_args_list), 2,"},{"line_number":305,"context_line":"                         mock_execute.call_args)"},{"line_number":306,"context_line":"        self.assertEqual(mock_execute.call_args_list[0],"},{"line_number":307,"context_line":"                         [(\u0027ssh-keygen\u0027, \u0027-q\u0027, \u0027-l\u0027, \u0027-f\u0027, mock.ANY)])"},{"line_number":308,"context_line":"        self.assertEqual(mock_execute.call_args_list[1],"},{"line_number":309,"context_line":"                         [(\u0027ssh-keygen\u0027, \u0027-q\u0027, \u0027-l\u0027, \u0027-f\u0027, mock.ANY,"},{"line_number":310,"context_line":"                           \u0027-E\u0027, \u0027md5\u0027)])"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_2d1e7a5f","line":307,"updated":"2015-07-01 13:44:36.000000000","message":"by openstack convention, order assertEqual(expected, actual)","commit_id":"903146f53a23e5b53798aa4bf16827390ac327ea"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"887de324a7883afe83232e9ba6f000e7fa70b9b8","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        self.assertEqual(mock_execute.call_args_list[0],"},{"line_number":307,"context_line":"                         [(\u0027ssh-keygen\u0027, \u0027-q\u0027, \u0027-l\u0027, \u0027-f\u0027, mock.ANY)])"},{"line_number":308,"context_line":"        self.assertEqual(mock_execute.call_args_list[1],"},{"line_number":309,"context_line":"                         [(\u0027ssh-keygen\u0027, \u0027-q\u0027, \u0027-l\u0027, \u0027-f\u0027, mock.ANY,"},{"line_number":310,"context_line":"                           \u0027-E\u0027, \u0027md5\u0027)])"},{"line_number":311,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_ed3c12ca","line":309,"updated":"2015-07-01 13:44:36.000000000","message":"by openstack convention, order assertEqual(expected, actual)","commit_id":"903146f53a23e5b53798aa4bf16827390ac327ea"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"887de324a7883afe83232e9ba6f000e7fa70b9b8","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        self.assertEqual(mock_execute.call_args_list[1],"},{"line_number":309,"context_line":"                         [(\u0027ssh-keygen\u0027, \u0027-q\u0027, \u0027-l\u0027, \u0027-f\u0027, mock.ANY,"},{"line_number":310,"context_line":"                           \u0027-E\u0027, \u0027md5\u0027)])"},{"line_number":311,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_7a33d614","line":311,"updated":"2015-07-01 13:44:36.000000000","message":"This blank line is your pep8 error","commit_id":"903146f53a23e5b53798aa4bf16827390ac327ea"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"a545cde43ade771202ec162e5016d5977e3cd082","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        self.assertEqual(mock_execute.call_args_list[1],"},{"line_number":309,"context_line":"                         [(\u0027ssh-keygen\u0027, \u0027-q\u0027, \u0027-l\u0027, \u0027-f\u0027, mock.ANY,"},{"line_number":310,"context_line":"                           \u0027-E\u0027, \u0027md5\u0027)])"},{"line_number":311,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_669c9f5d","line":311,"in_reply_to":"ba3cc151_7a33d614","updated":"2015-07-01 14:37:27.000000000","message":"Done","commit_id":"903146f53a23e5b53798aa4bf16827390ac327ea"}]}
