)]}'
{"trove/backup/models.py":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"d206329f71cde959bdea93bbedd6834e7cd7cab8","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    @classmethod"},{"line_number":144,"context_line":"    def fail_for_instance(cls, instance_id):"},{"line_number":145,"context_line":"        reset_states \u003d [BackupState.NEW,"},{"line_number":146,"context_line":"                        BackupState.BUILDING,"},{"line_number":147,"context_line":"                        ]"},{"line_number":148,"context_line":"        db_info \u003d DBBackup.find_all(instance_id\u003dinstance_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FwEE%3D","line":145,"updated":"2013-07-23 22:00:44.000000000","message":"These should be added to the BackupState class itself like RUNNING_STATES and END_STATES","commit_id":"d3ae7a84b24e1bbd8d031937d20e810b9535dbae"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"7b9e1fcae1a41a25788ed5bb00c818f40145db41","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    @classmethod"},{"line_number":144,"context_line":"    def fail_for_instance(cls, instance_id):"},{"line_number":145,"context_line":"        reset_states \u003d [BackupState.NEW,"},{"line_number":146,"context_line":"                        BackupState.BUILDING,"},{"line_number":147,"context_line":"                        ]"},{"line_number":148,"context_line":"        db_info \u003d DBBackup.find_all(instance_id\u003dinstance_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FwAo%3D","line":145,"in_reply_to":"AAAAQn%2F%2FwBs%3D","updated":"2013-07-23 22:11:35.000000000","message":"I guess maybe you should just use the RUNNING_STATES.","commit_id":"d3ae7a84b24e1bbd8d031937d20e810b9535dbae"},{"author":{"_account_id":1375,"name":"Ed Cranford","email":"ed.cranford@gmail.com","username":"ed--cranford"},"change_message_id":"11339555e0dcaa1a70445fe3faec5bf720980f53","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    @classmethod"},{"line_number":144,"context_line":"    def fail_for_instance(cls, instance_id):"},{"line_number":145,"context_line":"        reset_states \u003d [BackupState.NEW,"},{"line_number":146,"context_line":"                        BackupState.BUILDING,"},{"line_number":147,"context_line":"                        ]"},{"line_number":148,"context_line":"        db_info \u003d DBBackup.find_all(instance_id\u003dinstance_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FwBs%3D","line":145,"in_reply_to":"AAAAQn%2F%2FwEE%3D","updated":"2013-07-23 22:05:54.000000000","message":"As \"INCOMPLETE_STATES\", maybe?","commit_id":"d3ae7a84b24e1bbd8d031937d20e810b9535dbae"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"d206329f71cde959bdea93bbedd6834e7cd7cab8","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        reset_states \u003d [BackupState.NEW,"},{"line_number":146,"context_line":"                        BackupState.BUILDING,"},{"line_number":147,"context_line":"                        ]"},{"line_number":148,"context_line":"        db_info \u003d DBBackup.find_all(instance_id\u003dinstance_id,"},{"line_number":149,"context_line":"                                    deleted\u003dFalse)"},{"line_number":150,"context_line":"        for backup in db_info:"},{"line_number":151,"context_line":"            if backup.state in reset_states:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FwDs%3D","line":148,"updated":"2013-07-23 22:00:44.000000000","message":"see the \u0027running\u0027 method in this class for an example of how to do an \u0027IN\u0027 query that will remove the need for the if statement in the for loop below.","commit_id":"d3ae7a84b24e1bbd8d031937d20e810b9535dbae"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"7b9e1fcae1a41a25788ed5bb00c818f40145db41","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        reset_states \u003d [BackupState.NEW,"},{"line_number":146,"context_line":"                        BackupState.BUILDING,"},{"line_number":147,"context_line":"                        ]"},{"line_number":148,"context_line":"        db_info \u003d DBBackup.find_all(instance_id\u003dinstance_id,"},{"line_number":149,"context_line":"                                    deleted\u003dFalse)"},{"line_number":150,"context_line":"        for backup in db_info:"},{"line_number":151,"context_line":"            if backup.state in reset_states:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FwAw%3D","line":148,"in_reply_to":"AAAAQn%2F%2FwBU%3D","updated":"2013-07-23 22:11:35.000000000","message":"you\u0027ll have to use the raw query like \u0027query \u003d DBBackup.query()\u0027","commit_id":"d3ae7a84b24e1bbd8d031937d20e810b9535dbae"},{"author":{"_account_id":1375,"name":"Ed Cranford","email":"ed.cranford@gmail.com","username":"ed--cranford"},"change_message_id":"11339555e0dcaa1a70445fe3faec5bf720980f53","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        reset_states \u003d [BackupState.NEW,"},{"line_number":146,"context_line":"                        BackupState.BUILDING,"},{"line_number":147,"context_line":"                        ]"},{"line_number":148,"context_line":"        db_info \u003d DBBackup.find_all(instance_id\u003dinstance_id,"},{"line_number":149,"context_line":"                                    deleted\u003dFalse)"},{"line_number":150,"context_line":"        for backup in db_info:"},{"line_number":151,"context_line":"            if backup.state in reset_states:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FwBU%3D","line":148,"in_reply_to":"AAAAQn%2F%2FwDs%3D","updated":"2013-07-23 22:05:54.000000000","message":"I did it this way because I didn\u0027t have any luck with in_ or filter or filter_by. I\u0027ll give it another shot.","commit_id":"d3ae7a84b24e1bbd8d031937d20e810b9535dbae"}],"trove/extensions/mgmt/instances/service.py":[{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"4e7c859ef60ccab1910ad3421ae386c77cb7a96c","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        for backup in backups.all():"},{"line_number":145,"context_line":"            if backup.state in reset_states:"},{"line_number":146,"context_line":"                backup.state \u003d backup_models.BackupState.FAILED"},{"line_number":147,"context_line":"                backup.save()"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        return wsgi.Result(None, 202)"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2Fl14%3D","line":147,"updated":"2013-07-16 05:14:12.000000000","message":"Can we move the reset logic into DBBackup?","commit_id":"b9706e4fdb24135891b84cfb03a85ebd9ada65b7"},{"author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"change_message_id":"a57d1c83242bb309a28b063e8ccc222d62c80f2c","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        for backup in backups.all():"},{"line_number":145,"context_line":"            if backup.state in reset_states:"},{"line_number":146,"context_line":"                backup.state \u003d backup_models.BackupState.FAILED"},{"line_number":147,"context_line":"                backup.save()"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        return wsgi.Result(None, 202)"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2F8mw%3D","line":147,"in_reply_to":"AAAAP3%2F%2Fl14%3D","updated":"2013-07-18 17:19:48.000000000","message":"ya maybe we need to wrap the DBBackup w/ something like the instance object has, so we can have some more functionality like this encapsulated in it. \n\nSee https://github.com/openstack/trove/blob/master/trove/instance/models.py#L407","commit_id":"b9706e4fdb24135891b84cfb03a85ebd9ada65b7"}],"trove/tests/api/mgmt/instances_actions.py":[{"author":{"_account_id":694,"name":"Tim Simpson","email":"tim.simpson@rackspace.com","username":"tim-simpson"},"change_message_id":"746251563d2627b7a2c79fd0e4cd302164c687fd","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            tenant_id\u003dself.tenant_id,"},{"line_number":154,"context_line":"            state\u003dbackup_models.BackupState.NEW,"},{"line_number":155,"context_line":"            instance_id\u003dself.db_info.id,"},{"line_number":156,"context_line":"            deleted\u003dFalse)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        forever_build \u003d backup_models.DBBackup.create("},{"line_number":159,"context_line":"            name\u003d\"forever_build\","}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2F4To%3D","line":156,"updated":"2013-07-19 21:54:47.000000000","message":"forever_new, I want to be forever_new.... [rest of this joke skipped because I can\u0027t remember the words to that song]","commit_id":"b4a7ed7afe0bb91376f3648e68a719ffcb2988d0"},{"author":{"_account_id":694,"name":"Tim Simpson","email":"tim.simpson@rackspace.com","username":"tim-simpson"},"change_message_id":"746251563d2627b7a2c79fd0e4cd302164c687fd","unresolved":false,"context_lines":[{"line_number":185,"context_line":"                assert_equal(backup.status,"},{"line_number":186,"context_line":"                             backup_models.BackupState.COMPLETED)"},{"line_number":187,"context_line":"            else:"},{"line_number":188,"context_line":"                assert_equal(backup.status, backup_models.BackupState.FAILED)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2F4TM%3D","line":188,"updated":"2013-07-19 21:54:47.000000000","message":"If this test fails, how do these database entries get cleaned up? I know the code works now, but it\u0027d be better form if you added a @test method which runs_after this test but doesn\u0027t depend_on it which can clean up these entries if the test fails.","commit_id":"b4a7ed7afe0bb91376f3648e68a719ffcb2988d0"},{"author":{"_account_id":1375,"name":"Ed Cranford","email":"ed.cranford@gmail.com","username":"ed--cranford"},"change_message_id":"594c9f4d6fba3c3b9c4f4dfe5c4b06419311c9f1","unresolved":false,"context_lines":[{"line_number":185,"context_line":"                assert_equal(backup.status,"},{"line_number":186,"context_line":"                             backup_models.BackupState.COMPLETED)"},{"line_number":187,"context_line":"            else:"},{"line_number":188,"context_line":"                assert_equal(backup.status, backup_models.BackupState.FAILED)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2F4SQ%3D","line":188,"in_reply_to":"AAAAQn%2F%2F4TM%3D","updated":"2013-07-19 21:59:41.000000000","message":"I\u0027ll get right on that. Of course there should be a cleanup task.","commit_id":"b4a7ed7afe0bb91376f3648e68a719ffcb2988d0"}]}
