)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"36ed23429b7fd0abe5d187f54f50e63fee3959ee","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-17 11:44:37 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add blueprint for support-force-delete-backup"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"New feature to create an API that supports force delete"},{"line_number":10,"context_line":"a backup."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bab921fb_12bc5c6b","line":7,"updated":"2015-04-22 20:08:25.000000000","message":"\"Adds support to force-delete backups\"?","commit_id":"045819c04664033ef7936b29161f95248e58d6ca"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"2f2be64db05527f4643b4140c715837933baa109","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-17 11:44:37 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add blueprint for support-force-delete-backup"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"New feature to create an API that supports force delete"},{"line_number":10,"context_line":"a backup."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bab921fb_cd6d29ce","line":7,"in_reply_to":"bab921fb_12bc5c6b","updated":"2015-04-22 20:13:10.000000000","message":"+1","commit_id":"045819c04664033ef7936b29161f95248e58d6ca"}],"specs/juno/support-force-delete-backup.rst":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"94bec20a8df89030d5deca15b0d459547758cabd","unresolved":false,"context_lines":[{"line_number":24,"context_line":"function. Backup-create routine first backup volume and metadata, and then"},{"line_number":25,"context_line":"update the status of volume and backup. If database just went down after"},{"line_number":26,"context_line":"update the volume\u0027s status to \u0027available\u0027, leaving the backup\u0027s status to be"},{"line_number":27,"context_line":"\u0027creating\u0027 without having methods to deal with through API, because"},{"line_number":28,"context_line":"backup-delete api could only delete backup item in status of \u0027available\u0027 and"},{"line_number":29,"context_line":"\u0027error\u0027. If we have backup force-delete API, we could directly delete the"},{"line_number":30,"context_line":"backup item without manually change the backup\u0027s status in db to error and call"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_84f72cf5","line":27,"updated":"2014-06-06 14:53:08.000000000","message":"When the manager comes back up, it will set the status of any backup in progress on this host will be set to error, and therefore deleteable.","commit_id":"4e48972665199b4336a19460e8117b9f7cc126ce"},{"author":{"_account_id":8874,"name":"ling-yun","email":"YunlingZeng@hotmail.com","username":"ling-yun"},"change_message_id":"6571fe8c5f69f7c901290c275d3ea352791f28ba","unresolved":false,"context_lines":[{"line_number":24,"context_line":"function. Backup-create routine first backup volume and metadata, and then"},{"line_number":25,"context_line":"update the status of volume and backup. If database just went down after"},{"line_number":26,"context_line":"update the volume\u0027s status to \u0027available\u0027, leaving the backup\u0027s status to be"},{"line_number":27,"context_line":"\u0027creating\u0027 without having methods to deal with through API, because"},{"line_number":28,"context_line":"backup-delete api could only delete backup item in status of \u0027available\u0027 and"},{"line_number":29,"context_line":"\u0027error\u0027. If we have backup force-delete API, we could directly delete the"},{"line_number":30,"context_line":"backup item without manually change the backup\u0027s status in db to error and call"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_05e77ae5","line":27,"in_reply_to":"1ae5cdf2_84f72cf5","updated":"2014-06-09 02:56:11.000000000","message":"1. The scene I mentioned does not mean that cinder-backup is down, and backup operation failed only because the db down for a short period.\nIf the backup stucked in creating status, restart cinder-backup could solve this problem(call BackupManager.init_host to reset backup item state), \nwhich needs administrators to do this by caring whether there is any backuping or restoring operation in progress.\n2. Solutions without restart cinder-backup:\n1)  If there is an backup force delete api(mentioned in this review), we could directly delete the stucked backup item.\n2)  If there is an backup reset state api(reset state to error) which is mentioned in https://review.openstack.org/#/c/98316/ , we could solve this problem\n by simply call reset state api to change the backup item status to error and do a backup delete operation.","commit_id":"4e48972665199b4336a19460e8117b9f7cc126ce"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"94bec20a8df89030d5deca15b0d459547758cabd","unresolved":false,"context_lines":[{"line_number":28,"context_line":"backup-delete api could only delete backup item in status of \u0027available\u0027 and"},{"line_number":29,"context_line":"\u0027error\u0027. If we have backup force-delete API, we could directly delete the"},{"line_number":30,"context_line":"backup item without manually change the backup\u0027s status in db to error and call"},{"line_number":31,"context_line":"backup-delete function, which is very useful for administrators."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"},{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_045ebc12","line":31,"updated":"2014-06-06 14:53:08.000000000","message":"What are you going to do with all the stuff in swift? That needs to be cleaned up too","commit_id":"4e48972665199b4336a19460e8117b9f7cc126ce"},{"author":{"_account_id":8874,"name":"ling-yun","email":"YunlingZeng@hotmail.com","username":"ling-yun"},"change_message_id":"6571fe8c5f69f7c901290c275d3ea352791f28ba","unresolved":false,"context_lines":[{"line_number":28,"context_line":"backup-delete api could only delete backup item in status of \u0027available\u0027 and"},{"line_number":29,"context_line":"\u0027error\u0027. If we have backup force-delete API, we could directly delete the"},{"line_number":30,"context_line":"backup item without manually change the backup\u0027s status in db to error and call"},{"line_number":31,"context_line":"backup-delete function, which is very useful for administrators."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"},{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_852aafe5","line":31,"in_reply_to":"1ae5cdf2_045ebc12","updated":"2014-06-09 02:56:11.000000000","message":"Yes, it needs to clean up all the stuff in backup storage backend. I will add your opinion in next patch.\nThanks very much.","commit_id":"4e48972665199b4336a19460e8117b9f7cc126ce"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"61afb866782e609661a076a055a59c526f783f19","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Backup Force Delete API"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/cinder/+spec/support-force-delete-backup"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_a8fa52ba","line":11,"updated":"2014-12-24 05:59:03.000000000","message":"You can remove this line..","commit_id":"7cd11e5c59303303038e63bbf8c901eacb527f04"}],"specs/liberty/support-force-delete-backup.rst":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"e5c421d6d8d4101334672ef0691d8d75b22135de","unresolved":false,"context_lines":[{"line_number":24,"context_line":"update the volume\u0027s status to \u0027available\u0027, leaving the backup\u0027s status to be"},{"line_number":25,"context_line":"\u0027creating\u0027 without having methods to deal with through API, because"},{"line_number":26,"context_line":"backup-delete api could only delete backup item in status of \u0027available\u0027 and"},{"line_number":27,"context_line":"\u0027error\u0027. "},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Use Cases"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bab921fb_4981ed49","line":27,"updated":"2015-04-23 13:56:42.000000000","message":"Please remove trailing whitespace.","commit_id":"fc6e467a6467aefa7d0980fb4a563cb6b97a7081"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"0acf1d193daeb79efb054256b739738d12a03f00","unresolved":false,"context_lines":[{"line_number":36,"context_line":"db to error or restart cinder-backup and call backup-delete function,"},{"line_number":37,"context_line":"which is very useful for administrators."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"There is other case that if backup creating take too long time and want to"},{"line_number":40,"context_line":"cancel this task, we can use this API to delete the backup that is still in"},{"line_number":41,"context_line":"creating status."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7ad32947_569f695f","line":39,"updated":"2015-04-27 17:38:50.000000000","message":"I don\u0027t want to encourage this. The backup could become an orphan.","commit_id":"fa82cd0016d17ee418a1f345ce26001561c2a4ca"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9a89bab1dbe59bdbe35f7b7da755b6dd81ca1681","unresolved":false,"context_lines":[{"line_number":36,"context_line":"db to error or restart cinder-backup and call backup-delete function,"},{"line_number":37,"context_line":"which is very useful for administrators."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"There is other case that if backup creating take too long time and want to"},{"line_number":40,"context_line":"cancel this task, we can use this API to delete the backup that is still in"},{"line_number":41,"context_line":"creating status."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7ad32947_2f4c7541","line":39,"in_reply_to":"7ad32947_569f695f","updated":"2015-04-28 12:09:35.000000000","message":"Mmm, Maybe it\u0027s a bad idea for this feature... It\u0027s better to other new api that if we can ensure to clean up the backup data.","commit_id":"fa82cd0016d17ee418a1f345ce26001561c2a4ca"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"0acf1d193daeb79efb054256b739738d12a03f00","unresolved":false,"context_lines":[{"line_number":69,"context_line":"---------------"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Add a new REST API to reset backup states:"},{"line_number":72,"context_line":"  * POST /v2/{tenant_id}/backups/{id}/action"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"JSON request schema definition::"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7ad32947_d6fdb96f","line":72,"updated":"2015-04-27 17:38:50.000000000","message":"I would rather like to see this consistent with how we do volumes:\n\nhttps://github.com/openstack/cinder/blob/master/cinder/api/contrib/admin_actions.py#L103\n\nSo that users have a more consistent experience in figuring out to use this, but with a different resource type.","commit_id":"fa82cd0016d17ee418a1f345ce26001561c2a4ca"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9a89bab1dbe59bdbe35f7b7da755b6dd81ca1681","unresolved":false,"context_lines":[{"line_number":69,"context_line":"---------------"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Add a new REST API to reset backup states:"},{"line_number":72,"context_line":"  * POST /v2/{tenant_id}/backups/{id}/action"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"JSON request schema definition::"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7ad32947_4fb571cb","line":72,"in_reply_to":"7ad32947_d6fdb96f","updated":"2015-04-28 12:09:35.000000000","message":"Done","commit_id":"fa82cd0016d17ee418a1f345ce26001561c2a4ca"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"0acf1d193daeb79efb054256b739738d12a03f00","unresolved":false,"context_lines":[{"line_number":140,"context_line":"Documentation Impact"},{"line_number":141,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"The cinder client documentation will need to be updated to reflect the new"},{"line_number":144,"context_line":"command."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"The cinder API documentation will need to be updated to reflect the REST API"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7ad32947_562089f7","line":143,"updated":"2015-04-27 17:38:50.000000000","message":"Specifically the Admin docs. http://docs.openstack.org/admin-guide-cloud/content/managing-volumes.html","commit_id":"fa82cd0016d17ee418a1f345ce26001561c2a4ca"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"3ff25b7f1064fbcddf523fcb40a301749d6f66fd","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Since there are volume force-delete function and snapshot force-delete"},{"line_number":20,"context_line":"function, backup also needs force-delete as well. Use backup-create routine"},{"line_number":21,"context_line":"as an example to illustrate what benefit we can get from force-delete"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3acd31a7_2c6927bf","line":18,"updated":"2015-04-30 09:39:42.000000000","message":"You give a good reason for implementing force-delete for backup below, but the mere fact that there is such a function for volumes and snapshots is not itself a good reason to implement it for backups.  I think the real point of this sentence is just to introduce the subject, so I suggest the following:\n\nCurrently there are volume force-delete and snapshot force-delete functions, but there is not a force-delete function for backups.  Force-delete for backups would be beneficial when backup-create fails and the backup status is stuck in \u0027creating\u0027. This situation occurs when ....[explain as you have done.]","commit_id":"a131585e4b52a5c20bc7258d39ec8191e82ce3fc"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"3ff25b7f1064fbcddf523fcb40a301749d6f66fd","unresolved":false,"context_lines":[{"line_number":42,"context_line":"A new API function and corresponding cinder command will be added to force"},{"line_number":43,"context_line":"delete backups."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"The initial proposal is to provide a method for administrator to quickly"},{"line_number":46,"context_line":"delete the backup item that is not in the status of \u0027available\u0027 or \u0027error\u0027."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* It\u0027s an admin-only operation."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3acd31a7_ecb9ef2f","line":45,"updated":"2015-04-30 09:39:42.000000000","message":"When you say \u0027The initial proposal ...\u0027 this suggests that you have a followup proposal.  If so, please briefly indicate what that followup proposal would be.  If not, please remove the word \u0027initial\u0027.","commit_id":"a131585e4b52a5c20bc7258d39ec8191e82ce3fc"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"1232ca215782525c45b6141dfd096d608a5ced7b","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Notifications impact"},{"line_number":84,"context_line":"--------------------"},{"line_number":85,"context_line":"None"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Other end user impact"},{"line_number":88,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1aca2d91_56e2a9d6","line":85,"updated":"2015-05-06 20:08:56.000000000","message":"Delete notification should include whether force was used or not","commit_id":"5da8f4ad69191254047a41e8cc840e4d70bf0a9d"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a30e824d76d41d19be1a715c0858a3e7a8c4cd49","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Notifications impact"},{"line_number":84,"context_line":"--------------------"},{"line_number":85,"context_line":"None"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Other end user impact"},{"line_number":88,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1aca2d91_351ef50c","line":85,"in_reply_to":"1aca2d91_56e2a9d6","updated":"2015-05-07 06:21:51.000000000","message":"Done","commit_id":"5da8f4ad69191254047a41e8cc840e4d70bf0a9d"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"1232ca215782525c45b6141dfd096d608a5ced7b","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Testing"},{"line_number":131,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1aca2d91_3635ed45","line":132,"updated":"2015-05-06 20:08:56.000000000","message":"Can we ensure that this is tested with an in-progress backup and ensure that it does the right thing and cleans up after itself?","commit_id":"5da8f4ad69191254047a41e8cc840e4d70bf0a9d"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a30e824d76d41d19be1a715c0858a3e7a8c4cd49","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Testing"},{"line_number":131,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1aca2d91_95b4a9f2","line":132,"in_reply_to":"1aca2d91_3635ed45","updated":"2015-05-07 06:21:51.000000000","message":"Emm... It\u0027s worth to do the test. I will test this feature ASAP.","commit_id":"5da8f4ad69191254047a41e8cc840e4d70bf0a9d"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"1cd428cbd58fd8872ed3d73b5c80685cb8d7485f","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Testing"},{"line_number":131,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1aca2d91_c695d9e4","line":132,"in_reply_to":"1aca2d91_95b4a9f2","updated":"2015-05-07 08:15:04.000000000","message":"I\u0027d like to add it to the test plan of the spec too, so that other people can know to test it when reviewing the code... Some backends (ceph, among others) use some noticably different code paths during backup","commit_id":"5da8f4ad69191254047a41e8cc840e4d70bf0a9d"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"5b06fc9f598e1789e23ad8954c59cffd28fddef5","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Testing"},{"line_number":131,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1aca2d91_aad737be","line":132,"in_reply_to":"1aca2d91_c695d9e4","updated":"2015-05-07 12:34:13.000000000","message":"OK, will add it.","commit_id":"5da8f4ad69191254047a41e8cc840e4d70bf0a9d"}]}
