)]}'
{"ironic_python_agent/errors.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"772ea8ccc402d42392b15ca2a754fdaf074386fa","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    def __init__(self, image_id, image_location, checksum,"},{"line_number":155,"context_line":"                 calculated_checksum):"},{"line_number":156,"context_line":"        details \u003d (\u0027Image failed to verify against checksum. Location: {0}; \u0027"},{"line_number":157,"context_line":"                   \u0027Image ID: {1} image hash: {2}; verification hash: {3}\u0027)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        details \u003d details.format(image_location, image_id, checksum,"},{"line_number":160,"context_line":"                                 calculated_checksum)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_a192fdf4","line":157,"updated":"2015-09-02 06:39:58.000000000","message":"nit: s/hash/checksum/","commit_id":"5e50852acbf6275c8a29f3a1b61620b493b8cef9"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"9c488af3df2ba30bbea57f22a43108f5f7236942","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    def __init__(self, image_id, image_location, checksum,"},{"line_number":155,"context_line":"                 calculated_checksum):"},{"line_number":156,"context_line":"        details \u003d (\u0027Image failed to verify against checksum. Location: {0}; \u0027"},{"line_number":157,"context_line":"                   \u0027Image ID: {1} image hash: {2}; verification hash: {3}\u0027)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        details \u003d details.format(image_location, image_id, checksum,"},{"line_number":160,"context_line":"                                 calculated_checksum)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_aa6a5feb","line":157,"in_reply_to":"da20952f_a192fdf4","updated":"2015-09-17 00:32:12.000000000","message":"Done","commit_id":"5e50852acbf6275c8a29f3a1b61620b493b8cef9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"411848579f6fee2b066937e7adbe6f9691b1649d","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    message \u003d \u0027Error verifying image checksum\u0027"},{"line_number":153,"context_line":"    details_str \u003d (\u0027Image failed to verify against checksum. Location: {0}; \u0027"},{"line_number":154,"context_line":"                   \u0027Image ID: {1} image checksum: {2}; verification hash: {3}\u0027)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def __init__(self, image_id, image_location, checksum,"},{"line_number":157,"context_line":"                 calculated_checksum):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_b6287ae3","line":154,"updated":"2015-09-17 08:49:25.000000000","message":"I would s/hash/checksum/ in the 2nd place as well","commit_id":"4492c3e6e33ca30cc6d2e06aacc1d829f408b795"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"7bc10875085c621eedc6ec1710ff0b85a7a77445","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    message \u003d \u0027Error verifying image checksum\u0027"},{"line_number":153,"context_line":"    details_str \u003d (\u0027Image failed to verify against checksum. Location: {0}; \u0027"},{"line_number":154,"context_line":"                   \u0027Image ID: {1} image checksum: {2}; verification hash: {3}\u0027)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def __init__(self, image_id, image_location, checksum,"},{"line_number":157,"context_line":"                 calculated_checksum):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_1ab775f6","line":154,"in_reply_to":"ba15a1d1_b6287ae3","updated":"2015-09-21 22:54:10.000000000","message":"Gah. Done.","commit_id":"4492c3e6e33ca30cc6d2e06aacc1d829f408b795"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"18a1ee85ec3103e91ca1c11ee00d987c19a8a242","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    message \u003d \u0027Error verifying image checksum\u0027"},{"line_number":153,"context_line":"    details_str \u003d (\u0027Image failed to verify against checksum. Location: {0}; \u0027"},{"line_number":154,"context_line":"                   \u0027Image ID: {1} image checksum: {2}; verification hash: {3}\u0027)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def __init__(self, image_id, image_location, checksum,"},{"line_number":157,"context_line":"                 calculated_checksum):"},{"line_number":158,"context_line":"        details \u003d self.details_str.format(image_location, image_id, checksum,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_e6aa3285","line":155,"updated":"2015-09-21 20:54:29.000000000","message":"some nits here but since that\u0027s the main part of the patch...\n\nI think you want a semi-colon after \u0027Image ID: {1}\u0027 ?\n\nWhy do \u0027Location\u0027 \u0026 \u0027Image ID\u0027 have uppercased first letters, whereas \u0027image checksum\u0027 and \u0027verification hash\u0027 don\u0027t?","commit_id":"4492c3e6e33ca30cc6d2e06aacc1d829f408b795"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"7bc10875085c621eedc6ec1710ff0b85a7a77445","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    message \u003d \u0027Error verifying image checksum\u0027"},{"line_number":153,"context_line":"    details_str \u003d (\u0027Image failed to verify against checksum. Location: {0}; \u0027"},{"line_number":154,"context_line":"                   \u0027Image ID: {1} image checksum: {2}; verification hash: {3}\u0027)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def __init__(self, image_id, image_location, checksum,"},{"line_number":157,"context_line":"                 calculated_checksum):"},{"line_number":158,"context_line":"        details \u003d self.details_str.format(image_location, image_id, checksum,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_da77bd39","line":155,"in_reply_to":"ba15a1d1_e6aa3285","updated":"2015-09-21 22:54:10.000000000","message":"Agreed on the semi colon, umm, no good reason for the upper case, I\u0027ll switch them to lowercase.","commit_id":"4492c3e6e33ca30cc6d2e06aacc1d829f408b795"}],"ironic_python_agent/extensions/standby.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"772ea8ccc402d42392b15ca2a754fdaf074386fa","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    log_msg \u003d (\u0027Image verification failed. Location: {0}; Image ID: {1}\u0027"},{"line_number":178,"context_line":"               \u0027image hash: {2}; verification hash: {3}\u0027.format("},{"line_number":179,"context_line":"               image_location, image_info[\u0027id\u0027], checksum, hash_digest))"},{"line_number":180,"context_line":"    LOG.warning(log_msg)"},{"line_number":181,"context_line":"    raise errors.ImageChecksumError(image_location, image_info[\u0027id\u0027], checksum,"},{"line_number":182,"context_line":"                                    hash_digest)"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_c18ff1ca","line":180,"updated":"2015-09-02 06:39:58.000000000","message":"s/warning/error/ + this logging can go into ImageChecksumError __init__ as you already build exactly the same string there...","commit_id":"5e50852acbf6275c8a29f3a1b61620b493b8cef9"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"9c488af3df2ba30bbea57f22a43108f5f7236942","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    log_msg \u003d (\u0027Image verification failed. Location: {0}; Image ID: {1}\u0027"},{"line_number":178,"context_line":"               \u0027image hash: {2}; verification hash: {3}\u0027.format("},{"line_number":179,"context_line":"               image_location, image_info[\u0027id\u0027], checksum, hash_digest))"},{"line_number":180,"context_line":"    LOG.warning(log_msg)"},{"line_number":181,"context_line":"    raise errors.ImageChecksumError(image_location, image_info[\u0027id\u0027], checksum,"},{"line_number":182,"context_line":"                                    hash_digest)"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_2d1bc974","line":180,"in_reply_to":"da20952f_c18ff1ca","updated":"2015-09-17 00:32:12.000000000","message":"I\u0027m not at all a fan of doing the logging inside the exception handler, just for consistency\u0027s sake. But I think logging a formatted exc.details string is a reasonable compromise.","commit_id":"5e50852acbf6275c8a29f3a1b61620b493b8cef9"}],"ironic_python_agent/tests/unit/extensions/test_standby.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"18a1ee85ec3103e91ca1c11ee00d987c19a8a242","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        response \u003d requests_mock.return_value"},{"line_number":238,"context_line":"        response.status_code \u003d 200"},{"line_number":239,"context_line":"        verify_mock.side_effect \u003d errors.ImageChecksumError("},{"line_number":240,"context_line":"            \u0027foo\u0027, \u0027/bar/foo\u0027, \u0027correct\u0027, \u0027incorrect\u0027)"},{"line_number":241,"context_line":"        self.assertRaises(errors.ImageChecksumError,"},{"line_number":242,"context_line":"                          standby._download_image,"},{"line_number":243,"context_line":"                          image_info)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_262b4aed","line":240,"updated":"2015-09-21 20:54:29.000000000","message":"i would think the calculated checksum would be more \u0027correct\u0027 than the checksum?","commit_id":"4492c3e6e33ca30cc6d2e06aacc1d829f408b795"}],"ironic_python_agent/tests/unit/test_errors.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"18a1ee85ec3103e91ca1c11ee00d987c19a8a242","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                 (errors.ImageDownloadError(\u0027image_id\u0027, DETAILS),"},{"line_number":108,"context_line":"                     DIFF_CL_DETAILS),"},{"line_number":109,"context_line":"                 (errors.ImageChecksumError("},{"line_number":110,"context_line":"                     \u0027image_id\u0027, \u0027/foo/image_id\u0027, \u0027correct\u0027, \u0027incorrect\u0027),"},{"line_number":111,"context_line":"                  DIFF_CL_DETAILS),"},{"line_number":112,"context_line":"                 (errors.ImageWriteError(\u0027device\u0027, \u0027exit_code\u0027, \u0027stdout\u0027,"},{"line_number":113,"context_line":"                                         \u0027stderr\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_0638863c","line":110,"updated":"2015-09-21 20:54:29.000000000","message":"i would think the calculated checksum would be more \u0027correct\u0027 than the checksum?","commit_id":"4492c3e6e33ca30cc6d2e06aacc1d829f408b795"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"7bc10875085c621eedc6ec1710ff0b85a7a77445","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                 (errors.ImageDownloadError(\u0027image_id\u0027, DETAILS),"},{"line_number":108,"context_line":"                     DIFF_CL_DETAILS),"},{"line_number":109,"context_line":"                 (errors.ImageChecksumError("},{"line_number":110,"context_line":"                     \u0027image_id\u0027, \u0027/foo/image_id\u0027, \u0027correct\u0027, \u0027incorrect\u0027),"},{"line_number":111,"context_line":"                  DIFF_CL_DETAILS),"},{"line_number":112,"context_line":"                 (errors.ImageWriteError(\u0027device\u0027, \u0027exit_code\u0027, \u0027stdout\u0027,"},{"line_number":113,"context_line":"                                         \u0027stderr\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_9a72a510","line":110,"in_reply_to":"ba15a1d1_0638863c","updated":"2015-09-21 22:54:10.000000000","message":"Done","commit_id":"4492c3e6e33ca30cc6d2e06aacc1d829f408b795"}]}
