)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"12b7ee9c6639eb6e201399d85a28fe3d41629c20","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     kongxiangyun \u003ckongxyxian2010@163.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-07-07 18:29:21 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Cinder volume revert to snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit implements reverting volume to a snapshot when"},{"line_number":10,"context_line":"backend_storage is ceph"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f1d235d_c8611fd6","line":7,"updated":"2017-07-07 13:55:00.000000000","message":"Please add \"Ceph\" somewhere in the summary line.","commit_id":"ce25b2c92e3d2121a7371fb7c9b0e96fd823baa9"}],"cinder/volume/drivers/rbd.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"12b7ee9c6639eb6e201399d85a28fe3d41629c20","unresolved":false,"context_lines":[{"line_number":874,"context_line":"            try:"},{"line_number":875,"context_line":"                dest_volume.rollback_to_snap(snap_name)"},{"line_number":876,"context_line":"            except self.rbd.ImageNotFound:"},{"line_number":877,"context_line":"                LOG.error(\"RBD volume %s not found, allowing revert\""},{"line_number":878,"context_line":"                          \"operation to proceed.\", volume_name)"},{"line_number":879,"context_line":"                return"},{"line_number":880,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_6879eb91","line":877,"updated":"2017-07-07 13:55:00.000000000","message":"I think we need to raise an exception here so things will fall back to the generic revert implementation. Otherwise the only indication that there was a failure would be a log message hidden away with no outwardly visible indication of a problem.","commit_id":"ce25b2c92e3d2121a7371fb7c9b0e96fd823baa9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"12b7ee9c6639eb6e201399d85a28fe3d41629c20","unresolved":false,"context_lines":[{"line_number":876,"context_line":"            except self.rbd.ImageNotFound:"},{"line_number":877,"context_line":"                LOG.error(\"RBD volume %s not found, allowing revert\""},{"line_number":878,"context_line":"                          \"operation to proceed.\", volume_name)"},{"line_number":879,"context_line":"                return"},{"line_number":880,"context_line":""},{"line_number":881,"context_line":"    def _disable_replication(self, volume):"},{"line_number":882,"context_line":"        \"\"\"Disable replication on the given volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_c8335ff6","line":879,"range":{"start_line":879,"start_character":16,"end_line":879,"end_character":22},"updated":"2017-07-07 13:55:00.000000000","message":"return not needed.","commit_id":"ce25b2c92e3d2121a7371fb7c9b0e96fd823baa9"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"2135e99cc030d3b114ea79965738efcd134b5cdc","unresolved":false,"context_lines":[{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        with RBDVolumeProxy(self, volume_name) as dest_volume:"},{"line_number":874,"context_line":"            try:"},{"line_number":875,"context_line":"                dest_volume.rollback_to_snap(snap_name)"},{"line_number":876,"context_line":"            except self.rbd.ImageNotFound:"},{"line_number":877,"context_line":"                LOG.error(\"RBD volume %s not found, allowing revert\""},{"line_number":878,"context_line":"                          \"operation to proceed.\", volume_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_871aa714","line":875,"updated":"2017-09-04 06:46:03.000000000","message":"RBD snap rollback will resize rbd to snap size, so when a snaoshot is created before an rbd backed volume extended, reverting the volume to this snapshot will change the size of the backend rbd.\n\nWe should take care of this scenario.","commit_id":"bf041fb7ffb38506402b49b8f3225c391c63fada"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"cc2b1faeceeb1b56ca65ab824c84c7b1f3a430bf","unresolved":false,"context_lines":[{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        with RBDVolumeProxy(self, volume_name) as dest_volume:"},{"line_number":874,"context_line":"            try:"},{"line_number":875,"context_line":"                dest_volume.rollback_to_snap(snap_name)"},{"line_number":876,"context_line":"            except self.rbd.ImageNotFound:"},{"line_number":877,"context_line":"                LOG.error(\"RBD volume %s not found, allowing revert\""},{"line_number":878,"context_line":"                          \"operation to proceed.\", volume_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_82213550","line":875,"in_reply_to":"7f287b81_11bcb1b9","updated":"2017-09-06 13:58:49.000000000","message":"Gorka Eguileor, would you explain this snapshot cloning approach?\n\nRBD snapshot cloning will create a new image, so do you mean use a new rbd to replace the original one? But we should also take care of all snapshots based on the original rbd.I don\u0027t think this is working.","commit_id":"bf041fb7ffb38506402b49b8f3225c391c63fada"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"39985955139d5d9f6d7cdefebc350230719fb4e7","unresolved":false,"context_lines":[{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        with RBDVolumeProxy(self, volume_name) as dest_volume:"},{"line_number":874,"context_line":"            try:"},{"line_number":875,"context_line":"                dest_volume.rollback_to_snap(snap_name)"},{"line_number":876,"context_line":"            except self.rbd.ImageNotFound:"},{"line_number":877,"context_line":"                LOG.error(\"RBD volume %s not found, allowing revert\""},{"line_number":878,"context_line":"                          \"operation to proceed.\", volume_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_0611bc5d","line":875,"in_reply_to":"7f287b81_82213550","updated":"2017-09-07 08:47:12.000000000","message":"Note under rollback snapshot: http://docs.ceph.com/docs/master/rbd/rbd-snapshot/#snapshot-basics","commit_id":"bf041fb7ffb38506402b49b8f3225c391c63fada"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a6b29a83b29a7f51614f776e17edba0c61624136","unresolved":false,"context_lines":[{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        with RBDVolumeProxy(self, volume_name) as dest_volume:"},{"line_number":874,"context_line":"            try:"},{"line_number":875,"context_line":"                dest_volume.rollback_to_snap(snap_name)"},{"line_number":876,"context_line":"            except self.rbd.ImageNotFound:"},{"line_number":877,"context_line":"                LOG.error(\"RBD volume %s not found, allowing revert\""},{"line_number":878,"context_line":"                          \"operation to proceed.\", volume_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_11bcb1b9","line":875,"in_reply_to":"7f287b81_871aa714","updated":"2017-09-04 11:41:25.000000000","message":"-1: Even if the feature is there on the backend it is *not* how it should be done, because it is really slow.  The right approach is cloning the snapshot.","commit_id":"bf041fb7ffb38506402b49b8f3225c391c63fada"}]}
