)]}'
{"releasenotes/notes/fix-mysql-replication-bf2b131994a5a772.yaml":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"eb83a938007f0e04b1558238b2d094293340a1bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1a122d0e_86b978ec","line":6,"updated":"2016-04-16 02:00:27.000000000","message":"same comment as on your other change req. See https://review.openstack.org/#/c/300253/2/releasenotes/notes/fix-mysql-replication-ca0928069c0bfab8.yaml","commit_id":"f545859a5793c004a2aa8b1d44b7536812736cb9"}],"trove/guestagent/strategies/replication/mysql_gtid.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"9407b66dbdf1887dcd678504b7a180b2e3246b89","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    def _read_last_master_gtid(self):"},{"line_number":72,"context_line":"        INFO_FILE \u003d (\u0027%s/xtrabackup_binlog_info\u0027 % MySqlApp.get_data_dir())"},{"line_number":73,"context_line":"        LOG.info(_(\"Setting read permissions on %s\") % INFO_FILE)"},{"line_number":74,"context_line":"        operating_system.chmod(INFO_FILE, FileMode.ADD_READ_ALL, as_root\u003dTrue)"},{"line_number":75,"context_line":"        LOG.info(_(\"Reading last master GTID from %s\") % INFO_FILE)"},{"line_number":76,"context_line":"        try:"},{"line_number":77,"context_line":"            with open(INFO_FILE, \u0027rb\u0027) as f:"},{"line_number":78,"context_line":"                row \u003d csv.reader(f, delimiter\u003d\u0027\\t\u0027,"},{"line_number":79,"context_line":"                                 skipinitialspace\u003dTrue).next()"},{"line_number":80,"context_line":"                return row[2]"},{"line_number":81,"context_line":"        except (IOError, IndexError) as ex:"},{"line_number":82,"context_line":"            LOG.exception(ex)"},{"line_number":83,"context_line":"            raise self.UnableToDetermineLastMasterGTID("}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_02f4a658","line":80,"range":{"start_line":74,"start_character":0,"end_line":80,"end_character":29},"updated":"2016-04-27 16:39:13.000000000","message":"You can achieve the same (+ no need to chmod) with:\n\n# info will contain something like: {\u0027mysql-bin.000027\u0027: [23424718, \u0027bbdd1,mysql\u0027, ...]}\ninfo \u003d operating_system.read_file(INFO_FILE, codec\u003dPropertiesCodec(delimiter\u003d\u0027\\t\u0027, as_root\u003dTrue)\nreturn list(info.values())[0][2]","commit_id":"09a312ae3af1958df6dadcfd68dfae7261971fa3"}],"trove/tests/scenario/groups/replication_group.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"43b5374e9f9decf80a65ddbb501235213daa92b3","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    @test(runs_after\u003d[create_single_replica])"},{"line_number":50,"context_line":"    def add_data_after_replica(self):"},{"line_number":51,"context_line":"        \"\"\"Add data to master after initial replica is setup\"\"\""},{"line_number":52,"context_line":"        self.test_runner.run_add_data_for_replication(data_type\u003dDataType.micro)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @test(runs_after\u003d[add_data_after_replica])"},{"line_number":55,"context_line":"    def verify_data_after_replica(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_e7690927","line":52,"range":{"start_line":52,"start_character":25,"end_line":52,"end_character":54},"updated":"2016-04-05 20:38:41.000000000","message":"I think it would be better to add a new runner method \u0027run_add_data_after_replica\u0027 that calls the assert. If someone overrides run_add_data_for_replication, then this test will be overridden as well, and the next test might fail.","commit_id":"38d94c3e0ca818e494732d5bd972fabd6f701667"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"43b5374e9f9decf80a65ddbb501235213daa92b3","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    @test(runs_after\u003d[add_data_after_replica])"},{"line_number":55,"context_line":"    def verify_data_after_replica(self):"},{"line_number":56,"context_line":"        \"\"\"Verify data exists on single replica\"\"\""},{"line_number":57,"context_line":"        self.test_runner.run_verify_replica_data_after_single()"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @test(runs_after\u003d[verify_data_after_replica])"},{"line_number":60,"context_line":"    def create_multiple_replicas(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_47f43585","line":57,"range":{"start_line":57,"start_character":29,"end_line":57,"end_character":61},"updated":"2016-04-05 20:38:41.000000000","message":"+0 Typically, this is called run_\u003cname_of_test\u003e so in this case it should be run_verify_data_after_replica.  Either that or the test name should be verify_replica_data_after_single\n(I know nothing enforces this, but so far all the tests have been written this way, so it\u0027s probably a good idea to continue the pattern.)","commit_id":"38d94c3e0ca818e494732d5bd972fabd6f701667"}]}
