)]}'
{"trove/guestagent/dbaas.py":[{"author":{"_account_id":694,"name":"Tim Simpson","email":"tim.simpson@rackspace.com","username":"tim-simpson"},"change_message_id":"33d1ec7f55db86d2c75712dcb440d2400915b87f","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @periodic_task.periodic_task(ticks_between_runs\u003d3)"},{"line_number":89,"context_line":"    def update_status(self, context):"},{"line_number":90,"context_line":"        \"\"\"Update the status of the MySQL service\"\"\""},{"line_number":91,"context_line":"        self.status.update()"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def prepare(self, context, databases, memory_mb, users, device_path\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2F3ps%3D","line":90,"updated":"2013-10-25 22:33:31.000000000","message":"If the goal is to be db agnostic, this shouldn\u0027t reference MySQL.","commit_id":"203011d4bf60aa86112f2897658fd9ff8b2bc046"},{"author":{"_account_id":694,"name":"Tim Simpson","email":"tim.simpson@rackspace.com","username":"tim-simpson"},"change_message_id":"33d1ec7f55db86d2c75712dcb440d2400915b87f","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        if users:"},{"line_number":131,"context_line":"            self.create_user(context, users)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        LOG.info(\u0027\"prepare\" call has finished.\u0027)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def get_filesystem_stats(self, context, fs_path):"},{"line_number":136,"context_line":"        \"\"\" Gets the filesystem stats for the path given \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2F3pc%3D","line":133,"updated":"2013-10-25 22:33:31.000000000","message":"I think lines 119-133 of this function need to move to a MySqlApp method named \"prepare.\" Its just too specific to MySQL to live with the rest of this code.","commit_id":"203011d4bf60aa86112f2897658fd9ff8b2bc046"},{"author":{"_account_id":694,"name":"Tim Simpson","email":"tim.simpson@rackspace.com","username":"tim-simpson"},"change_message_id":"10a7870279776c6533f5705098424667b8465cf3","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        if users:"},{"line_number":131,"context_line":"            self.create_user(context, users)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        LOG.info(\u0027\"prepare\" call has finished.\u0027)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def get_filesystem_stats(self, context, fs_path):"},{"line_number":136,"context_line":"        \"\"\" Gets the filesystem stats for the path given \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2Fy58%3D","line":133,"in_reply_to":"AAAATn%2F%2F3mc%3D","updated":"2013-10-28 22:51:44.000000000","message":"We had a discussion in the public weeks ago about how the notion of \"user\" or \"database\" was not even common to all the datastore types that could be supported by Trove. Passing None is not good enough. Other datastore types might have actions they wish to optionally perform during the prepare call as well.","commit_id":"203011d4bf60aa86112f2897658fd9ff8b2bc046"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"3aa9d8131b92b01ee2e17452fc2d46cf0a0cb2d6","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        if users:"},{"line_number":131,"context_line":"            self.create_user(context, users)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        LOG.info(\u0027\"prepare\" call has finished.\u0027)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def get_filesystem_stats(self, context, fs_path):"},{"line_number":136,"context_line":"        \"\"\" Gets the filesystem stats for the path given \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2F3mc%3D","line":133,"in_reply_to":"AAAATn%2F%2F3pc%3D","updated":"2013-10-25 22:48:16.000000000","message":"I disagree with you, with code is common to any of databases, that is why it moved. Almost all reviews with datastores needs prepare call, and 90% of prepare call is copied \u003d dublication. we also have post_prepare call which is database specific and database specific magic happens here.\n\nLet\u0027s go through lines:\nL97: status - common\nL99-L121: volume preparations - common\nL123-126: generic method that could be user or not - common\nL127-131: database/user preparations - could be avoided by passing None - common, again.\n\nConclusion: current code is 100% common for all current and future managers.","commit_id":"203011d4bf60aa86112f2897658fd9ff8b2bc046"}]}
