)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"4486302333c2b48d84f3b670bf6035c63a2e4cf4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Correct failure message output when downloading"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This fixes unreadable output on download image failure."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I51782abd572588adfc62745eeab9c559eb8346dd"},{"line_number":12,"context_line":"Closes-Bug: #1657691"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9a30ddce_d9e9bbb8","line":9,"updated":"2017-03-10 17:54:39.000000000","message":"Please also mention about modifying the exception ImageDownloadError","commit_id":"201f298f695021d80bbeb49eebbe39000d169358"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"79113f19dc68cc3111fd538c944a8f2c15492d86","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Correct failure message output when downloading"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This fixes unreadable output on download image failure."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I51782abd572588adfc62745eeab9c559eb8346dd"},{"line_number":12,"context_line":"Closes-Bug: #1657691"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9a30ddce_6b72b412","line":9,"in_reply_to":"9a30ddce_d9e9bbb8","updated":"2017-03-10 19:19:20.000000000","message":"Done","commit_id":"201f298f695021d80bbeb49eebbe39000d169358"}],"ironic_python_agent/errors.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"3068b967cf22dc40356fe3a5cfb0bda092ad0df1","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    \"\"\"Error raised when an image cannot be downloaded.\"\"\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    message \u003d \u0027Error downloading image\u0027"},{"line_number":143,"context_line":"    secondary_message \u003d None"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def __init__(self, image_id, msg):"},{"line_number":146,"context_line":"        details \u003d \u0027Download of image id {} failed: {}\u0027.format(image_id, msg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_d99b7b64","line":143,"updated":"2017-03-10 17:53:34.000000000","message":"This should not be a class variable. Instance variable is correct way I believe. As this will be different for different raised exceptions.","commit_id":"201f298f695021d80bbeb49eebbe39000d169358"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"79113f19dc68cc3111fd538c944a8f2c15492d86","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    \"\"\"Error raised when an image cannot be downloaded.\"\"\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    message \u003d \u0027Error downloading image\u0027"},{"line_number":143,"context_line":"    secondary_message \u003d None"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def __init__(self, image_id, msg):"},{"line_number":146,"context_line":"        details \u003d \u0027Download of image id {} failed: {}\u0027.format(image_id, msg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_6b1b94ca","line":143,"in_reply_to":"9a30ddce_d99b7b64","updated":"2017-03-10 19:19:20.000000000","message":"Done","commit_id":"201f298f695021d80bbeb49eebbe39000d169358"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"9b2d21ca20b4e4b2d4bdb5d211732404bebe805e","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    message \u003d \u0027Error downloading image\u0027"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def __init__(self, image_id, msg):"},{"line_number":145,"context_line":"        details \u003d \u0027Download of image id {} failed: {}\u0027.format(image_id, msg)"},{"line_number":146,"context_line":"        self.secondary_message \u003d msg"},{"line_number":147,"context_line":"        super(ImageDownloadError, self).__init__(details)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a30ddce_fe16604a","line":145,"updated":"2017-03-10 19:29:55.000000000","message":"nit: I wonder if we should also store \u0027image_id\u0027 :)\n\n self.image_id \u003d image_id","commit_id":"9c2d0cdd85695a6845c359ea28e7197f86936329"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"71889c72e0422cda16ec448e38f9b4602031b1ba","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    message \u003d \u0027Error downloading image\u0027"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def __init__(self, image_id, msg):"},{"line_number":145,"context_line":"        details \u003d \u0027Download of image id {} failed: {}\u0027.format(image_id, msg)"},{"line_number":146,"context_line":"        self.secondary_message \u003d msg"},{"line_number":147,"context_line":"        super(ImageDownloadError, self).__init__(details)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a30ddce_924d559c","line":145,"in_reply_to":"9a30ddce_7218e175","updated":"2017-03-10 22:19:22.000000000","message":"Yes, but I meant as something a user of the caught exception could retrieve from the exception. But I was just thinking random thoughts :)","commit_id":"9c2d0cdd85695a6845c359ea28e7197f86936329"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"61b1e279d5248fb84981fc282649a393203601e1","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    message \u003d \u0027Error downloading image\u0027"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def __init__(self, image_id, msg):"},{"line_number":145,"context_line":"        details \u003d \u0027Download of image id {} failed: {}\u0027.format(image_id, msg)"},{"line_number":146,"context_line":"        self.secondary_message \u003d msg"},{"line_number":147,"context_line":"        super(ImageDownloadError, self).__init__(details)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a30ddce_7218e175","line":145,"in_reply_to":"9a30ddce_fe16604a","updated":"2017-03-10 21:41:00.000000000","message":"IMO, this is redundant, this will be shown in higher level message that will say which image is failed (can be seen in the test)","commit_id":"9c2d0cdd85695a6845c359ea28e7197f86936329"}],"ironic_python_agent/extensions/standby.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e69eb527c8573e2b90e16e5e8a6f0988a25503d2","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            else:"},{"line_number":212,"context_line":"                break"},{"line_number":213,"context_line":"        else:"},{"line_number":214,"context_line":"            details \u003d \u0027; \u0027.join(details)"},{"line_number":215,"context_line":"            msg \u003d (\u0027Image download failed for all URLs with following errors: \u0027"},{"line_number":216,"context_line":"                   \u0027{}\u0027.format(details))"},{"line_number":217,"context_line":"            raise errors.ImageDownloadError(image_info[\u0027id\u0027], msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a30ddce_6ec6549b","line":214,"updated":"2017-03-10 13:14:17.000000000","message":"let\u0027s use \\n as a separator, as we already use ; in the items (see line 205)","commit_id":"d517294239e37e40b94924c77337c8cc9080c648"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"610c264641b8656c28479e9762520105131e1eb3","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            else:"},{"line_number":212,"context_line":"                break"},{"line_number":213,"context_line":"        else:"},{"line_number":214,"context_line":"            details \u003d \u0027; \u0027.join(details)"},{"line_number":215,"context_line":"            msg \u003d (\u0027Image download failed for all URLs with following errors: \u0027"},{"line_number":216,"context_line":"                   \u0027{}\u0027.format(details))"},{"line_number":217,"context_line":"            raise errors.ImageDownloadError(image_info[\u0027id\u0027], msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a30ddce_91e64913","line":214,"in_reply_to":"9a30ddce_6ec6549b","updated":"2017-03-10 14:42:19.000000000","message":"Done","commit_id":"d517294239e37e40b94924c77337c8cc9080c648"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e69eb527c8573e2b90e16e5e8a6f0988a25503d2","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        else:"},{"line_number":214,"context_line":"            details \u003d \u0027; \u0027.join(details)"},{"line_number":215,"context_line":"            msg \u003d (\u0027Image download failed for all URLs with following errors: \u0027"},{"line_number":216,"context_line":"                   \u0027{}\u0027.format(details))"},{"line_number":217,"context_line":"            raise errors.ImageDownloadError(image_info[\u0027id\u0027], msg)"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def _download_file(self, image_info, url):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a30ddce_8ec38888","line":216,"updated":"2017-03-10 13:14:17.000000000","message":"let\u0027s completely drop the text part of the msg, as it\u0027s duplicating what we have in ImageDownloadError already. Just pass details instead of msg into the exception constructor.","commit_id":"d517294239e37e40b94924c77337c8cc9080c648"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"610c264641b8656c28479e9762520105131e1eb3","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        else:"},{"line_number":214,"context_line":"            details \u003d \u0027; \u0027.join(details)"},{"line_number":215,"context_line":"            msg \u003d (\u0027Image download failed for all URLs with following errors: \u0027"},{"line_number":216,"context_line":"                   \u0027{}\u0027.format(details))"},{"line_number":217,"context_line":"            raise errors.ImageDownloadError(image_info[\u0027id\u0027], msg)"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def _download_file(self, image_info, url):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a30ddce_71e9d5e5","line":216,"in_reply_to":"9a30ddce_8ec38888","updated":"2017-03-10 14:42:19.000000000","message":"Done\nAnd erased string in the log, this is too much writing several times same sentence, but in different way :)","commit_id":"d517294239e37e40b94924c77337c8cc9080c648"}],"ironic_python_agent/tests/unit/extensions/test_standby.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e69eb527c8573e2b90e16e5e8a6f0988a25503d2","unresolved":false,"context_lines":[{"line_number":909,"context_line":"        time_mock.return_value \u003d 0.0"},{"line_number":910,"context_line":"        image_info \u003d _build_fake_image_info()"},{"line_number":911,"context_line":"        msg \u003d (\u0027Error downloading image: Download of image id fake_id failed: \u0027"},{"line_number":912,"context_line":"               \u0027Image download failed for all URLs with following errors: \u0027"},{"line_number":913,"context_line":"               \u0027URL: http://example.org; time: 0.0 seconds. \u0027"},{"line_number":914,"context_line":"               \u0027Error: Download of image id fake_id failed: \u0027"},{"line_number":915,"context_line":"               \u0027Received status code 401 from http://example.org, \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a30ddce_4ecd10b6","line":912,"updated":"2017-03-10 13:14:17.000000000","message":"wow, this is ugly :(","commit_id":"d517294239e37e40b94924c77337c8cc9080c648"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"610c264641b8656c28479e9762520105131e1eb3","unresolved":false,"context_lines":[{"line_number":909,"context_line":"        time_mock.return_value \u003d 0.0"},{"line_number":910,"context_line":"        image_info \u003d _build_fake_image_info()"},{"line_number":911,"context_line":"        msg \u003d (\u0027Error downloading image: Download of image id fake_id failed: \u0027"},{"line_number":912,"context_line":"               \u0027Image download failed for all URLs with following errors: \u0027"},{"line_number":913,"context_line":"               \u0027URL: http://example.org; time: 0.0 seconds. \u0027"},{"line_number":914,"context_line":"               \u0027Error: Download of image id fake_id failed: \u0027"},{"line_number":915,"context_line":"               \u0027Received status code 401 from http://example.org, \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a30ddce_67975748","line":912,"in_reply_to":"9a30ddce_4ecd10b6","updated":"2017-03-10 14:42:19.000000000","message":"As we are using ImageDownloadError format twice, did not find a way to get rid of this in not hacky way. Used split\n(I think,  modifying ImageDownloadError class formats is even worse for this patch or it should be another one if it is worth to fix)\n\nSee the next patch how it looks now, is it ok?","commit_id":"d517294239e37e40b94924c77337c8cc9080c648"}]}
