)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b679c21ac0b52d74c1fd96c5bbbd5f12cf9661ae","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Andrew Bramley \u003candrew@parelastic.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-03-04 19:36:31 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Datastore Not Implemented exceptions and remove traceback from messages"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implemented a base class for managers to simplify handling of un-implemented methods"},{"line_number":10,"context_line":"Added exception for not implemented exceptions that indicates the operation name."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAVn%2F%2Fi4E%3D","line":7,"updated":"2014-03-05 14:07:09.000000000","message":"Too long commit title (71 symbol), should be less than 51.","commit_id":"258eee089108333872252f3d871a9d041a0ffc7f"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"742b30f1bc247d5c72a7f7118d856149759c89a5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Andrew Bramley \u003candrew@parelastic.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-03-04 19:36:31 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Datastore Not Implemented exceptions and remove traceback from messages"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implemented a base class for managers to simplify handling of un-implemented methods"},{"line_number":10,"context_line":"Added exception for not implemented exceptions that indicates the operation name."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAVn%2F%2FE2M%3D","line":7,"in_reply_to":"AAAAVn%2F%2Fi4E%3D","updated":"2014-03-10 06:17:38.000000000","message":"agreed. please review https://wiki.openstack.org/wiki/Gerrit_Workflow#Committing_Changes for commit msg guidelines.","commit_id":"258eee089108333872252f3d871a9d041a0ffc7f"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"3dc063b4344a4fb3696d9bba21c2bc986519ac84","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Andrew Bramley \u003candrew@parelastic.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-03-10 16:26:08 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve Datastore Not Implemented exceptions and"},{"line_number":8,"context_line":"remove traceback from messages"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Implemented a base class for managers to simplify"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAVn%2F%2B%2BRU%3D","line":7,"updated":"2014-03-10 23:12:41.000000000","message":"Change \"Improve Datastore Not Implemented exceptions and remove traceback from messages\" to \"Improve Datastore NotImplemented Exceptions\" and pep8 will go green.","commit_id":"8353aaf41ce3251bcc3583185feb8b0afce6a0aa"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"598784592571bb3dce2baec896c071128d947303","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Andrew Bramley \u003candrew@parelastic.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-03-10 16:26:08 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve Datastore Not Implemented exceptions and"},{"line_number":8,"context_line":"remove traceback from messages"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Implemented a base class for managers to simplify"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAVn%2F%2B864%3D","line":7,"in_reply_to":"AAAAVn%2F%2B%2BRU%3D","updated":"2014-03-11 03:25:25.000000000","message":"Check https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_GIT_commit_message_structure for OpenStack commit message style guidelines. \n\n(specifically \"The first line should be limited to 50 characters and should not end with a period\")","commit_id":"8353aaf41ce3251bcc3583185feb8b0afce6a0aa"}],"trove/common/exception.py":[{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9371b1fb6942cfbd591dd13ff1d2c3192647044a","unresolved":false,"context_lines":[{"line_number":367,"context_line":""},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"class RestoreBackupIntegrityError(TroveError):"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    message \u003d _(\"Current Swift object checksum does not match original \""},{"line_number":372,"context_line":"                \"checksum for backup %(backup_id)s.\")"},{"line_number":373,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FD0E%3D","side":"PARENT","line":370,"updated":"2014-03-10 10:03:39.000000000","message":"arbitrary removal. this would only be acceptable if it was done for all other occurrences, but that would still be outside the scope of this patch.","commit_id":"2b915486b5c4a20241597f5526c1a73d34b0ee6b"},{"author":{"_account_id":2340,"name":"Ionut Artarisi","email":"iartarisi@suse.cz","username":"mapleoin"},"change_message_id":"554ca7ee03e64172edd47fa87ffd8f40d8652af7","unresolved":false,"context_lines":[{"line_number":136,"context_line":"class DatastoreOperationNotSupported(OperationNotSupported):"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    message \u003d _(\"The \u0027%(operation)s\u0027 operation is not supported for \""},{"line_number":139,"context_line":"                \"this datastore.\")"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"class NoUniqueMatch(TroveError):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FkgY%3D","line":139,"updated":"2014-03-05 10:10:13.000000000","message":"It would be cool to have this mention the type of datastore used as well.","commit_id":"258eee089108333872252f3d871a9d041a0ffc7f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a545b6b1f98935a0c653c6388a3dc5a3dfccf56c","unresolved":false,"context_lines":[{"line_number":136,"context_line":"class DatastoreOperationNotSupported(OperationNotSupported):"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    message \u003d _(\"The \u0027%(operation)s\u0027 operation is not supported for \""},{"line_number":139,"context_line":"                \"this datastore.\")"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"class NoUniqueMatch(TroveError):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FDvU%3D","line":139,"in_reply_to":"AAAAVn%2F%2FE1c%3D","updated":"2014-03-10 10:26:09.000000000","message":"Since all exceptions are inherited from parrent TroveError, then yes.\nSignature should look like:\nclass DatastoreOperationNotSupported(TroveError).\n\nI still curious why do we need two types of exceptions, why does one type is not enoygh?","commit_id":"258eee089108333872252f3d871a9d041a0ffc7f"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"742b30f1bc247d5c72a7f7118d856149759c89a5","unresolved":false,"context_lines":[{"line_number":136,"context_line":"class DatastoreOperationNotSupported(OperationNotSupported):"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    message \u003d _(\"The \u0027%(operation)s\u0027 operation is not supported for \""},{"line_number":139,"context_line":"                \"this datastore.\")"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"class NoUniqueMatch(TroveError):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FE1c%3D","line":139,"in_reply_to":"AAAAVn%2F%2Fi3s%3D","updated":"2014-03-10 06:17:38.000000000","message":"mentioning the datastore isn\u0027t a necessity, but i echo denis\u0027 question. DatastoreOperationNotSupported(TroveError) should suffice, no?","commit_id":"258eee089108333872252f3d871a9d041a0ffc7f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b679c21ac0b52d74c1fd96c5bbbd5f12cf9661ae","unresolved":false,"context_lines":[{"line_number":136,"context_line":"class DatastoreOperationNotSupported(OperationNotSupported):"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    message \u003d _(\"The \u0027%(operation)s\u0027 operation is not supported for \""},{"line_number":139,"context_line":"                \"this datastore.\")"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"class NoUniqueMatch(TroveError):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Fi3s%3D","line":139,"in_reply_to":"AAAAVn%2F%2FkgY%3D","updated":"2014-03-05 14:07:09.000000000","message":"I don\u0027t see why do we need two types of errors.","commit_id":"258eee089108333872252f3d871a9d041a0ffc7f"},{"author":{"_account_id":9978,"name":"Pierre Rambaud","email":"pierre.rambaud@numergy.com","username":"GoT"},"change_message_id":"d7f3740fe96ea83e2fdab843cc9de87bbf4770b9","unresolved":false,"context_lines":[{"line_number":164,"context_line":"class GuestError(TroveError):"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    message \u003d _(\"An error occurred communicating with the guest: \""},{"line_number":167,"context_line":"                \"%(original_message)s\")"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"class GuestTimeout(TroveError):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Fkms%3D","line":167,"updated":"2014-03-05 09:58:27.000000000","message":"Why do you remove the dot here and not for TaskManagerError?","commit_id":"258eee089108333872252f3d871a9d041a0ffc7f"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"742b30f1bc247d5c72a7f7118d856149759c89a5","unresolved":false,"context_lines":[{"line_number":164,"context_line":"class GuestError(TroveError):"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    message \u003d _(\"An error occurred communicating with the guest: \""},{"line_number":167,"context_line":"                \"%(original_message)s\")"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"class GuestTimeout(TroveError):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FE2A%3D","line":167,"in_reply_to":"AAAAVn%2F%2Fkms%3D","updated":"2014-03-10 06:17:38.000000000","message":"agreed. no need to remove the period here.","commit_id":"258eee089108333872252f3d871a9d041a0ffc7f"}],"trove/guestagent/datastore/cassandra/manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":34,"context_line":"class Manager(BaseDbManager):"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def __init__(self):"},{"line_number":37,"context_line":"        BaseDbManager.__init__(self, \"cassandra\")"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.appStatus \u003d service.CassandraAppStatus()"},{"line_number":40,"context_line":"        self.app \u003d service.CassandraApp(self.appStatus)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4y8%3D","line":37,"updated":"2014-03-11 14:50:34.000000000","message":"BaseDbManager.__init__(self, MANAGER)","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":9750,"name":"Andrew Bramley","email":"andrew.bramley@verizonwireless.com","username":"abramley"},"change_message_id":"25aed7dfea6e2620b7581d62220a8a5893f1652c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"class Manager(BaseDbManager):"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def __init__(self):"},{"line_number":37,"context_line":"        BaseDbManager.__init__(self, \"cassandra\")"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.appStatus \u003d service.CassandraAppStatus()"},{"line_number":40,"context_line":"        self.app \u003d service.CassandraApp(self.appStatus)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4SE%3D","line":37,"in_reply_to":"AAAAVn%2F%2B4y8%3D","updated":"2014-03-11 15:28:46.000000000","message":"Done","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.appStatus.update()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def restart(self, context):"},{"line_number":48,"context_line":"        self.app.restart()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def get_filesystem_stats(self, context, fs_path):"},{"line_number":51,"context_line":"        \"\"\"Gets the filesystem stats for the path given. \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4vo%3D","line":48,"updated":"2014-03-11 14:50:34.000000000","message":"this method also could go to the BaseManager since its same for each datastore","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":9750,"name":"Andrew Bramley","email":"andrew.bramley@verizonwireless.com","username":"abramley"},"change_message_id":"25aed7dfea6e2620b7581d62220a8a5893f1652c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.appStatus.update()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def restart(self, context):"},{"line_number":48,"context_line":"        self.app.restart()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def get_filesystem_stats(self, context, fs_path):"},{"line_number":51,"context_line":"        \"\"\"Gets the filesystem stats for the path given. \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4Rs%3D","line":48,"in_reply_to":"AAAAVn%2F%2B4vo%3D","updated":"2014-03-11 15:28:46.000000000","message":"Not common across all data stores - see mysql. If we want to refactor this further then we should raise another bug","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def get_filesystem_stats(self, context, fs_path):"},{"line_number":51,"context_line":"        \"\"\"Gets the filesystem stats for the path given. \"\"\""},{"line_number":52,"context_line":"        mount_point \u003d CONF.get("},{"line_number":53,"context_line":"            \u0027mysql\u0027 if not MANAGER else MANAGER).mount_point"},{"line_number":54,"context_line":"        return dbaas.get_filesystem_volume_stats(mount_point)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def start_db_with_conf_changes(self, context, config_contents):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4v8%3D","line":53,"updated":"2014-03-11 14:50:34.000000000","message":"this method also could go to the BaseManager since its same for each datastore","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":9750,"name":"Andrew Bramley","email":"andrew.bramley@verizonwireless.com","username":"abramley"},"change_message_id":"25aed7dfea6e2620b7581d62220a8a5893f1652c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def get_filesystem_stats(self, context, fs_path):"},{"line_number":51,"context_line":"        \"\"\"Gets the filesystem stats for the path given. \"\"\""},{"line_number":52,"context_line":"        mount_point \u003d CONF.get("},{"line_number":53,"context_line":"            \u0027mysql\u0027 if not MANAGER else MANAGER).mount_point"},{"line_number":54,"context_line":"        return dbaas.get_filesystem_volume_stats(mount_point)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def start_db_with_conf_changes(self, context, config_contents):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4Ro%3D","line":53,"in_reply_to":"AAAAVn%2F%2B4v8%3D","updated":"2014-03-11 15:28:46.000000000","message":"Done","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"}],"trove/guestagent/datastore/couchbase/manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b679c21ac0b52d74c1fd96c5bbbd5f12cf9661ae","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from trove.common import cfg"},{"line_number":17,"context_line":"from trove.guestagent import dbaas"},{"line_number":18,"context_line":"from trove.guestagent import volume"},{"line_number":19,"context_line":"from trove.guestagent.datastore.manager import BaseDbManager"},{"line_number":20,"context_line":"from trove.guestagent.datastore.couchbase import service"},{"line_number":21,"context_line":"from trove.openstack.common import log as logging"},{"line_number":22,"context_line":"from trove.openstack.common import periodic_task"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Fi2g%3D","line":19,"updated":"2014-03-05 14:07:09.000000000","message":"out of scope of patch desription.","commit_id":"258eee089108333872252f3d871a9d041a0ffc7f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    based off of the datastore of the trove instance"},{"line_number":35,"context_line":"    \"\"\""},{"line_number":36,"context_line":"    def __init__(self):"},{"line_number":37,"context_line":"        BaseDbManager.__init__(self, \"couchbase\")"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.appStatus \u003d service.CouchbaseAppStatus()"},{"line_number":40,"context_line":"        self.app \u003d service.CouchbaseApp(self.appStatus)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4y4%3D","line":37,"updated":"2014-03-11 14:50:34.000000000","message":"BaseDbManager.__init__(self, MANAGER)","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":9750,"name":"Andrew Bramley","email":"andrew.bramley@verizonwireless.com","username":"abramley"},"change_message_id":"25aed7dfea6e2620b7581d62220a8a5893f1652c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    based off of the datastore of the trove instance"},{"line_number":35,"context_line":"    \"\"\""},{"line_number":36,"context_line":"    def __init__(self):"},{"line_number":37,"context_line":"        BaseDbManager.__init__(self, \"couchbase\")"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.appStatus \u003d service.CouchbaseAppStatus()"},{"line_number":40,"context_line":"        self.app \u003d service.CouchbaseApp(self.appStatus)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4RI%3D","line":37,"in_reply_to":"AAAAVn%2F%2B4y4%3D","updated":"2014-03-11 15:28:46.000000000","message":"Done","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        This method is called when the guest agent"},{"line_number":73,"context_line":"        gets a restart message from the taskmanager."},{"line_number":74,"context_line":"        \"\"\""},{"line_number":75,"context_line":"        self.app.restart()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def stop_db(self, context, do_not_start_on_reboot\u003dFalse):"},{"line_number":78,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4vY%3D","line":75,"updated":"2014-03-11 14:50:34.000000000","message":"this method also could go to the BaseManager since its same for each datastore","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        This method is called when the guest agent"},{"line_number":81,"context_line":"        gets a stop message from the taskmanager."},{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        self.app.stop_db(do_not_start_on_reboot\u003ddo_not_start_on_reboot)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def get_filesystem_stats(self, context, fs_path):"},{"line_number":86,"context_line":"        \"\"\"Gets the filesystem stats for the path given. \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4vU%3D","line":83,"updated":"2014-03-11 14:50:34.000000000","message":"this method also could go to the BaseManager since its same for each datastore","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":9750,"name":"Andrew Bramley","email":"andrew.bramley@verizonwireless.com","username":"abramley"},"change_message_id":"25aed7dfea6e2620b7581d62220a8a5893f1652c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        This method is called when the guest agent"},{"line_number":81,"context_line":"        gets a stop message from the taskmanager."},{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        self.app.stop_db(do_not_start_on_reboot\u003ddo_not_start_on_reboot)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def get_filesystem_stats(self, context, fs_path):"},{"line_number":86,"context_line":"        \"\"\"Gets the filesystem stats for the path given. \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4Q4%3D","line":83,"in_reply_to":"AAAAVn%2F%2B4vU%3D","updated":"2014-03-11 15:28:46.000000000","message":"Not common across all data stores - see mysql","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        \"\"\"Gets the filesystem stats for the path given. \"\"\""},{"line_number":87,"context_line":"        mount_point \u003d CONF.get("},{"line_number":88,"context_line":"            \u0027mysql\u0027 if not MANAGER else MANAGER).mount_point"},{"line_number":89,"context_line":"        return dbaas.get_filesystem_volume_stats(mount_point)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4vM%3D","line":89,"updated":"2014-03-11 14:50:34.000000000","message":"this method also could go to the BaseManager since its same for each datastore","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":9750,"name":"Andrew Bramley","email":"andrew.bramley@verizonwireless.com","username":"abramley"},"change_message_id":"25aed7dfea6e2620b7581d62220a8a5893f1652c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        \"\"\"Gets the filesystem stats for the path given. \"\"\""},{"line_number":87,"context_line":"        mount_point \u003d CONF.get("},{"line_number":88,"context_line":"            \u0027mysql\u0027 if not MANAGER else MANAGER).mount_point"},{"line_number":89,"context_line":"        return dbaas.get_filesystem_volume_stats(mount_point)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4Q8%3D","line":89,"in_reply_to":"AAAAVn%2F%2B4vM%3D","updated":"2014-03-11 15:28:46.000000000","message":"Done","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"}],"trove/guestagent/datastore/manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":26,"context_line":"class BaseDbManager(periodic_task.PeriodicTasks):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def __init__(self, storename):"},{"line_number":29,"context_line":"        self.storename \u003d storename"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def change_passwords(self, context, users):"},{"line_number":32,"context_line":"        raise exception.DatastoreOperationNotSupported("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4x8%3D","line":29,"updated":"2014-03-11 14:50:34.000000000","message":"def __init__(self, datastore_manager):\n      self.datastore_manager\u003d datastore_manager","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"}],"trove/guestagent/datastore/mongodb/manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":"CONF \u003d cfg.CONF"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class Manager(BaseDbManager):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4xY%3D","line":31,"updated":"2014-03-11 14:50:34.000000000","message":"MANAGER \u003d CONF.datastore_manager","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":34,"context_line":"class Manager(BaseDbManager):"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def __init__(self):"},{"line_number":37,"context_line":"        BaseDbManager.__init__(self, \"mongodb\")"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.status \u003d mongo_service.MongoDbAppStatus()"},{"line_number":40,"context_line":"        self.app \u003d mongo_service.MongoDBApp(self.status)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4xk%3D","line":37,"updated":"2014-03-11 14:50:34.000000000","message":"BaseDbManager.__init__(self, MANAGER)","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    @periodic_task.periodic_task(ticks_between_runs\u003d3)"},{"line_number":43,"context_line":"    def update_status(self, context):"},{"line_number":44,"context_line":"        \"\"\"Update the status of the MongoDB service\"\"\""},{"line_number":45,"context_line":"        self.status.update()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def prepare(self, context, packages, databases, memory_mb, users,"},{"line_number":48,"context_line":"                device_path\u003dNone, mount_point\u003dNone, backup_info\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4vI%3D","line":45,"updated":"2014-03-11 14:50:34.000000000","message":"this method also could go to the BaseManager since its same for each datastore","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        self.app.start_db_with_conf_changes(config_contents)"},{"line_number":78,"context_line":"        LOG.info(_(\u0027\"prepare\" call has finished.\u0027))"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def restart(self, context):"},{"line_number":81,"context_line":"        self.app.restart()"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def start_db_with_conf_changes(self, context, config_contents):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4vA%3D","line":80,"updated":"2014-03-11 14:50:34.000000000","message":"this method also could go to the BaseManager since its same for each datastore","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        self.app.start_db_with_conf_changes(config_contents)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def stop_db(self, context, do_not_start_on_reboot\u003dFalse):"},{"line_number":87,"context_line":"        self.app.stop_db(do_not_start_on_reboot\u003ddo_not_start_on_reboot)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def reset_configuration(self, context, configuration):"},{"line_number":90,"context_line":"        self.app.reset_configuration(configuration)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4ug%3D","line":87,"updated":"2014-03-11 14:50:34.000000000","message":"this method also could go to the BaseManager since its same for each datastore","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def get_filesystem_stats(self, context, fs_path):"},{"line_number":93,"context_line":"        \"\"\"Gets the filesystem stats for the path given \"\"\""},{"line_number":94,"context_line":"        return dbaas.get_filesystem_volume_stats(system.MONGODB_MOUNT_POINT)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4us%3D","line":94,"updated":"2014-03-11 14:50:34.000000000","message":"please update this method as it done for each datastore, and move it the BaseManager class","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"}],"trove/guestagent/datastore/mysql/manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":13,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":14,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":15,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":"#"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4zA%3D","line":15,"updated":"2014-03-11 14:50:34.000000000","message":"I\u0027d suggest to refactor mysql manager to make it work with MySQLApp singleton, same as done with cassandra/mongo/couchbase","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class Manager(BaseDbManager):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self):"},{"line_number":42,"context_line":"        BaseDbManager.__init__(self, \"mysql\")"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @periodic_task.periodic_task(ticks_between_runs\u003d3)"},{"line_number":45,"context_line":"    def update_status(self, context):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B40c%3D","line":42,"updated":"2014-03-11 14:50:34.000000000","message":"BaseDbManager.__init__(self, MANAGER)","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":9750,"name":"Andrew Bramley","email":"andrew.bramley@verizonwireless.com","username":"abramley"},"change_message_id":"25aed7dfea6e2620b7581d62220a8a5893f1652c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class Manager(BaseDbManager):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self):"},{"line_number":42,"context_line":"        BaseDbManager.__init__(self, \"mysql\")"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @periodic_task.periodic_task(ticks_between_runs\u003d3)"},{"line_number":45,"context_line":"    def update_status(self, context):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4Ts%3D","line":42,"in_reply_to":"AAAAVn%2F%2B40c%3D","updated":"2014-03-11 15:28:46.000000000","message":"Done","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    @periodic_task.periodic_task(ticks_between_runs\u003d3)"},{"line_number":45,"context_line":"    def update_status(self, context):"},{"line_number":46,"context_line":"        \"\"\"Update the status of the MySQL service\"\"\""},{"line_number":47,"context_line":"        MySqlAppStatus.get().update()"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def change_passwords(self, context, users):"},{"line_number":50,"context_line":"        return MySqlAdmin().change_passwords(users)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4uM%3D","line":47,"updated":"2014-03-11 14:50:34.000000000","message":"After refactoring, would you could move this method to the BaseManager class","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":9750,"name":"Andrew Bramley","email":"andrew.bramley@verizonwireless.com","username":"abramley"},"change_message_id":"25aed7dfea6e2620b7581d62220a8a5893f1652c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    @periodic_task.periodic_task(ticks_between_runs\u003d3)"},{"line_number":45,"context_line":"    def update_status(self, context):"},{"line_number":46,"context_line":"        \"\"\"Update the status of the MySQL service\"\"\""},{"line_number":47,"context_line":"        MySqlAppStatus.get().update()"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def change_passwords(self, context, users):"},{"line_number":50,"context_line":"        return MySqlAdmin().change_passwords(users)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4S0%3D","line":47,"in_reply_to":"AAAAVn%2F%2B4uM%3D","updated":"2014-03-11 15:28:46.000000000","message":"This refactoring of the mysql datastore is beyond the scope of this bug","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        LOG.info(\u0027\"prepare\" call has finished.\u0027)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def restart(self, context):"},{"line_number":155,"context_line":"        app \u003d MySqlApp(MySqlAppStatus.get())"},{"line_number":156,"context_line":"        app.restart()"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def start_db_with_conf_changes(self, context, config_contents):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4tg%3D","line":155,"updated":"2014-03-11 14:50:34.000000000","message":"After refactoring, would you could move this method to the BaseManager class","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    def get_filesystem_stats(self, context, fs_path):"},{"line_number":167,"context_line":"        \"\"\"Gets the filesystem stats for the path given. \"\"\""},{"line_number":168,"context_line":"        mount_point \u003d CONF.get("},{"line_number":169,"context_line":"            \u0027mysql\u0027 if not MANAGER else MANAGER).mount_point"},{"line_number":170,"context_line":"        return dbaas.get_filesystem_volume_stats(mount_point)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def create_backup(self, context, backup_info):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4tU%3D","line":169,"updated":"2014-03-11 14:50:34.000000000","message":"this method is also the part of the BaseManager class","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"}],"trove/guestagent/datastore/redis/manager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from trove.common import cfg"},{"line_number":17,"context_line":"from trove.guestagent import dbaas"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4ws%3D","line":14,"updated":"2014-03-11 14:50:34.000000000","message":"same suggestion as for the mysql manager. Would be better to refactor to make it use RedisApp singleton instead of instantinating app object each time.","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    based off of the service_type of the trove instance"},{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":"    def __init__(self):"},{"line_number":38,"context_line":"        BaseDbManager.__init__(self, \"redis\")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @periodic_task.periodic_task(ticks_between_runs\u003d3)"},{"line_number":41,"context_line":"    def update_status(self, context):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4xU%3D","line":38,"updated":"2014-03-11 14:50:34.000000000","message":"BaseDbManager.__init__(self, MANAGER)","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4500ec0f393343fc7043af6c1aa56cb59566e607","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        \"\"\"Gets the filesystem stats for the path given. \"\"\""},{"line_number":97,"context_line":"        mount_point \u003d CONF.get("},{"line_number":98,"context_line":"            \u0027mysql\u0027 if not MANAGER else MANAGER).mount_point"},{"line_number":99,"context_line":"        return dbaas.get_filesystem_volume_stats(mount_point)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2B4wU%3D","line":99,"updated":"2014-03-11 14:50:34.000000000","message":"this method also could go to the BaseManager since its same for each datastore","commit_id":"e062b70b9ef4e4ec34d07389e5b49d45a27df817"}]}
