)]}'
{"tox.ini":[{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"885b81af3b3c2610c4d9560923dd73a350012535","unresolved":false,"context_lines":[{"line_number":35,"context_line":"show-source \u003d True"},{"line_number":36,"context_line":"ignore \u003d F401,F403,F821,H301,H306,H401,H402,H403,H404,H702"},{"line_number":37,"context_line":"builtins \u003d _"},{"line_number":38,"context_line":"exclude\u003d.venv,.tox,dist,doc,openstack,*egg,rsdns,tools,etc,build,.idea"},{"line_number":39,"context_line":"filename\u003d*.py,trove-*"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAATn%2F%2BcR8%3D","line":38,"updated":"2013-11-26 01:10:33.000000000","message":"you really shouldn\u0027t backdoor unrelated changes; this review is concerning backups.","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c7b65c63bd7fc681c2cc64e5793b604748f130de","unresolved":false,"context_lines":[{"line_number":35,"context_line":"show-source \u003d True"},{"line_number":36,"context_line":"ignore \u003d F401,F403,F821,H301,H306,H401,H402,H403,H404,H702"},{"line_number":37,"context_line":"builtins \u003d _"},{"line_number":38,"context_line":"exclude\u003d.venv,.tox,dist,doc,openstack,*egg,rsdns,tools,etc,build,.idea"},{"line_number":39,"context_line":"filename\u003d*.py,trove-*"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAATn%2F%2Bbi4%3D","line":38,"in_reply_to":"AAAATn%2F%2BcR8%3D","updated":"2013-11-26 06:43:07.000000000","message":"Do you see huge problem in ignoring .idea folder ?","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"}],"trove/common/cfg.py":[{"author":{"_account_id":8259,"name":"Andrey Shestakov","email":"ashestakov@mirantis.com","username":"ashestakov"},"change_message_id":"9b83afc82cfb3d53d36e6e6a17b529ab7896a1c3","unresolved":false,"context_lines":[{"line_number":116,"context_line":"               help\u003d\"The default datastore id or name to use if one is not \""},{"line_number":117,"context_line":"               \"provided by the user. If the default value is None, the field\""},{"line_number":118,"context_line":"               \" becomes required in the instance-create request.\"),"},{"line_number":119,"context_line":"    cfg.StrOpt(\u0027datastore_manager\u0027, default\u003d\u0027mysql\u0027,"},{"line_number":120,"context_line":"               help\u003d\u0027manager class in guestagent, setup by taskmanager on \u0027"},{"line_number":121,"context_line":"               \u0027instance provision\u0027),"},{"line_number":122,"context_line":"    cfg.StrOpt(\u0027block_device_mapping\u0027, default\u003d\u0027vdb\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Bd7w%3D","line":119,"updated":"2013-11-25 19:00:31.000000000","message":"As discussed in separate review for datastores support, this option should be None","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"885b81af3b3c2610c4d9560923dd73a350012535","unresolved":false,"context_lines":[{"line_number":116,"context_line":"               help\u003d\"The default datastore id or name to use if one is not \""},{"line_number":117,"context_line":"               \"provided by the user. If the default value is None, the field\""},{"line_number":118,"context_line":"               \" becomes required in the instance-create request.\"),"},{"line_number":119,"context_line":"    cfg.StrOpt(\u0027datastore_manager\u0027, default\u003d\u0027mysql\u0027,"},{"line_number":120,"context_line":"               help\u003d\u0027manager class in guestagent, setup by taskmanager on \u0027"},{"line_number":121,"context_line":"               \u0027instance provision\u0027),"},{"line_number":122,"context_line":"    cfg.StrOpt(\u0027block_device_mapping\u0027, default\u003d\u0027vdb\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BcSg%3D","line":119,"in_reply_to":"AAAATn%2F%2Bd6I%3D","updated":"2013-11-26 01:10:33.000000000","message":"Agree, this should be None. See the comments at https://review.openstack.org/#/c/47934/11/trove/common/cfg.py.","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"7becd78f0361c7f9c4977c15d243afab7947f1b7","unresolved":false,"context_lines":[{"line_number":116,"context_line":"               help\u003d\"The default datastore id or name to use if one is not \""},{"line_number":117,"context_line":"               \"provided by the user. If the default value is None, the field\""},{"line_number":118,"context_line":"               \" becomes required in the instance-create request.\"),"},{"line_number":119,"context_line":"    cfg.StrOpt(\u0027datastore_manager\u0027, default\u003d\u0027mysql\u0027,"},{"line_number":120,"context_line":"               help\u003d\u0027manager class in guestagent, setup by taskmanager on \u0027"},{"line_number":121,"context_line":"               \u0027instance provision\u0027),"},{"line_number":122,"context_line":"    cfg.StrOpt(\u0027block_device_mapping\u0027, default\u003d\u0027vdb\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Bd6I%3D","line":119,"in_reply_to":"AAAATn%2F%2Bd7w%3D","updated":"2013-11-25 19:03:59.000000000","message":"This value affects tests. But i agree. We need to find another way to test this fuctionality.","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"},{"author":{"_account_id":8259,"name":"Andrey Shestakov","email":"ashestakov@mirantis.com","username":"ashestakov"},"change_message_id":"9b83afc82cfb3d53d36e6e6a17b529ab7896a1c3","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    cfg.StrOpt(\u0027region\u0027, default\u003d\u0027LOCAL_DEV\u0027,"},{"line_number":156,"context_line":"               help\u003d\u0027The region this service is located.\u0027),"},{"line_number":157,"context_line":"    cfg.DictOpt(\u0027backup_strategy\u0027, default\u003d{\u0027mysql\u0027: \u0027InnoBackupEx\u0027,"},{"line_number":158,"context_line":"                                            \u0027percona\u0027: \u0027InnoBackupEx\u0027},"},{"line_number":159,"context_line":"                help\u003d\u0027Strategies to perform backups\u0027),"},{"line_number":160,"context_line":"    cfg.StrOpt(\u0027backup_namespace\u0027,"},{"line_number":161,"context_line":"               default\u003d\u0027trove.guestagent.strategies.backup.impl\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Bd7s%3D","line":158,"updated":"2013-11-25 19:00:31.000000000","message":"Do we really need separate type for percona?","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"885b81af3b3c2610c4d9560923dd73a350012535","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    cfg.StrOpt(\u0027region\u0027, default\u003d\u0027LOCAL_DEV\u0027,"},{"line_number":156,"context_line":"               help\u003d\u0027The region this service is located.\u0027),"},{"line_number":157,"context_line":"    cfg.DictOpt(\u0027backup_strategy\u0027, default\u003d{\u0027mysql\u0027: \u0027InnoBackupEx\u0027,"},{"line_number":158,"context_line":"                                            \u0027percona\u0027: \u0027InnoBackupEx\u0027},"},{"line_number":159,"context_line":"                help\u003d\u0027Strategies to perform backups\u0027),"},{"line_number":160,"context_line":"    cfg.StrOpt(\u0027backup_namespace\u0027,"},{"line_number":161,"context_line":"               default\u003d\u0027trove.guestagent.strategies.backup.impl\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BcSc%3D","line":158,"in_reply_to":"AAAATn%2F%2Bd6U%3D","updated":"2013-11-26 01:10:33.000000000","message":"I see no harm in having a separate type for percona, considering it\u0027s done nearly everywhere else.","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"7becd78f0361c7f9c4977c15d243afab7947f1b7","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    cfg.StrOpt(\u0027region\u0027, default\u003d\u0027LOCAL_DEV\u0027,"},{"line_number":156,"context_line":"               help\u003d\u0027The region this service is located.\u0027),"},{"line_number":157,"context_line":"    cfg.DictOpt(\u0027backup_strategy\u0027, default\u003d{\u0027mysql\u0027: \u0027InnoBackupEx\u0027,"},{"line_number":158,"context_line":"                                            \u0027percona\u0027: \u0027InnoBackupEx\u0027},"},{"line_number":159,"context_line":"                help\u003d\u0027Strategies to perform backups\u0027),"},{"line_number":160,"context_line":"    cfg.StrOpt(\u0027backup_namespace\u0027,"},{"line_number":161,"context_line":"               default\u003d\u0027trove.guestagent.strategies.backup.impl\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Bd6U%3D","line":158,"in_reply_to":"AAAATn%2F%2Bd7s%3D","updated":"2013-11-25 19:03:59.000000000","message":"Why not ?","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"}],"trove/guestagent/backup/backupagent.py":[{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"5244e33326b2bf8cdf7b5c1ed1fb3626e08d621a","unresolved":false,"context_lines":[{"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":"RUNNER \u003d get_backup_strategy(CONF.backup_strategy.get(CONF.service_type),"},{"line_number":34,"context_line":"                             CONF.backup_namespace)"},{"line_number":35,"context_line":"BACKUP_CONTAINER \u003d CONF.backup_swift_container"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2B40k%3D","line":33,"updated":"2013-11-18 23:04:32.000000000","message":"fyi, this will need to change since this is about to merge: https://review.openstack.org/#/c/47934/14/trove/taskmanager/models.py (service_type has been replaced)","commit_id":"9bb07c6db061b5c70dea2b2743d43d3d557f94ab"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"5a72c709b72103fc23a519d6f99cd7ee80734db3","unresolved":false,"context_lines":[{"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":"RUNNER \u003d get_backup_strategy(CONF.backup_strategy.get(CONF.service_type),"},{"line_number":34,"context_line":"                             CONF.backup_namespace)"},{"line_number":35,"context_line":"BACKUP_CONTAINER \u003d CONF.backup_swift_container"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2B4us%3D","line":33,"in_reply_to":"AAAATn%2F%2B40k%3D","updated":"2013-11-18 23:19:43.000000000","message":"I know that i would need to rebase it. But is it real reason for -1 ?","commit_id":"9bb07c6db061b5c70dea2b2743d43d3d557f94ab"}],"trove/tests/unittests/backup/test_backupagent.py":[{"author":{"_account_id":8259,"name":"Andrey Shestakov","email":"ashestakov@mirantis.com","username":"ashestakov"},"change_message_id":"9b83afc82cfb3d53d36e6e6a17b529ab7896a1c3","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        self.assertIsNotNone(mysql_dump.cmd)"},{"line_number":161,"context_line":"        str_mysql_dump_cmd \u003d (\u0027/usr/bin/mysqldump\u0027"},{"line_number":162,"context_line":"                              \u0027 --all-databases\u0027"},{"line_number":163,"context_line":"                              \u0027 --opt\u0027"},{"line_number":164,"context_line":"                              \u0027 --password\u003d%(password)s\u0027"},{"line_number":165,"context_line":"                              \u0027 -u %(user)s\u0027"},{"line_number":166,"context_line":"                              \u0027 | gzip |\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Bd7Q%3D","line":163,"updated":"2013-11-25 19:00:31.000000000","message":"Can we add options \"--events --routines --triggers\" here?\n\nlooks like bug","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"885b81af3b3c2610c4d9560923dd73a350012535","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        self.assertIsNotNone(mysql_dump.cmd)"},{"line_number":161,"context_line":"        str_mysql_dump_cmd \u003d (\u0027/usr/bin/mysqldump\u0027"},{"line_number":162,"context_line":"                              \u0027 --all-databases\u0027"},{"line_number":163,"context_line":"                              \u0027 --opt\u0027"},{"line_number":164,"context_line":"                              \u0027 --password\u003d%(password)s\u0027"},{"line_number":165,"context_line":"                              \u0027 -u %(user)s\u0027"},{"line_number":166,"context_line":"                              \u0027 | gzip |\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BcSQ%3D","line":163,"in_reply_to":"AAAATn%2F%2Bd6Y%3D","updated":"2013-11-26 01:10:33.000000000","message":"Agree w/ Myers.","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"7becd78f0361c7f9c4977c15d243afab7947f1b7","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        self.assertIsNotNone(mysql_dump.cmd)"},{"line_number":161,"context_line":"        str_mysql_dump_cmd \u003d (\u0027/usr/bin/mysqldump\u0027"},{"line_number":162,"context_line":"                              \u0027 --all-databases\u0027"},{"line_number":163,"context_line":"                              \u0027 --opt\u0027"},{"line_number":164,"context_line":"                              \u0027 --password\u003d%(password)s\u0027"},{"line_number":165,"context_line":"                              \u0027 -u %(user)s\u0027"},{"line_number":166,"context_line":"                              \u0027 | gzip |\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Bd6g%3D","line":163,"in_reply_to":"AAAATn%2F%2Bd7Q%3D","updated":"2013-11-25 19:03:59.000000000","message":"Out of scope of this review.","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"70aee9a809be5016b4f1d0ef219f2a03e78253f0","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        self.assertIsNotNone(mysql_dump.cmd)"},{"line_number":161,"context_line":"        str_mysql_dump_cmd \u003d (\u0027/usr/bin/mysqldump\u0027"},{"line_number":162,"context_line":"                              \u0027 --all-databases\u0027"},{"line_number":163,"context_line":"                              \u0027 --opt\u0027"},{"line_number":164,"context_line":"                              \u0027 --password\u003d%(password)s\u0027"},{"line_number":165,"context_line":"                              \u0027 -u %(user)s\u0027"},{"line_number":166,"context_line":"                              \u0027 | gzip |\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Bd6Y%3D","line":163,"in_reply_to":"AAAATn%2F%2Bd7Q%3D","updated":"2013-11-25 19:04:04.000000000","message":"This is just validating the command that is run. If you think the base mysqldump command should change then you can submit a different review.","commit_id":"52f22ba2947d831044a4c2f8154122b645025175"}]}
