)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"32ec5a9a408bbd8e10b0581eb4bdf642cc9379c4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix revert a volume from a snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"when we revert a volume from a snapshot, using snapshot.metadata in cinder.volume.utils.py will"},{"line_number":10,"context_line":"result in this error:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"  AttributeError: \u0027Snapshot\u0027 object has no attribute \u0027_obj_metadata\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_57e3aa9f","line":9,"range":{"start_line":9,"start_character":68,"end_line":9,"end_character":95},"updated":"2018-12-06 19:36:28.000000000","message":"please wrap this long line.","commit_id":"a3c7635d16a3fcc26df4ddce31cac2180e6bc169"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"597f4ea5bc154d3043224a982cd6809585c85bf6","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"  AttributeError: \u0027Snapshot\u0027 object has no attribute \u0027_obj_metadata\u0027"},{"line_number":13,"context_line":"here, appending \u0027metadata\u0027 to usage_info is meaningless"},{"line_number":14,"context_line":"Therefore, we delete \u0027metadata\u0027 while reverting."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I6eed3b11dd249429f1e1b72304535fa1d2be0a2d"},{"line_number":17,"context_line":"Closes-Bug: #1805790"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_2904d912","line":14,"range":{"start_line":14,"start_character":11,"end_line":14,"end_character":48},"updated":"2018-12-04 12:40:26.000000000","message":"This method is not only called when reverting snapshot.","commit_id":"a3c7635d16a3fcc26df4ddce31cac2180e6bc169"}],"cinder/volume/utils.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a2641a9f6428727b7820566b09339e4b4f84417a","unresolved":false,"context_lines":[{"line_number":178,"context_line":"    # volume, if that\u0027s the case, the volume information is still"},{"line_number":179,"context_line":"    # required for filling the usage_info, so we enforce to read"},{"line_number":180,"context_line":"    # the volume data even if the volume has been deleted."},{"line_number":181,"context_line":"    context.read_deleted \u003d \"yes\""},{"line_number":182,"context_line":"    volume \u003d db.volume_get(context, snapshot.volume_id)"},{"line_number":183,"context_line":"    usage_info \u003d {"},{"line_number":184,"context_line":"        \u0027tenant_id\u0027: snapshot.project_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_9bda5346","line":181,"range":{"start_line":181,"start_character":4,"end_line":181,"end_character":32},"updated":"2018-11-30 11:06:33.000000000","message":"This would also be potentially dangerous as some admin cleanup databases from time to time to increase performance.","commit_id":"a3c7635d16a3fcc26df4ddce31cac2180e6bc169"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"e67848ef31b9e054801547a7c4fd99d3951d3ebd","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        \u0027created_at\u0027: snapshot.created_at.isoformat(),"},{"line_number":192,"context_line":"        \u0027status\u0027: snapshot.status,"},{"line_number":193,"context_line":"        \u0027deleted\u0027: null_safe_str(snapshot.deleted),"},{"line_number":194,"context_line":"    }"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    usage_info.update(extra_usage_info)"},{"line_number":197,"context_line":"    return usage_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_c6575228","line":194,"updated":"2018-12-04 12:38:49.000000000","message":"I think we shouldn\u0027t remove it directly, it removes metadata from all usage info that means we change the snapshot notify format, and break the compatible.\n\nAnd the right way is that we should figure out why this metadata is unfilled in your case and then fill the meaningful data in it.","commit_id":"a3c7635d16a3fcc26df4ddce31cac2180e6bc169"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"78c9d0ff504a4063fad866063378cf52993137d9","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        \u0027created_at\u0027: snapshot.created_at.isoformat(),"},{"line_number":192,"context_line":"        \u0027status\u0027: snapshot.status,"},{"line_number":193,"context_line":"        \u0027deleted\u0027: null_safe_str(snapshot.deleted),"},{"line_number":194,"context_line":"    }"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    usage_info.update(extra_usage_info)"},{"line_number":197,"context_line":"    return usage_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_4569dc1e","line":194,"in_reply_to":"3f79a3b5_c6575228","updated":"2019-01-28 16:30:51.000000000","message":"I think this was broken here:\n    https://review.openstack.org/#/c/198341/14/cinder/volume/utils.py\n\nThis should be\n    \u0027metadata\u0027: null_safe_str(snapshot.get(metadata))\n\nas far as I can tell.","commit_id":"a3c7635d16a3fcc26df4ddce31cac2180e6bc169"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"7099285ca87c3d6cde9cdc30a16b461c5f6dd287","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        \u0027created_at\u0027: snapshot.created_at.isoformat(),"},{"line_number":192,"context_line":"        \u0027status\u0027: snapshot.status,"},{"line_number":193,"context_line":"        \u0027deleted\u0027: null_safe_str(snapshot.deleted),"},{"line_number":194,"context_line":"    }"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    usage_info.update(extra_usage_info)"},{"line_number":197,"context_line":"    return usage_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_6bb62f41","line":194,"in_reply_to":"9fdfeff1_4569dc1e","updated":"2019-01-28 17:34:56.000000000","message":"This issue is only happening when there is an exception raised in the normal revert path, and as far as I can tell it\u0027s because the Snapshot OVO is a mess.\n\nThis is probably resolved if we change in the `__init__` of the Snapshot OVO:\n\n   self._orig_metadata \u003d {}\n\nwith\n\n   self.metadata \u003d {}","commit_id":"a3c7635d16a3fcc26df4ddce31cac2180e6bc169"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"188903d4d84551313fbb5b83eb4cf2a073a40e47","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        \u0027created_at\u0027: snapshot.created_at.isoformat(),"},{"line_number":192,"context_line":"        \u0027status\u0027: snapshot.status,"},{"line_number":193,"context_line":"        \u0027deleted\u0027: null_safe_str(snapshot.deleted),"},{"line_number":194,"context_line":"    }"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    usage_info.update(extra_usage_info)"},{"line_number":197,"context_line":"    return usage_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_ebc9bfab","line":194,"in_reply_to":"9fdfeff1_6bb62f41","updated":"2019-01-28 17:38:15.000000000","message":"And probably notifications need to be enabled to see this bug.","commit_id":"a3c7635d16a3fcc26df4ddce31cac2180e6bc169"}]}
