)]}'
{"trove/tests/scenario/groups/replication_group.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"e4ce282a6bad2d6ea6b26370b2e88dda25c79084","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        \"\"\"Test creating multiple replicas.\"\"\""},{"line_number":140,"context_line":"        self.test_runner.run_create_multiple_replicas()"},{"line_number":141,"context_line":"        self.backup_runner.assert_incremental_exists("},{"line_number":142,"context_line":"            self.backup_runner.backup_info.id)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"@test(depends_on_groups\u003d[groups.REPL_INST_CREATE_WAIT],"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_0b9bc4ca","line":142,"range":{"start_line":142,"start_character":12,"end_line":142,"end_character":45},"updated":"2016-07-28 01:06:14.000000000","message":"I don\u0027t think this has to be passed in since the call is on the runner itself (and there is always only one \u0027backup_info\u0027 anyways). We could convert it into a self-contained check.\n\n\nI would just call it \u0027run_check_has_incremental()\u0027 inside the backup runner:\n\ndef run_check_has_incremental(self):\n    self.assert_incremental_exists(self.backup_info.id)\n\n\nHere you would just simply call:\n\n   self.backup_runner.run_check_has_incremental()","commit_id":"57c520d59f57c1109c496e0e90db3f92cac927a2"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"e4ce282a6bad2d6ea6b26370b2e88dda25c79084","unresolved":false,"context_lines":[{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    @test(runs_after\u003d[test_backup_deleted])"},{"line_number":346,"context_line":"    def cleanup_master_instance(self):"},{"line_number":347,"context_line":"        \"\"\"Remove full backup and slave users from master instance.\"\"\""},{"line_number":348,"context_line":"        self.test_runner.run_cleanup_master_instance()"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_f04e1b95","line":347,"range":{"start_line":347,"start_character":18,"end_line":347,"end_character":29},"updated":"2016-07-28 01:06:14.000000000","message":"Is this correct? Seems like the backup is removed in the previous test.","commit_id":"57c520d59f57c1109c496e0e90db3f92cac927a2"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"48c0a9762c6bfc0f6b7c00d4208a8b623e099b9a","unresolved":false,"context_lines":[{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    @test(runs_after\u003d[test_backup_deleted])"},{"line_number":346,"context_line":"    def cleanup_master_instance(self):"},{"line_number":347,"context_line":"        \"\"\"Remove full backup and slave users from master instance.\"\"\""},{"line_number":348,"context_line":"        self.test_runner.run_cleanup_master_instance()"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_aa49bd8d","line":347,"range":{"start_line":347,"start_character":18,"end_line":347,"end_character":29},"in_reply_to":"bacf61ea_f04e1b95","updated":"2016-07-28 11:16:08.000000000","message":"I\u0027m not certain what you mean here. The full backup that was explicitly created on this commit isn\u0027t removed unless I remove it here.","commit_id":"57c520d59f57c1109c496e0e90db3f92cac927a2"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"7bf6c850fcc6932ec5784908ae270f11f71479e2","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    def backup_master_instance(self):"},{"line_number":133,"context_line":"        \"\"\"Backup the master instance.\"\"\""},{"line_number":134,"context_line":"        self.backup_runner.run_backup_create()"},{"line_number":135,"context_line":"        self.backup_runner.run_backup_create_completed()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @test(depends_on\u003d[backup_master_instance])"},{"line_number":138,"context_line":"    def create_multiple_replicas(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_b9046bc0","line":135,"updated":"2016-07-28 15:10:52.000000000","message":"You need this too:\n\n  self.test_runner.master_backup_count +\u003d 1","commit_id":"58f62cd3c0ae9dfed33fca9b9dc7db7fb11ee388"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"3850847670c3c496131926aef0a95f6b85e3845d","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    def backup_master_instance(self):"},{"line_number":133,"context_line":"        \"\"\"Backup the master instance.\"\"\""},{"line_number":134,"context_line":"        self.backup_runner.run_backup_create()"},{"line_number":135,"context_line":"        self.backup_runner.run_backup_create_completed()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @test(depends_on\u003d[backup_master_instance])"},{"line_number":138,"context_line":"    def create_multiple_replicas(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_0a7a77f1","line":135,"in_reply_to":"bacf61ea_b9046bc0","updated":"2016-07-28 15:54:39.000000000","message":"Done","commit_id":"58f62cd3c0ae9dfed33fca9b9dc7db7fb11ee388"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"87caef68846f127f50ab8f99a18eadb1afc834b3","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    def create_multiple_replicas(self):"},{"line_number":139,"context_line":"        \"\"\"Test creating multiple replicas.\"\"\""},{"line_number":140,"context_line":"        self.test_runner.run_create_multiple_replicas()"},{"line_number":141,"context_line":"        self.backup_runner.run_check_has_incremental()"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"@test(depends_on_groups\u003d[groups.REPL_INST_CREATE_WAIT],"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_33837a06","line":141,"range":{"start_line":141,"start_character":0,"end_line":141,"end_character":54},"updated":"2016-07-28 14:52:53.000000000","message":"I think you should put this in its own group.  The error on redis shows:\n\n  Test creating multiple replicas.                ERROR\n\nand you need to look at the results to figure out that it\u0027s the incremental check that failed.  If it was in its own group, the create would pass but the check for \u0027has_incremental\u0027 would show the failure, making it easier to diagnose.\n\nThat said, you\u0027ll also have to no-op this check for redis since it doesn\u0027t support incremental backups. :)\n\nHere\u0027s what I\u0027m thinking:\n\n    @test(depends_on\u003d[create_multiple_replicas])\n    def check_has_incremental_backup(self):\n        \"\"\"Test that creating multiple replicas uses inc backup.\"\"\"\n        self.backup_runner.run_check_has_incremental()","commit_id":"58f62cd3c0ae9dfed33fca9b9dc7db7fb11ee388"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"3850847670c3c496131926aef0a95f6b85e3845d","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    def create_multiple_replicas(self):"},{"line_number":139,"context_line":"        \"\"\"Test creating multiple replicas.\"\"\""},{"line_number":140,"context_line":"        self.test_runner.run_create_multiple_replicas()"},{"line_number":141,"context_line":"        self.backup_runner.run_check_has_incremental()"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"@test(depends_on_groups\u003d[groups.REPL_INST_CREATE_WAIT],"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_ea7c43ed","line":141,"range":{"start_line":141,"start_character":0,"end_line":141,"end_character":54},"in_reply_to":"bacf61ea_33837a06","updated":"2016-07-28 15:54:39.000000000","message":"Done","commit_id":"58f62cd3c0ae9dfed33fca9b9dc7db7fb11ee388"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"87caef68846f127f50ab8f99a18eadb1afc834b3","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        \"\"\"Remove the full backup and test that the created backup"},{"line_number":339,"context_line":"           is now gone."},{"line_number":340,"context_line":"        \"\"\""},{"line_number":341,"context_line":"        self.backup_runner.run_delete_backup()"},{"line_number":342,"context_line":"        self.test_runner.run_test_backup_deleted()"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    @test(runs_after\u003d[test_backup_deleted])"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_96721448","line":341,"range":{"start_line":341,"start_character":8,"end_line":341,"end_character":46},"updated":"2016-07-28 14:52:53.000000000","message":"This should probably go after the statement, since we\u0027d like to check that replication removes the incremental backup itself.  If we remove the parent, it\u0027ll automatically remove the child and we won\u0027t ever see if the replication process failed to do that.","commit_id":"58f62cd3c0ae9dfed33fca9b9dc7db7fb11ee388"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"3850847670c3c496131926aef0a95f6b85e3845d","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        \"\"\"Remove the full backup and test that the created backup"},{"line_number":339,"context_line":"           is now gone."},{"line_number":340,"context_line":"        \"\"\""},{"line_number":341,"context_line":"        self.backup_runner.run_delete_backup()"},{"line_number":342,"context_line":"        self.test_runner.run_test_backup_deleted()"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    @test(runs_after\u003d[test_backup_deleted])"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_2a877bd8","line":341,"range":{"start_line":341,"start_character":8,"end_line":341,"end_character":46},"in_reply_to":"bacf61ea_96721448","updated":"2016-07-28 15:54:39.000000000","message":"Done","commit_id":"58f62cd3c0ae9dfed33fca9b9dc7db7fb11ee388"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"87caef68846f127f50ab8f99a18eadb1afc834b3","unresolved":false,"context_lines":[{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    @test(runs_after\u003d[test_backup_deleted])"},{"line_number":345,"context_line":"    def cleanup_master_instance(self):"},{"line_number":346,"context_line":"        \"\"\"Remove full backup and slave users from master instance.\"\"\""},{"line_number":347,"context_line":"        self.test_runner.run_cleanup_master_instance()"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_7621604d","line":346,"range":{"start_line":346,"start_character":18,"end_line":346,"end_character":34},"updated":"2016-07-28 14:52:53.000000000","message":"I think Petr is right - this still just removed the slave users, not the new backup (that\u0027s done above)","commit_id":"58f62cd3c0ae9dfed33fca9b9dc7db7fb11ee388"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"3850847670c3c496131926aef0a95f6b85e3845d","unresolved":false,"context_lines":[{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    @test(runs_after\u003d[test_backup_deleted])"},{"line_number":345,"context_line":"    def cleanup_master_instance(self):"},{"line_number":346,"context_line":"        \"\"\"Remove full backup and slave users from master instance.\"\"\""},{"line_number":347,"context_line":"        self.test_runner.run_cleanup_master_instance()"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_8a6e672d","line":346,"range":{"start_line":346,"start_character":18,"end_line":346,"end_character":34},"in_reply_to":"bacf61ea_7621604d","updated":"2016-07-28 15:54:39.000000000","message":"Done","commit_id":"58f62cd3c0ae9dfed33fca9b9dc7db7fb11ee388"}],"trove/tests/scenario/runners/backup_runners.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"87caef68846f127f50ab8f99a18eadb1afc834b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bacf61ea_5308ae2d","line":524,"updated":"2016-07-28 14:52:53.000000000","message":"You\u0027ll have to add something like this to get Redis to pass:\n\n    class RedisBackupRunner(BackupRunner):\n\n        def run_check_has_incremental(self):\n            pass","commit_id":"58f62cd3c0ae9dfed33fca9b9dc7db7fb11ee388"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"7d1d4759252aa9a5b3100f4f979de62a97a78662","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        poll_until(_backup_with_parent_found, time_out\u003d30)"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"class RedisBackupRunner(BackupRunner):"},{"line_number":527,"context_line":"    def run_check_has_incremental(self):"},{"line_number":528,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_ce25cc09","line":526,"updated":"2016-07-29 20:16:05.000000000","message":"Doug, why are we adding this new class in here? Am I missing something?","commit_id":"8e8dc7df08f99bca0d4fb2fdeced6de7cab02aa8"}]}
