)]}'
{"trove/guestagent/datastore/cassandra/manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c86b1389cadfcdd30e69b61df98af2c4bd64848d","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":201,"context_line":"            operation\u003d\u0027attach_replication_slave\u0027, datastore\u003dMANAGER)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def detach_replica(self):"},{"line_number":204,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":205,"context_line":"            operation\u003d\u0027detach_replica\u0027, datastore\u003dMANAGER)"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1abeadc6_7771680b","line":203,"updated":"2014-08-27 19:07:39.000000000","message":"please revert this change since this method is a part of guest API and should contain context attribute","commit_id":"691a3a508d6094de87271c81aec0a61b94d4e605"},{"author":{"_account_id":9749,"name":"Greg Lucas","email":"greg@glucas.net","username":"glucas"},"change_message_id":"78738d3596d5ba7cfd2a372770b97d5481d4b86f","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":201,"context_line":"            operation\u003d\u0027attach_replication_slave\u0027, datastore\u003dMANAGER)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def detach_replica(self):"},{"line_number":204,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":205,"context_line":"            operation\u003d\u0027detach_replica\u0027, datastore\u003dMANAGER)"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1abeadc6_38943d8a","line":203,"in_reply_to":"1abeadc6_7771680b","updated":"2014-08-27 20:17:02.000000000","message":"Added back the context here and for the other datastore managers.","commit_id":"691a3a508d6094de87271c81aec0a61b94d4e605"}],"trove/instance/models.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c5007ca253eae1728730bb1e4dcf5951f5af0376","unresolved":false,"context_lines":[{"line_number":787,"context_line":""},{"line_number":788,"context_line":"    def detach_replication(self):"},{"line_number":789,"context_line":"        self.validate_can_perform_action()"},{"line_number":790,"context_line":"        LOG.info(_(\"Detaching instance %s from its replication master...\")"},{"line_number":791,"context_line":"                 % self.id)"},{"line_number":792,"context_line":"        if not self.slave_of_id:"},{"line_number":793,"context_line":"            raise exception.BadRequest("}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_4941dca7","line":790,"updated":"2014-07-14 19:59:20.000000000","message":"would be useful to add master ID here","commit_id":"f5b8cbd0aa3d491a4b4e0d10f76bb1dae9672c62"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"54311d0b446fda847523c0d93820165c2e05ebb4","unresolved":false,"context_lines":[{"line_number":822,"context_line":""},{"line_number":823,"context_line":"    def detach_replica(self):"},{"line_number":824,"context_line":"        self.validate_can_perform_action()"},{"line_number":825,"context_line":"        LOG.info(_(\"Detaching instance %s from its replication source...\")"},{"line_number":826,"context_line":"                 % self.id)"},{"line_number":827,"context_line":"        if not self.slave_of_id:"},{"line_number":828,"context_line":"            raise exception.BadRequest(_(\"Instance %s is not a replica.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"1abeadc6_37cc5089","line":825,"updated":"2014-08-27 19:03:37.000000000","message":"for what it\u0027s worth, there was a patch not too long ago that removed ellipses in favor of a single period.","commit_id":"691a3a508d6094de87271c81aec0a61b94d4e605"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c86b1389cadfcdd30e69b61df98af2c4bd64848d","unresolved":false,"context_lines":[{"line_number":822,"context_line":""},{"line_number":823,"context_line":"    def detach_replica(self):"},{"line_number":824,"context_line":"        self.validate_can_perform_action()"},{"line_number":825,"context_line":"        LOG.info(_(\"Detaching instance %s from its replication source...\")"},{"line_number":826,"context_line":"                 % self.id)"},{"line_number":827,"context_line":"        if not self.slave_of_id:"},{"line_number":828,"context_line":"            raise exception.BadRequest(_(\"Instance %s is not a replica.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"1abeadc6_57e2aca0","line":825,"in_reply_to":"1abeadc6_37cc5089","updated":"2014-08-27 19:07:39.000000000","message":"+1","commit_id":"691a3a508d6094de87271c81aec0a61b94d4e605"},{"author":{"_account_id":9749,"name":"Greg Lucas","email":"greg@glucas.net","username":"glucas"},"change_message_id":"78738d3596d5ba7cfd2a372770b97d5481d4b86f","unresolved":false,"context_lines":[{"line_number":822,"context_line":""},{"line_number":823,"context_line":"    def detach_replica(self):"},{"line_number":824,"context_line":"        self.validate_can_perform_action()"},{"line_number":825,"context_line":"        LOG.info(_(\"Detaching instance %s from its replication source...\")"},{"line_number":826,"context_line":"                 % self.id)"},{"line_number":827,"context_line":"        if not self.slave_of_id:"},{"line_number":828,"context_line":"            raise exception.BadRequest(_(\"Instance %s is not a replica.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"1abeadc6_98eab10d","line":825,"in_reply_to":"1abeadc6_37cc5089","updated":"2014-08-27 20:17:02.000000000","message":"Done","commit_id":"691a3a508d6094de87271c81aec0a61b94d4e605"}],"trove/instance/service.py":[{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"797dd7f11ab2fbabebf84772c3d668bd8d8dca09","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            \u0027restart\u0027: self._action_restart,"},{"line_number":83,"context_line":"            \u0027resize\u0027: self._action_resize,"},{"line_number":84,"context_line":"            \u0027reset_password\u0027: self._action_reset_password,"},{"line_number":85,"context_line":"            \u0027detach_replication\u0027: self._action_detach_replication"},{"line_number":86,"context_line":"        }"},{"line_number":87,"context_line":"        selected_action \u003d None"},{"line_number":88,"context_line":"        for key in body:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_216f0195","line":85,"updated":"2014-06-24 03:21:07.000000000","message":"I don\u0027t recall if this was already discussed or not.  I don\u0027t really like adding more of these Actions, unless it\u0027s absolutely necessary.  \n\nFor this sort of operation, i think we can continue to do it in a RESTful way if we thought of a PUT to /instances with slave_of \u003d null to mean a detach.","commit_id":"f5b8cbd0aa3d491a4b4e0d10f76bb1dae9672c62"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c5007ca253eae1728730bb1e4dcf5951f5af0376","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            \u0027restart\u0027: self._action_restart,"},{"line_number":83,"context_line":"            \u0027resize\u0027: self._action_resize,"},{"line_number":84,"context_line":"            \u0027reset_password\u0027: self._action_reset_password,"},{"line_number":85,"context_line":"            \u0027detach_replication\u0027: self._action_detach_replication"},{"line_number":86,"context_line":"        }"},{"line_number":87,"context_line":"        selected_action \u003d None"},{"line_number":88,"context_line":"        for key in body:"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_49fabc75","line":85,"in_reply_to":"1ae5cdf2_216f0195","updated":"2014-07-14 19:59:20.000000000","message":"+1 to Vipuls\u0027 concern, you should not add more actions that we have, we\u0027re still able to extend API, so, we don\u0027t have to walk around what we have.","commit_id":"f5b8cbd0aa3d491a4b4e0d10f76bb1dae9672c62"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"54311d0b446fda847523c0d93820165c2e05ebb4","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def edit(self, req, id, body, tenant_id):"},{"line_number":259,"context_line":"        \"\"\""},{"line_number":260,"context_line":"        Updates the instance to detach from the replication source."},{"line_number":261,"context_line":"        \"\"\""},{"line_number":262,"context_line":"        LOG.info(_(\"Editing instance for tenant id %s.\") % tenant_id)"},{"line_number":263,"context_line":"        LOG.debug(logging.mask_password(\"req: %s\"), req)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1abeadc6_57738c4d","line":260,"updated":"2014-08-27 19:03:37.000000000","message":"this docstring is going to be immediately wrong once \u0027edit\u0027 supports editing another field. i\u0027d suggest to make it more generic.","commit_id":"691a3a508d6094de87271c81aec0a61b94d4e605"},{"author":{"_account_id":9749,"name":"Greg Lucas","email":"greg@glucas.net","username":"glucas"},"change_message_id":"78738d3596d5ba7cfd2a372770b97d5481d4b86f","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def edit(self, req, id, body, tenant_id):"},{"line_number":259,"context_line":"        \"\"\""},{"line_number":260,"context_line":"        Updates the instance to detach from the replication source."},{"line_number":261,"context_line":"        \"\"\""},{"line_number":262,"context_line":"        LOG.info(_(\"Editing instance for tenant id %s.\") % tenant_id)"},{"line_number":263,"context_line":"        LOG.debug(logging.mask_password(\"req: %s\"), req)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1abeadc6_b8ef6d1d","line":260,"in_reply_to":"1abeadc6_57738c4d","updated":"2014-08-27 20:17:02.000000000","message":"Done","commit_id":"691a3a508d6094de87271c81aec0a61b94d4e605"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"0726546737be32552b9baf0da284ec01b4208766","unresolved":false,"context_lines":[{"line_number":270,"context_line":"            LOG.debug(\"Detaching replica from source.\")"},{"line_number":271,"context_line":"            instance.detach_replica()"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        return wsgi.Result(None, 204)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def configuration(self, req, tenant_id, id):"},{"line_number":276,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_a82c7d03","line":273,"updated":"2014-09-02 17:59:21.000000000","message":"why is this a 204 vs. a 202?","commit_id":"e1d340635ca3e45c6d8f7af9d21d642cd822b6d2"},{"author":{"_account_id":9749,"name":"Greg Lucas","email":"greg@glucas.net","username":"glucas"},"change_message_id":"589ac2cbce9b3610c31c2bfa3d4fd5fa37cbb4b9","unresolved":false,"context_lines":[{"line_number":270,"context_line":"            LOG.debug(\"Detaching replica from source.\")"},{"line_number":271,"context_line":"            instance.detach_replica()"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        return wsgi.Result(None, 204)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def configuration(self, req, tenant_id, id):"},{"line_number":276,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_63e636b6","line":273,"in_reply_to":"fa98f980_a82c7d03","updated":"2014-09-02 18:29:01.000000000","message":"I had used 204 to be consistent with the already-in-flight review \u003chttps://review.openstack.org/#/c/92701\u003e, but I agree that 202 is more appropriate here. \n\nDone.","commit_id":"e1d340635ca3e45c6d8f7af9d21d642cd822b6d2"},{"author":{"_account_id":4463,"name":"iccha-sethi","email":"iccha.sethi@rackspace.com","username":"iccha-sethi"},"change_message_id":"0bbbd25a186a0ebc08dafd66131e4661f521a287","unresolved":false,"context_lines":[{"line_number":270,"context_line":"            LOG.debug(\"Detaching replica from source.\")"},{"line_number":271,"context_line":"            instance.detach_replica()"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        return wsgi.Result(None, 204)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def configuration(self, req, tenant_id, id):"},{"line_number":276,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_ce09c9de","line":273,"in_reply_to":"fa98f980_a82c7d03","updated":"2014-09-02 18:21:48.000000000","message":"hmm i can see it being a 202 since detaching is an async call.","commit_id":"e1d340635ca3e45c6d8f7af9d21d642cd822b6d2"}],"trove/taskmanager/api.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c5007ca253eae1728730bb1e4dcf5951f5af0376","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                  self.make_msg(\"restart\", instance_id\u003dinstance_id))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def detach_replication(self, instance_id):"},{"line_number":91,"context_line":"        LOG.debug(\"Making async call to detach slave: %s\" % instance_id)"},{"line_number":92,"context_line":"        self.cast(self.context,"},{"line_number":93,"context_line":"                  self.make_msg(\"detach_replication\", instance_id\u003dinstance_id))"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_298588ce","line":91,"updated":"2014-07-14 19:59:20.000000000","message":"same here, could you please add master id here","commit_id":"f5b8cbd0aa3d491a4b4e0d10f76bb1dae9672c62"}],"trove/taskmanager/models.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c5007ca253eae1728730bb1e4dcf5951f5af0376","unresolved":false,"context_lines":[{"line_number":784,"context_line":"    def detach_replication_slave(self):"},{"line_number":785,"context_line":"        LOG.debug(\"Calling detach_replication_slave on %s\" % self.id)"},{"line_number":786,"context_line":"        self.guest.detach_replication_slave()"},{"line_number":787,"context_line":"        self.update_db(self, slave_of_id\u003dNone)"},{"line_number":788,"context_line":""},{"line_number":789,"context_line":"    def reboot(self):"},{"line_number":790,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_a9def8d7","line":787,"updated":"2014-07-14 19:59:20.000000000","message":"no need to pass slave directly, as i can recall, update_db is a method of BaseInstance class, so, passing \u0027self\u0027 as first parameter not needed\n\nhttps://github.com/openstack/trove/blob/master/trove/instance/models.py#L550-L554","commit_id":"f5b8cbd0aa3d491a4b4e0d10f76bb1dae9672c62"},{"author":{"_account_id":9749,"name":"Greg Lucas","email":"greg@glucas.net","username":"glucas"},"change_message_id":"8dbe348804d5af8061197d3b06dc4031763e9dcb","unresolved":false,"context_lines":[{"line_number":784,"context_line":"    def detach_replication_slave(self):"},{"line_number":785,"context_line":"        LOG.debug(\"Calling detach_replication_slave on %s\" % self.id)"},{"line_number":786,"context_line":"        self.guest.detach_replication_slave()"},{"line_number":787,"context_line":"        self.update_db(self, slave_of_id\u003dNone)"},{"line_number":788,"context_line":""},{"line_number":789,"context_line":"    def reboot(self):"},{"line_number":790,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ac7a964_f5f30b08","line":787,"in_reply_to":"baada198_a9def8d7","updated":"2014-08-14 17:44:10.000000000","message":"Done","commit_id":"f5b8cbd0aa3d491a4b4e0d10f76bb1dae9672c62"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"60f27647e9defdd5caf1a5cf73a9a1cae74bbdac","unresolved":false,"context_lines":[{"line_number":846,"context_line":""},{"line_number":847,"context_line":"    def detach_replica(self):"},{"line_number":848,"context_line":"        LOG.debug(\"Calling detach_replica on %s\" % self.id)"},{"line_number":849,"context_line":"        self.guest.detach_replica()"},{"line_number":850,"context_line":"        self.update_db(slave_of_id\u003dNone)"},{"line_number":851,"context_line":""},{"line_number":852,"context_line":"    def reboot(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_d3b9902f","line":849,"updated":"2014-08-27 04:59:25.000000000","message":"Looks like this could cause a GuestError or Timeout because its a call from taskmanager to the guest to detach_replica. I think this needs some error handling.","commit_id":"424d8509f35e2d6e0477573c1ca28fd6582315f0"},{"author":{"_account_id":9749,"name":"Greg Lucas","email":"greg@glucas.net","username":"glucas"},"change_message_id":"9c20131b4a9fbbae9b53885a6b5e61b04ec22775","unresolved":false,"context_lines":[{"line_number":846,"context_line":""},{"line_number":847,"context_line":"    def detach_replica(self):"},{"line_number":848,"context_line":"        LOG.debug(\"Calling detach_replica on %s\" % self.id)"},{"line_number":849,"context_line":"        self.guest.detach_replica()"},{"line_number":850,"context_line":"        self.update_db(slave_of_id\u003dNone)"},{"line_number":851,"context_line":""},{"line_number":852,"context_line":"    def reboot(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_e6115005","line":849,"in_reply_to":"1abeadc6_d3b9902f","updated":"2014-08-27 17:25:44.000000000","message":"Done","commit_id":"424d8509f35e2d6e0477573c1ca28fd6582315f0"}]}
