)]}'
{"ironic_python_agent/extensions/standby.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"86a881bd2330b392217cb91c82fd28e8f8f5a80d","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        if algo and algo in hashlib.algorithms_available:"},{"line_number":210,"context_line":"            self._hash_algo \u003d hashlib.new(algo)"},{"line_number":211,"context_line":"            self._expected_hash_value \u003d image_info.get(\u0027os_hash_value\u0027)"},{"line_number":212,"context_line":"        else:"},{"line_number":213,"context_line":"            self._hash_algo \u003d hashlib.md5()"},{"line_number":214,"context_line":"            self._expected_hash_value \u003d image_info[\u0027checksum\u0027]"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        details \u003d []"},{"line_number":217,"context_line":"        for url in image_info[\u0027urls\u0027]:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_5f599c26","line":214,"range":{"start_line":212,"start_character":7,"end_line":214,"end_character":62},"updated":"2018-10-11 10:22:04.000000000","message":"When \u0027os_hash_algo\u0027 and \u0027os_hash_value\u0027 are provided, but if the hash algorithm is not available in the hashlib, it would use \u0027checksum\u0027 property. \nThis assumes that \u0027checksum\u0027 would be always available even when \u0027os_hash_algo\u0027 and \u0027os_hash_value\u0027 are specified. Is this fair assumption that two digest values are provided for validation?","commit_id":"4b1ba80b216979032f5963b44a43bde34b17b16b"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9eea701b4505cc1dce7b5b1e358bfff2efd8afa8","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        if algo and algo in hashlib.algorithms_available:"},{"line_number":210,"context_line":"            self._hash_algo \u003d hashlib.new(algo)"},{"line_number":211,"context_line":"            self._expected_hash_value \u003d image_info.get(\u0027os_hash_value\u0027)"},{"line_number":212,"context_line":"        else:"},{"line_number":213,"context_line":"            self._hash_algo \u003d hashlib.md5()"},{"line_number":214,"context_line":"            self._expected_hash_value \u003d image_info[\u0027checksum\u0027]"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        details \u003d []"},{"line_number":217,"context_line":"        for url in image_info[\u0027urls\u0027]:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_bf0c7044","line":214,"range":{"start_line":212,"start_character":7,"end_line":214,"end_character":62},"in_reply_to":"3f79a3b5_5f599c26","updated":"2018-10-11 11:06:24.000000000","message":"according to the glance spec [1], the checksum is kept for backwards compatibility, so I think it\u0027s a safe fallback.\n\n[1] https://specs.openstack.org/openstack/glance-specs/specs/rocky/approved/glance/multihash.html","commit_id":"4b1ba80b216979032f5963b44a43bde34b17b16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5c3b75d16b646a0752035157c51ec9151790553a","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        algo \u003d image_info.get(\u0027os_hash_algo\u0027)"},{"line_number":209,"context_line":"        if algo and algo in hashlib.algorithms_available:"},{"line_number":210,"context_line":"            self._hash_algo \u003d hashlib.new(algo)"},{"line_number":211,"context_line":"            self._expected_hash_value \u003d image_info.get(\u0027os_hash_value\u0027)"},{"line_number":212,"context_line":"        else:"},{"line_number":213,"context_line":"            self._hash_algo \u003d hashlib.md5()"},{"line_number":214,"context_line":"            self._expected_hash_value \u003d image_info[\u0027checksum\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_8d7d0ee8","line":211,"updated":"2018-10-20 10:07:12.000000000","message":"nit: get() not needed, you already verified that the value is present","commit_id":"ec2bf8667dafaae6ebbf6452d0962505650a8e53"}],"ironic_python_agent/tests/unit/extensions/test_standby.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"86a881bd2330b392217cb91c82fd28e8f8f5a80d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    def test_validate_image_info_success(self):"},{"line_number":69,"context_line":"        standby._validate_image_info(None, _build_fake_image_info())"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def test_validate_image_info_success_with_new_hash_fields(self):"},{"line_number":72,"context_line":"        image_info \u003d _build_fake_image_info()"},{"line_number":73,"context_line":"        image_info[\u0027os_hash_algo\u0027] \u003d \u0027md5\u0027"},{"line_number":74,"context_line":"        image_info[\u0027os_hash_value\u0027] \u003d \u0027fake-checksum\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_7f94988c","line":71,"range":{"start_line":71,"start_character":4,"end_line":71,"end_character":68},"updated":"2018-10-11 10:22:04.000000000","message":"Also need to add a testcase for unsupported hash_algo scenario.","commit_id":"4b1ba80b216979032f5963b44a43bde34b17b16b"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"0fd0beffd1b3200de0a18e8d5b881c86180852a4","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    def test_validate_image_info_success(self):"},{"line_number":69,"context_line":"        standby._validate_image_info(None, _build_fake_image_info())"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def test_validate_image_info_success_with_new_hash_fields(self):"},{"line_number":72,"context_line":"        image_info \u003d _build_fake_image_info()"},{"line_number":73,"context_line":"        image_info[\u0027os_hash_algo\u0027] \u003d \u0027md5\u0027"},{"line_number":74,"context_line":"        image_info[\u0027os_hash_value\u0027] \u003d \u0027fake-checksum\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_07a5ddb3","line":71,"range":{"start_line":71,"start_character":4,"end_line":71,"end_character":68},"in_reply_to":"3f79a3b5_7f94988c","updated":"2018-10-15 09:18:30.000000000","message":"Done","commit_id":"4b1ba80b216979032f5963b44a43bde34b17b16b"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9eea701b4505cc1dce7b5b1e358bfff2efd8afa8","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    def test_validate_image_info_success(self):"},{"line_number":69,"context_line":"        standby._validate_image_info(None, _build_fake_image_info())"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def test_validate_image_info_success_with_new_hash_fields(self):"},{"line_number":72,"context_line":"        image_info \u003d _build_fake_image_info()"},{"line_number":73,"context_line":"        image_info[\u0027os_hash_algo\u0027] \u003d \u0027md5\u0027"},{"line_number":74,"context_line":"        image_info[\u0027os_hash_value\u0027] \u003d \u0027fake-checksum\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_1fc004e0","line":71,"range":{"start_line":71,"start_character":4,"end_line":71,"end_character":68},"in_reply_to":"3f79a3b5_7f94988c","updated":"2018-10-11 11:06:24.000000000","message":"will do","commit_id":"4b1ba80b216979032f5963b44a43bde34b17b16b"}],"releasenotes/notes/enhance-checksum-2256ffdcce13836e.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5c3b75d16b646a0752035157c51ec9151790553a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds enhanced checksum support to IPA, when ``os_hash_algo`` and"},{"line_number":5,"context_line":"    ``os_hash_value`` are passed in via ``image_info``, it will be used"},{"line_number":6,"context_line":"    for image checksum calculation and verification. The md5 checksum"},{"line_number":7,"context_line":"    is supported if these information are absent."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3f79a3b5_ad800ac0","line":7,"updated":"2018-10-20 10:07:12.000000000","message":"nit: \"this information is\"","commit_id":"ec2bf8667dafaae6ebbf6452d0962505650a8e53"}]}
