)]}'
{"trove/tests/api/replication.py":[{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"137d2f1a27840b91f5d343f112d8707de70a8a1f","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    @test(runs_after\u003d[\u0027test_create_db_on_master\u0027])"},{"line_number":131,"context_line":"    def test_create_slave(self):"},{"line_number":132,"context_line":"        slave_instance.id \u003d create_slave()"},{"line_number":133,"context_line":"        global backup_count"},{"line_number":134,"context_line":"        backup_count \u003d len("},{"line_number":135,"context_line":"            instance_info.dbaas.instances.backups(instance_info.id))"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_664efa70","line":132,"updated":"2015-11-24 08:40:45.000000000","message":"this should be after setting the backup_count. (it might fix the race condition you mentioned in fake mode as well)","commit_id":"3e84736371815335365bf91590c0acbb6772d2c5"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"928ab392c79a98eaa6808fc3fe7ca246dbf9d7b8","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    @test(runs_after\u003d[\u0027test_create_db_on_master\u0027])"},{"line_number":131,"context_line":"    def test_create_slave(self):"},{"line_number":132,"context_line":"        slave_instance.id \u003d create_slave()"},{"line_number":133,"context_line":"        global backup_count"},{"line_number":134,"context_line":"        backup_count \u003d len("},{"line_number":135,"context_line":"            instance_info.dbaas.instances.backups(instance_info.id))"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_e1d008cc","line":132,"in_reply_to":"ba8a016a_664efa70","updated":"2015-11-24 15:29:26.000000000","message":"You\u0027re right, it should be before the create_slave command.  Let me try it out and see if it fixes the fake tests.","commit_id":"3e84736371815335365bf91590c0acbb6772d2c5"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"137d2f1a27840b91f5d343f112d8707de70a8a1f","unresolved":false,"context_lines":[{"line_number":369,"context_line":"        assert_raises(exceptions.NotFound, instance_info.dbaas.instances.get,"},{"line_number":370,"context_line":"                      slave_instance.id)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"    @test(runs_after\u003d[test_delete_slave_instance])"},{"line_number":373,"context_line":"    def test_backup_deleted(self):"},{"line_number":374,"context_line":"        if CONFIG.fake_mode:"},{"line_number":375,"context_line":"            raise SkipTest(\"Skipping due to timing issues in fake mode\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_06dcce71","line":372,"updated":"2015-11-24 08:40:45.000000000","message":"i\u0027m not sure that moving this tests the same flow for replication. maybe polling a few times would do the trick.","commit_id":"3e84736371815335365bf91590c0acbb6772d2c5"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"137d2f1a27840b91f5d343f112d8707de70a8a1f","unresolved":false,"context_lines":[{"line_number":372,"context_line":"    @test(runs_after\u003d[test_delete_slave_instance])"},{"line_number":373,"context_line":"    def test_backup_deleted(self):"},{"line_number":374,"context_line":"        if CONFIG.fake_mode:"},{"line_number":375,"context_line":"            raise SkipTest(\"Skipping due to timing issues in fake mode\")"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        backup \u003d instance_info.dbaas.instances.backups(instance_info.id)"},{"line_number":378,"context_line":"        assert_equal(backup_count, len(backup))"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_c3a4784c","line":375,"updated":"2015-11-24 08:40:45.000000000","message":"Do you know why there is a timing issue in fake mode tests? There should not be an issue because all the code in fake mode should run synchronously unless something changed.","commit_id":"3e84736371815335365bf91590c0acbb6772d2c5"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"9fefbba4c5de4f29e40f5503a1756b4b2dd06e67","unresolved":false,"context_lines":[{"line_number":372,"context_line":"    @test(runs_after\u003d[test_delete_slave_instance])"},{"line_number":373,"context_line":"    def test_backup_deleted(self):"},{"line_number":374,"context_line":"        if CONFIG.fake_mode:"},{"line_number":375,"context_line":"            raise SkipTest(\"Skipping due to timing issues in fake mode\")"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        backup \u003d instance_info.dbaas.instances.backups(instance_info.id)"},{"line_number":378,"context_line":"        assert_equal(backup_count, len(backup))"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_8720314b","line":375,"in_reply_to":"ba8a016a_c3a4784c","updated":"2015-11-24 14:33:33.000000000","message":"Same question","commit_id":"3e84736371815335365bf91590c0acbb6772d2c5"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f77b04b157b76319b9980384af7d2f9653169242","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        poll_until(slave_is_running())"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    @test(runs_after\u003d[test_correctly_started_replication])"},{"line_number":177,"context_line":"    @time_out(60)"},{"line_number":178,"context_line":"    def test_backup_deleted(self):"},{"line_number":179,"context_line":"        poll_until(backup_count_matches(backup_count))"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_b79c3c5e","line":177,"updated":"2015-12-04 21:30:09.000000000","message":"Since this is dependent on the creation of an instance, I suggest 60 seconds may not be long enough to wait.  300 might be better.","commit_id":"5c4c924b50238f6ea721082690cf5e1fffa01bb4"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"8dbd28c064db404cf98abc13deb6beca2d47ebfe","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        poll_until(slave_is_running())"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    @test(runs_after\u003d[test_correctly_started_replication])"},{"line_number":177,"context_line":"    @time_out(60)"},{"line_number":178,"context_line":"    def test_backup_deleted(self):"},{"line_number":179,"context_line":"        poll_until(backup_count_matches(backup_count))"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_ead90723","line":177,"in_reply_to":"7a740942_b79c3c5e","updated":"2015-12-14 02:13:26.000000000","message":"This runs after test_correctly_started_replication, which runs after test_slave_created.  That gives it a full minute to delete the backup after the slave is fully set up, which should be enough time (since it only failed intermittently when running once immediately after creation completed).  But if there\u0027s consensus on this, I can increase the timeout.","commit_id":"5c4c924b50238f6ea721082690cf5e1fffa01bb4"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"77f7814b48bebc72c8a9d4523ade55bd24275212","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        poll_until(slave_is_running())"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    @test(runs_after\u003d[test_correctly_started_replication])"},{"line_number":177,"context_line":"    @time_out(60)"},{"line_number":178,"context_line":"    def test_backup_deleted(self):"},{"line_number":179,"context_line":"        poll_until(backup_count_matches(backup_count))"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a710552_7d59da59","line":177,"in_reply_to":"7a740942_ead90723","updated":"2015-12-15 20:43:37.000000000","message":"I think 60 is fine in this case.","commit_id":"5c4c924b50238f6ea721082690cf5e1fffa01bb4"}],"trove/tests/scenario/runners/replication_runners.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"a3a2b0443690943dd3c5b27eb82fd773f8df49b6","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                                     expected_http_code)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def run_test_backup_deleted(self):"},{"line_number":274,"context_line":"        backup \u003d self.auth_client.instances.backups(self.master_id)"},{"line_number":275,"context_line":"        self.assert_equal(self.master_backup_count, len(backup))"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_2e8b196a","line":274,"updated":"2015-11-23 13:56:56.000000000","message":"def run_test_backup_deleted(self):\n    self.assert_true(self._wait_for_backup_count(self.master_id, self.master_backup_count))\n\ndef _wait_for_backup_count(self, instance_id, expected_backup_count):\n    start_time \u003d timer.time()\n    try:\n        poll_until(lambda: self._has_backup_count(\n            instance_id, expected_backup_count),\n            sleep_time\u003dself.def_sleep_time,\n            time_out\u003dself.def_timeout)\n    except exceptions.NotFound:\n        self.report.log(\"Backup count was %d in %s.\" %\n            (expected_backup_count, self._time_since(start_time)))\n        return True\n    except exception.PollTimeOut:\n        self.report.log(\n        \"Instance \u0027%s\u0027 did not have the expected backup count of %d after %s.\"\n        % (instance_id, expected_backup_count, self._time_since(start_time)))\n\n    return False\n\ndef _has_backup_count(self, instance_id, expected_backup_count)\n    backup \u003d self.auth_client.instances.backups(instance_id)\n    return expected_backup_count \u003d\u003d len(backup)","commit_id":"3e84736371815335365bf91590c0acbb6772d2c5"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"14c306cb808850ce3af40e1c004afddf22fc1cac","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                                     expected_http_code)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def run_test_backup_deleted(self):"},{"line_number":274,"context_line":"        backup \u003d self.auth_client.instances.backups(self.master_id)"},{"line_number":275,"context_line":"        self.assert_equal(self.master_backup_count, len(backup))"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_24f9ee80","line":274,"in_reply_to":"ba8a016a_2e8b196a","updated":"2015-11-23 16:47:49.000000000","message":"Doing it this way crossed my mind, but then I decided that it\u0027s probably overkill for this case. It\u0027d be good if we knew what the backup id was, to ensure that it\u0027s actually gone, but we don\u0027t. :)  I figure if the backup isn\u0027t gone at this point in time, it\u0027s probably not going to go away, so waiting would just make the test take longer.\nI everyone thinks this is better, I can move the check back to where it was (but I think it\u0027ll just make the tests take longer. :P)","commit_id":"3e84736371815335365bf91590c0acbb6772d2c5"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"77f7814b48bebc72c8a9d4523ade55bd24275212","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def run_test_backup_deleted(self):"},{"line_number":274,"context_line":"        backup \u003d self.auth_client.instances.backups(self.master_id)"},{"line_number":275,"context_line":"        self.assert_equal(self.master_backup_count, len(backup))"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a710552_bd0d0240","line":275,"updated":"2015-12-15 20:43:37.000000000","message":"How does this make sure that the same issue seen in the others tests doesnt pop up here? Just some hope?","commit_id":"5c4c924b50238f6ea721082690cf5e1fffa01bb4"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"c059add20634306182f4b74618c5f9698e187ffb","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def run_test_backup_deleted(self):"},{"line_number":274,"context_line":"        backup \u003d self.auth_client.instances.backups(self.master_id)"},{"line_number":275,"context_line":"        self.assert_equal(self.master_backup_count, len(backup))"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_a6ab911c","line":275,"in_reply_to":"3a7e1126_1f145e42","updated":"2016-01-04 19:46:45.000000000","message":"i see what you are saying. One concern that i have with how this is tested is that we had a requirement that the backup be deleted after the replica is created. This isnt exactly testing that now but after the replicas are deleted.","commit_id":"5c4c924b50238f6ea721082690cf5e1fffa01bb4"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"198df6566f402203cda8e906e627cb57e6690072","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def run_test_backup_deleted(self):"},{"line_number":274,"context_line":"        backup \u003d self.auth_client.instances.backups(self.master_id)"},{"line_number":275,"context_line":"        self.assert_equal(self.master_backup_count, len(backup))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_1f145e42","line":275,"in_reply_to":"5a710552_bd0d0240","updated":"2015-12-17 12:43:59.000000000","message":"I\u0027m not sure I understand.  What \u0027same issue seen in the other tests\u0027 are you referring to?  In the case of the scenario tests (here that is), I put the delete at the end of the test run - i.e. after all the replicas are deleted.  I guess if you want the test to be moved so that it runs right after the creation, then I\u0027d have to put a \u0027poll_until\u0027 in it, but the way it\u0027s written now, if the the backup is still around, it\u0027s probably an error.","commit_id":"5c4c924b50238f6ea721082690cf5e1fffa01bb4"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"5ab496ad86e44709f80e6d482820438c2aef5447","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def run_test_backup_deleted(self):"},{"line_number":274,"context_line":"        backup \u003d self.auth_client.instances.backups(self.master_id)"},{"line_number":275,"context_line":"        self.assert_equal(self.master_backup_count, len(backup))"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_46403107","line":275,"in_reply_to":"fa69d971_a6ab911c","updated":"2016-01-06 17:14:33.000000000","message":"That\u0027s a valid point, Craig, but probably a worthwhile tradeoff to have this small exposure to save time on every test run.","commit_id":"5c4c924b50238f6ea721082690cf5e1fffa01bb4"}]}
