)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d715b66dcd08b40e195e9dac7e230608871f822b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c65d0aad_685ba77e","updated":"2024-07-23 14:50:58.000000000","message":"My comment may not be a strict blocker but it would be nice if it\u0027s checked early.","commit_id":"8a0156e43d6ae71953eb7e4f25fe246146489270"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7aa98903f3ef00da8a11a39efe48cf7e57dad40c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1987e5c6_315c9e70","updated":"2024-07-31 17:41:21.000000000","message":"I just applied a test fix for the new failure signaling too late in the series, so the change here is just bringing that back one patch.","commit_id":"b68be957cf82d96cccbbbfc49f4eae30c1470485"}],"oslo_utils/imageutils/format_inspector.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d715b66dcd08b40e195e9dac7e230608871f822b","unresolved":true,"context_lines":[{"line_number":422,"context_line":"            SafetyCheck(\u0027unknown_features\u0027, self.check_unknown_features))"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def region_complete(self, region):"},{"line_number":425,"context_line":"        self.qemu_header_info \u003d dict(zip("},{"line_number":426,"context_line":"            (\u0027magic\u0027, \u0027version\u0027, \u0027bf_offset\u0027, \u0027bf_sz\u0027, \u0027cluster_bits\u0027, \u0027size\u0027),"},{"line_number":427,"context_line":"            struct.unpack(\u0027\u003e4sIQIIQ\u0027, self.region(\u0027header\u0027).data[:32])))"},{"line_number":428,"context_line":"        if not self.format_match:"},{"line_number":429,"context_line":"            self.qemu_header_info \u003d {}"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    @property"},{"line_number":432,"context_line":"    def virtual_size(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"037d8957_84828204","line":429,"range":{"start_line":425,"start_character":0,"end_line":429,"end_character":38},"updated":"2024-07-23 14:50:58.000000000","message":"I wonder if we can check format_match first ?\n\n```\nif not self.format_match:\n   self.qemu_header_info \u003d {}\n   pass\n\nself.qemu_header_info \u003d dict(...)\n````","commit_id":"8a0156e43d6ae71953eb7e4f25fe246146489270"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d88cc12acf6ab43813234e56e863d4ba43796484","unresolved":true,"context_lines":[{"line_number":422,"context_line":"            SafetyCheck(\u0027unknown_features\u0027, self.check_unknown_features))"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def region_complete(self, region):"},{"line_number":425,"context_line":"        self.qemu_header_info \u003d dict(zip("},{"line_number":426,"context_line":"            (\u0027magic\u0027, \u0027version\u0027, \u0027bf_offset\u0027, \u0027bf_sz\u0027, \u0027cluster_bits\u0027, \u0027size\u0027),"},{"line_number":427,"context_line":"            struct.unpack(\u0027\u003e4sIQIIQ\u0027, self.region(\u0027header\u0027).data[:32])))"},{"line_number":428,"context_line":"        if not self.format_match:"},{"line_number":429,"context_line":"            self.qemu_header_info \u003d {}"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    @property"},{"line_number":432,"context_line":"    def virtual_size(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"613d0665_3b4cbe0e","line":429,"range":{"start_line":425,"start_character":0,"end_line":429,"end_character":38},"in_reply_to":"037d8957_84828204","updated":"2024-07-23 16:37:16.000000000","message":"The reason it\u0027s in this order is because `format_match()` uses `qemu_header_info`. If it fails to match, I clear it out to avoid persisting header info with an incorrect magic, etc.\n\nSo no, it\u0027s not easy to just swap this around. If you want me to avoid the set-and-maybe-unset behavior I\u0027ll have to make a different change.","commit_id":"8a0156e43d6ae71953eb7e4f25fe246146489270"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"195d0a48c9fb880211c4232144936cf753a58efa","unresolved":false,"context_lines":[{"line_number":422,"context_line":"            SafetyCheck(\u0027unknown_features\u0027, self.check_unknown_features))"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def region_complete(self, region):"},{"line_number":425,"context_line":"        self.qemu_header_info \u003d dict(zip("},{"line_number":426,"context_line":"            (\u0027magic\u0027, \u0027version\u0027, \u0027bf_offset\u0027, \u0027bf_sz\u0027, \u0027cluster_bits\u0027, \u0027size\u0027),"},{"line_number":427,"context_line":"            struct.unpack(\u0027\u003e4sIQIIQ\u0027, self.region(\u0027header\u0027).data[:32])))"},{"line_number":428,"context_line":"        if not self.format_match:"},{"line_number":429,"context_line":"            self.qemu_header_info \u003d {}"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    @property"},{"line_number":432,"context_line":"    def virtual_size(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"20c627ad_2c901e55","line":429,"range":{"start_line":425,"start_character":0,"end_line":429,"end_character":38},"in_reply_to":"613d0665_3b4cbe0e","updated":"2024-07-29 14:30:00.000000000","message":"OK. Let\u0027s leave it for potential follow-up.","commit_id":"8a0156e43d6ae71953eb7e4f25fe246146489270"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2d63f0fffec688d9fb9489ea77ff8165fc250535","unresolved":true,"context_lines":[{"line_number":426,"context_line":"            (\u0027magic\u0027, \u0027version\u0027, \u0027bf_offset\u0027, \u0027bf_sz\u0027, \u0027cluster_bits\u0027, \u0027size\u0027),"},{"line_number":427,"context_line":"            struct.unpack(\u0027\u003e4sIQIIQ\u0027, self.region(\u0027header\u0027).data[:32])))"},{"line_number":428,"context_line":"        if not self.format_match:"},{"line_number":429,"context_line":"            self.qemu_header_info \u003d {}"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    @property"},{"line_number":432,"context_line":"    def virtual_size(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"a6a6bd5c_b69ffe70","line":429,"updated":"2024-08-01 14:21:55.000000000","message":"nit:\n\nCan\u0027t we just have line 425 inside\nif self.format_match:\n     \nrather than again setting it to empty dict?","commit_id":"b68be957cf82d96cccbbbfc49f4eae30c1470485"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c1f3ccf38c9af60fb6005a8b99fdde85b72a05a4","unresolved":false,"context_lines":[{"line_number":426,"context_line":"            (\u0027magic\u0027, \u0027version\u0027, \u0027bf_offset\u0027, \u0027bf_sz\u0027, \u0027cluster_bits\u0027, \u0027size\u0027),"},{"line_number":427,"context_line":"            struct.unpack(\u0027\u003e4sIQIIQ\u0027, self.region(\u0027header\u0027).data[:32])))"},{"line_number":428,"context_line":"        if not self.format_match:"},{"line_number":429,"context_line":"            self.qemu_header_info \u003d {}"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    @property"},{"line_number":432,"context_line":"    def virtual_size(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"31fb9a1e_814e7efb","line":429,"in_reply_to":"7d7e24c4_34bf499b","updated":"2024-08-01 14:38:54.000000000","message":"Acknowledged","commit_id":"b68be957cf82d96cccbbbfc49f4eae30c1470485"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5870efb4262cdac15bd0e34cf6944d01fe4fafac","unresolved":true,"context_lines":[{"line_number":426,"context_line":"            (\u0027magic\u0027, \u0027version\u0027, \u0027bf_offset\u0027, \u0027bf_sz\u0027, \u0027cluster_bits\u0027, \u0027size\u0027),"},{"line_number":427,"context_line":"            struct.unpack(\u0027\u003e4sIQIIQ\u0027, self.region(\u0027header\u0027).data[:32])))"},{"line_number":428,"context_line":"        if not self.format_match:"},{"line_number":429,"context_line":"            self.qemu_header_info \u003d {}"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    @property"},{"line_number":432,"context_line":"    def virtual_size(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7d7e24c4_34bf499b","line":429,"in_reply_to":"a6a6bd5c_b69ffe70","updated":"2024-08-01 14:25:10.000000000","message":"No, there was a comment about this earlier - `format_match` is a `@property` that needs the `qemu_header_info` to be set. If it fails to match it means that we didn\u0027t really find the QEMU header so this removes it to avoid other things here trying to parse the rest of it.\n\nI\u0027ve noted this is confusing and will circle back and change how this works in a later patch.","commit_id":"b68be957cf82d96cccbbbfc49f4eae30c1470485"}]}
