)]}'
{"trove/guestagent/strategies/storage/swift.py":[{"author":{"_account_id":971,"name":"Daniel Salinas","email":"imsplitbit@gmail.com","username":"imsplitbit"},"change_message_id":"310406cb8ff0a8c4a6175496e9da446c3c175f61","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            # Check each segment MD5 hash against swift etag"},{"line_number":53,"context_line":"            # Raise an error and mark backup as failed"},{"line_number":54,"context_line":"            if etag !\u003d stream.schecksum.hexdigest():"},{"line_number":55,"context_line":"                print etag, stream.schecksum.hexdigest()"},{"line_number":56,"context_line":"                return (False, \"Error saving data to Swift!\", None, None)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"            checksum \u003d stream.checksum.hexdigest()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fcts%3D","line":55,"updated":"2013-07-01 18:53:55.000000000","message":"Do we need to be printing things out?  I\u0027m assuming this is left over from debugging.","commit_id":"c3e4f2b72359964552742c4bd461e0a56ef8c257"}],"trove/taskmanager/models.py":[{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"9458fd9183c62b118b08dcaa8b5f6749d5077cee","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                backup.delete()"},{"line_number":583,"context_line":"            else:"},{"line_number":584,"context_line":"                LOG.exception(\"Exception deleting from swift. Details: %s\" % e)"},{"line_number":585,"context_line":"                raise TroveError(\"Failed to delete swift objects\")"},{"line_number":586,"context_line":"        else:"},{"line_number":587,"context_line":"            backup.delete()"},{"line_number":588,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2F3Ko%3D","line":585,"updated":"2013-07-10 07:56:39.000000000","message":"Can we set the backup state to \"FAILED\" here...\n(Or is there a reason to not do this?)","commit_id":"392463ad4312882708a01271de72206b87add194"},{"author":{"_account_id":694,"name":"Tim Simpson","email":"tim.simpson@rackspace.com","username":"tim-simpson"},"change_message_id":"bc543553a6cf35d142d9db49854cbb324eaabb53","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                backup.delete()"},{"line_number":583,"context_line":"            else:"},{"line_number":584,"context_line":"                LOG.exception(\"Exception deleting from swift. Details: %s\" % e)"},{"line_number":585,"context_line":"                raise TroveError(\"Failed to delete swift objects\")"},{"line_number":586,"context_line":"        else:"},{"line_number":587,"context_line":"            backup.delete()"},{"line_number":588,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FxEs%3D","line":585,"in_reply_to":"AAAAP3%2F%2F3Ko%3D","updated":"2013-07-11 19:06:02.000000000","message":"This may be a good idea. It seems a bit inconsistent with how we handle failures during other forms of deletion. \n\nFor example, with an instance, it gets put into a SHUTDOWN state and then just logs an error if something happens during deletion. The user just sees it never goes away and knows something is wrong and eventually ops (or devs, if something is caught in the testing phase) looks up whats happening in the logs. Maybe we could use a similar approach here? \n\nThe other idea, which may be a bit better, is to set it to FAILED_DELETE. This way its easier to see at a glance that they weren\u0027t failures to create the backup but kill it. I don\u0027t know how useful this would be to users though- it might even confuse some of them. I think I\u0027d just like it since we\u0027ve been testing backups like crazy over here recently.","commit_id":"392463ad4312882708a01271de72206b87add194"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"c24c0be5e524eec27d4984314acf386593234c1a","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                backup.delete()"},{"line_number":583,"context_line":"            else:"},{"line_number":584,"context_line":"                LOG.exception(\"Exception deleting from swift. Details: %s\" % e)"},{"line_number":585,"context_line":"                raise TroveError(\"Failed to delete swift objects\")"},{"line_number":586,"context_line":"        else:"},{"line_number":587,"context_line":"            backup.delete()"},{"line_number":588,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FjMk%3D","line":585,"in_reply_to":"AAAAP3%2F%2FxEs%3D","updated":"2013-07-16 17:47:56.000000000","message":"Fair enough. Just wanted to make sure that it was taken out for a reason, and not inadvertantly. Also, I like your latter suggestion, but I think that can be another patch.","commit_id":"392463ad4312882708a01271de72206b87add194"}]}
