)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"519753cb437997844ca92f5773107e0d9c262234","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds API methods for the V1 implementation of replication."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Partially implements: blueprint Trove-v1-MySQL-Replication"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I1814ce0b928e2b7a46c2f45aa4483aa04892bf13"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7adec928_ed28f5e3","line":11,"updated":"2014-05-19 15:56:49.000000000","message":"Partially implements: blueprint replication-v1","commit_id":"7eac689b7566e4a7e2bdd12d87c67c0a38dfb080"}],"trove/guestagent/api.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"c82159be8852b6022f3084cac7f9a17dc65c10bb","unresolved":false,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    def get_replication_snapshot(self, master_config\u003dNone):"},{"line_number":326,"context_line":"        LOG.debug(_(\"Retrieving replication snapshot from instance %s\"),"},{"line_number":327,"context_line":"                  self.id)"},{"line_number":328,"context_line":"        self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":329,"context_line":"                   master_config\u003dmaster_config)"},{"line_number":330,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad9bd40_c9d7054a","line":327,"updated":"2014-05-05 18:32:50.000000000","message":"Not sure why the self.id has a \u0027,\u0027 before it while the other debug statement variables use \u0027%\u0027 (but it matches the rest of the file ...)","commit_id":"7eac689b7566e4a7e2bdd12d87c67c0a38dfb080"},{"author":{"_account_id":6162,"name":"Dan Nguyen","email":"dan.nguyens.mail@gmail.com","username":"daniel-a-nguyen"},"change_message_id":"e4257aa6d6f8650f6ca5f38c3d563791de705470","unresolved":false,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    def get_replication_snapshot(self, master_config\u003dNone):"},{"line_number":326,"context_line":"        LOG.debug(_(\"Retrieving replication snapshot from instance %s\"),"},{"line_number":327,"context_line":"                  self.id)"},{"line_number":328,"context_line":"        self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":329,"context_line":"                   master_config\u003dmaster_config)"},{"line_number":330,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad9bd40_940fb687","line":327,"in_reply_to":"9ad9bd40_2b4ccd9d","updated":"2014-05-06 16:14:14.000000000","message":"np, I can remove my -1","commit_id":"7eac689b7566e4a7e2bdd12d87c67c0a38dfb080"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"6133914c7c33714d98ae66ff2ad10622fa2d7cae","unresolved":false,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    def get_replication_snapshot(self, master_config\u003dNone):"},{"line_number":326,"context_line":"        LOG.debug(_(\"Retrieving replication snapshot from instance %s\"),"},{"line_number":327,"context_line":"                  self.id)"},{"line_number":328,"context_line":"        self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":329,"context_line":"                   master_config\u003dmaster_config)"},{"line_number":330,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad9bd40_2b4ccd9d","line":327,"in_reply_to":"9ad9bd40_8275cffb","updated":"2014-05-06 14:49:29.000000000","message":", works fine in the single argument case.  If we wish to declare that % always be used instead of , that\u0027s OK, but should be handled in a separate bug that corrects the issue in all of trove and possibly openstack.  My goal here is to mimic existing usage in the file.","commit_id":"7eac689b7566e4a7e2bdd12d87c67c0a38dfb080"},{"author":{"_account_id":6162,"name":"Dan Nguyen","email":"dan.nguyens.mail@gmail.com","username":"daniel-a-nguyen"},"change_message_id":"c3b1a3e2681286d90ae3929a83c3126ba96cd17b","unresolved":false,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    def get_replication_snapshot(self, master_config\u003dNone):"},{"line_number":326,"context_line":"        LOG.debug(_(\"Retrieving replication snapshot from instance %s\"),"},{"line_number":327,"context_line":"                  self.id)"},{"line_number":328,"context_line":"        self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":329,"context_line":"                   master_config\u003dmaster_config)"},{"line_number":330,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad9bd40_8275cffb","line":327,"in_reply_to":"9ad9bd40_c9d7054a","updated":"2014-05-06 00:33:42.000000000","message":"Good catch Peter.\n\nYou probably will want % instead of the , to get the var interpolated.\nNotice that this is in several places in the file too.","commit_id":"7eac689b7566e4a7e2bdd12d87c67c0a38dfb080"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"a2dfeb3b06e198b9f4803f678833c7d98059da11","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    def get_replication_snapshot(self, master_config\u003dNone):"},{"line_number":325,"context_line":"        LOG.debug(_(\"Retrieving replication snapshot from instance %s\"),"},{"line_number":326,"context_line":"                  self.id)"},{"line_number":327,"context_line":"        self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":328,"context_line":"                   master_config\u003dmaster_config)"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_13a174a9","line":326,"updated":"2014-05-21 23:47:37.000000000","message":"Looks like the merge removed the \"_(\" from debug statements - you should probably do the same (sorry!)","commit_id":"5d86682576ad3f978e95fa5f3536fcdd37600258"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"a2dfeb3b06e198b9f4803f678833c7d98059da11","unresolved":false,"context_lines":[{"line_number":331,"context_line":"        LOG.debug(_(\"Configuring instance %(slave)s to \""},{"line_number":332,"context_line":"                    \"replicate from %(master)s\") % {"},{"line_number":333,"context_line":"                  \u0027master\u0027: snapshot.get(\u0027master\u0027).get(\u0027id\u0027),"},{"line_number":334,"context_line":"                  \u0027slave\u0027: self.id})"},{"line_number":335,"context_line":"        self._call(\"attach_replication_slave\", AGENT_HIGH_TIMEOUT,"},{"line_number":336,"context_line":"                   snapshot\u003dsnapshot, slave_config\u003dslave_config)"},{"line_number":337,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_33a670c2","line":334,"updated":"2014-05-21 23:47:37.000000000","message":"ditto","commit_id":"5d86682576ad3f978e95fa5f3536fcdd37600258"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"a2dfeb3b06e198b9f4803f678833c7d98059da11","unresolved":false,"context_lines":[{"line_number":336,"context_line":"                   snapshot\u003dsnapshot, slave_config\u003dslave_config)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    def detach_replication_slave(self):"},{"line_number":339,"context_line":"        LOG.debug(_(\"Detaching slave %s from its master\"), self.id)"},{"line_number":340,"context_line":"        self._call(\"detach_replication_slave\", AGENT_LOW_TIMEOUT)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def demote_replication_master(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_b391a054","line":339,"updated":"2014-05-21 23:47:37.000000000","message":"ditto","commit_id":"5d86682576ad3f978e95fa5f3536fcdd37600258"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"a2dfeb3b06e198b9f4803f678833c7d98059da11","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        self._call(\"detach_replication_slave\", AGENT_LOW_TIMEOUT)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def demote_replication_master(self):"},{"line_number":343,"context_line":"        LOG.debug(_(\"Demoting instance %s to non-master\"), self.id)"},{"line_number":344,"context_line":"        self._call(\"demote_replication_master\", AGENT_LOW_TIMEOUT)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_d39e2c63","line":343,"updated":"2014-05-21 23:47:37.000000000","message":"ditto","commit_id":"5d86682576ad3f978e95fa5f3536fcdd37600258"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"87e9ddad870d8d92ec792aa00dec1523e04fa908","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    def get_replication_snapshot(self, master_config\u003dNone):"},{"line_number":325,"context_line":"        LOG.debug(\"Retrieving replication snapshot from instance %s\", self.id)"},{"line_number":326,"context_line":"        self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":327,"context_line":"                   master_config\u003dmaster_config)"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def attach_replication_slave(self, snapshot, slave_config\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7adec928_ee06b620","line":326,"updated":"2014-05-23 04:11:57.000000000","message":"I am assuming you this call may take a while, which is why you are choosing HIGH_TIMEOUT.  If that\u0027s the case, we need to reconsider making this a synchronous call, and instead use cast().","commit_id":"1f5df2611879992a149aae9cc0b5921013ef3223"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"d9d1d7ceba6096feb7e3067645854d5cdd5f7db9","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    def get_replication_snapshot(self, master_config\u003dNone):"},{"line_number":325,"context_line":"        LOG.debug(\"Retrieving replication snapshot from instance %s\", self.id)"},{"line_number":326,"context_line":"        self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":327,"context_line":"                   master_config\u003dmaster_config)"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def attach_replication_slave(self, snapshot, slave_config\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_405ccb25","line":326,"in_reply_to":"5adbc538_63903bed","updated":"2014-06-02 20:29:24.000000000","message":"Ok, if there are use cases where the Taskmanager needs to perform something after this is invoked, then i\u0027m ok with it.  It\u0027s a little difficult to know how this method will get used.","commit_id":"1f5df2611879992a149aae9cc0b5921013ef3223"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"9bbe52e1e963b77c6f69cc241ba21a72d9e7b9b8","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    def get_replication_snapshot(self, master_config\u003dNone):"},{"line_number":325,"context_line":"        LOG.debug(\"Retrieving replication snapshot from instance %s\", self.id)"},{"line_number":326,"context_line":"        self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":327,"context_line":"                   master_config\u003dmaster_config)"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def attach_replication_slave(self, snapshot, slave_config\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_63903bed","line":326,"in_reply_to":"7adec928_ee06b620","updated":"2014-05-26 15:04:33.000000000","message":"I assumed we need to use synchronous calls because the taskmanager will be waiting to move on to the next step, like resize.","commit_id":"1f5df2611879992a149aae9cc0b5921013ef3223"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"87e9ddad870d8d92ec792aa00dec1523e04fa908","unresolved":false,"context_lines":[{"line_number":329,"context_line":"    def attach_replication_slave(self, snapshot, slave_config\u003dNone):"},{"line_number":330,"context_line":"        LOG.debug(\"Configuring instance %s to replicate from %s\","},{"line_number":331,"context_line":"                  self.id, snapshot.get(\u0027master\u0027).get(\u0027id\u0027))"},{"line_number":332,"context_line":"        self._call(\"attach_replication_slave\", AGENT_HIGH_TIMEOUT,"},{"line_number":333,"context_line":"                   snapshot\u003dsnapshot, slave_config\u003dslave_config)"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    def detach_replication_slave(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7adec928_ce0bba29","line":332,"updated":"2014-05-23 04:11:57.000000000","message":"I am assuming you this call may take a while, which is why you are choosing HIGH_TIMEOUT.  If that\u0027s the case, we need to reconsider making this a synchronous call, and instead use cast().","commit_id":"1f5df2611879992a149aae9cc0b5921013ef3223"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"d9d1d7ceba6096feb7e3067645854d5cdd5f7db9","unresolved":false,"context_lines":[{"line_number":329,"context_line":"    def attach_replication_slave(self, snapshot, slave_config\u003dNone):"},{"line_number":330,"context_line":"        LOG.debug(\"Configuring instance %s to replicate from %s\","},{"line_number":331,"context_line":"                  self.id, snapshot.get(\u0027master\u0027).get(\u0027id\u0027))"},{"line_number":332,"context_line":"        self._call(\"attach_replication_slave\", AGENT_HIGH_TIMEOUT,"},{"line_number":333,"context_line":"                   snapshot\u003dsnapshot, slave_config\u003dslave_config)"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    def detach_replication_slave(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_4073ebb0","line":332,"in_reply_to":"5adbc538_43aa5f1a","updated":"2014-06-02 20:29:24.000000000","message":"Would all slave attaches be done in parallel?  If so, then let\u0027s make it async.","commit_id":"1f5df2611879992a149aae9cc0b5921013ef3223"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"9bbe52e1e963b77c6f69cc241ba21a72d9e7b9b8","unresolved":false,"context_lines":[{"line_number":329,"context_line":"    def attach_replication_slave(self, snapshot, slave_config\u003dNone):"},{"line_number":330,"context_line":"        LOG.debug(\"Configuring instance %s to replicate from %s\","},{"line_number":331,"context_line":"                  self.id, snapshot.get(\u0027master\u0027).get(\u0027id\u0027))"},{"line_number":332,"context_line":"        self._call(\"attach_replication_slave\", AGENT_HIGH_TIMEOUT,"},{"line_number":333,"context_line":"                   snapshot\u003dsnapshot, slave_config\u003dslave_config)"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    def detach_replication_slave(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_43aa5f1a","line":332,"in_reply_to":"7adec928_ce0bba29","updated":"2014-05-26 15:04:33.000000000","message":"We could do an async call here as it is the last step in the current design, but in the future the taskmanager will need to wait for the results as it will be attaching many slaves to a master.","commit_id":"1f5df2611879992a149aae9cc0b5921013ef3223"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"541f0303df915e0594ef654ae537b056bebac7f5","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        self._cast(\"apply_overrides\", overrides\u003doverrides)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    def get_replication_snapshot(self, master_config\u003dNone):"},{"line_number":326,"context_line":"        LOG.debug(\"Retrieving replication snapshot from instance %s\", self.id)"},{"line_number":327,"context_line":"        self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":328,"context_line":"                   master_config\u003dmaster_config)"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_88582dfa","line":326,"updated":"2014-06-21 21:25:17.000000000","message":"was another bug entered about the \",\" and \"%\" issue that was raised in earlier reviews or do we believe that this is a non-issue?","commit_id":"22c5e2fb51495e9fe7ad193fbbfb1a0869fcb2a5"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"5aeed19550242ef160812ea82dc66bcce2391933","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        self._cast(\"apply_overrides\", overrides\u003doverrides)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    def get_replication_snapshot(self, master_config\u003dNone):"},{"line_number":326,"context_line":"        LOG.debug(\"Retrieving replication snapshot from instance %s\", self.id)"},{"line_number":327,"context_line":"        self._call(\"get_replication_snapshot\", AGENT_HIGH_TIMEOUT,"},{"line_number":328,"context_line":"                   master_config\u003dmaster_config)"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_3f470479","line":326,"in_reply_to":"1ae5cdf2_88582dfa","updated":"2014-06-24 14:02:35.000000000","message":"Both are valid and both are used.  Using a \u0027,\u0027 with multiple arguments is a cleaner look though, so it\u0027s only with single arguments that you\u0027ll likely see \u0027%\u0027","commit_id":"22c5e2fb51495e9fe7ad193fbbfb1a0869fcb2a5"}],"trove/guestagent/datastore/mysql/manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"32e13fc595c4be3ac8af78eda58b9658f810a893","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        app.apply_overrides(overrides)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def get_replication_snapshot(self, master_config):"},{"line_number":207,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":208,"context_line":"            operation\u003d\u0027get_replication_snapshot\u0027, datastore\u003dMANAGER)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def attach_replication_slave(self, snapshot, slave_config):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_4d5bec2d","line":207,"updated":"2014-05-16 17:00:08.000000000","message":"I\u0027ve got one question. Are there plans to have promotion (slave to master)?","commit_id":"7eac689b7566e4a7e2bdd12d87c67c0a38dfb080"}]}
