)]}'
{"trove/guestagent/datastore/experimental/mariadb/service.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"62396e03fc67ce53a6c105db07ae731012b511d2","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                \"sudo service %s bootstrap\""},{"line_number":50,"context_line":"                % result[\u0027service\u0027])"},{"line_number":51,"context_line":"        elif result[\u0027type\u0027] \u003d\u003d \u0027systemd\u0027:"},{"line_number":52,"context_line":"            # TODO(mwj 2016/01/28): determine RHEL start for MariaDB Cluster"},{"line_number":53,"context_line":"            result[\u0027cmd_bootstrap_galera_cluster\u0027] \u003d ("},{"line_number":54,"context_line":"                \"sudo systemctl start %s@bootstrap.service\""},{"line_number":55,"context_line":"                % result[\u0027service\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_3196c04c","line":52,"updated":"2016-07-28 20:40:25.000000000","message":"isn\u0027t that what this commit is doing?","commit_id":"51b8f3edb90b647b2422eecdcc76d9062ba01530"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"936c05ef4a2f37eab6370a16476953d5acbf837c","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                \"sudo service %s bootstrap\""},{"line_number":50,"context_line":"                % result[\u0027service\u0027])"},{"line_number":51,"context_line":"        elif result[\u0027type\u0027] \u003d\u003d \u0027systemd\u0027:"},{"line_number":52,"context_line":"            # TODO(mwj 2016/01/28): determine RHEL start for MariaDB Cluster"},{"line_number":53,"context_line":"            result[\u0027cmd_bootstrap_galera_cluster\u0027] \u003d ("},{"line_number":54,"context_line":"                \"sudo systemctl start %s@bootstrap.service\""},{"line_number":55,"context_line":"                % result[\u0027service\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_fc6ebfc7","line":52,"in_reply_to":"bacf61ea_3196c04c","updated":"2016-07-28 20:52:50.000000000","message":"That\u0027s why I\u0027m not a fan of TODO\u0027s.  I\u0027ve got it in the back of my mind to go through the code and remove them all and replace them with launchpad entried (if applicable).","commit_id":"51b8f3edb90b647b2422eecdcc76d9062ba01530"}],"trove/guestagent/datastore/galera_common/service.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"46575cc45a8f269b6e5a877886123455e8f371c3","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        super(GaleraApp, self).__init__(status, local_sql_client,"},{"line_number":37,"context_line":"                                        keep_alive_connection_cls)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @property"},{"line_number":40,"context_line":"    def service_candidates(self):"},{"line_number":41,"context_line":"        return super(GaleraApp, self).service_candidates"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def _test_mysql(self):"},{"line_number":44,"context_line":"        engine \u003d sqlalchemy.create_engine(\"mysql://root:@localhost:3306\","}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_af42300e","line":41,"range":{"start_line":39,"start_character":4,"end_line":41,"end_character":56},"updated":"2016-05-30 19:00:56.000000000","message":"I don\u0027t think this is needed. The base values will be returned automatically if not defined.","commit_id":"13323ae952d2cbe6a6199106e77d8801da27980b"}],"trove/guestagent/strategies/replication/experimental/mariadb_gtid.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"4543841a889bbfd874b10d092c00c210cd91855c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"AGENT \u003d BackupAgent()"},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"REPL_BACKUP_NAMESPACE \u003d \u0027trove.guestagent.strategies.backup\u0027 \\"},{"line_number":28,"context_line":"                        \u0027.experimental.mariadb_impl\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_0fbf81d0","line":27,"updated":"2016-06-14 17:50:49.000000000","message":"shouldn\u0027t this come from a config parameter?","commit_id":"51b8f3edb90b647b2422eecdcc76d9062ba01530"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"de4eb40909f1539e8bf14a2c64b5b7081a6d342e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"AGENT \u003d BackupAgent()"},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"REPL_BACKUP_NAMESPACE \u003d \u0027trove.guestagent.strategies.backup\u0027 \\"},{"line_number":28,"context_line":"                        \u0027.experimental.mariadb_impl\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_2427ff63","line":27,"in_reply_to":"7aa08908_0fbf81d0","updated":"2016-06-14 18:26:05.000000000","message":"Well, I guess only the replication strategy knows what backup strategy it needs. There may be some other implementation with different backup strategy.\nAlso even if we somehow made it into a parameter that could likely never be changed to anything other than the value required by this strategy.","commit_id":"51b8f3edb90b647b2422eecdcc76d9062ba01530"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"c768fc76a3addf0b46ce23804373cb81a5458e95","unresolved":false,"context_lines":[{"line_number":24,"context_line":"AGENT \u003d BackupAgent()"},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"REPL_BACKUP_NAMESPACE \u003d \u0027trove.guestagent.strategies.backup\u0027 \\"},{"line_number":28,"context_line":"                        \u0027.experimental.mariadb_impl\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_a4ebefa2","line":27,"in_reply_to":"7aa08908_2427ff63","updated":"2016-06-14 18:31:56.000000000","message":"It\u0027s currently hardcoded - see https://github.com/openstack/trove/blob/master/trove/guestagent/strategies/replication/mysql_base.py#L35  And as Petr said, the backup strategy it closely tied to the replication strategy.  Allowing an operator to change this could break replication.","commit_id":"51b8f3edb90b647b2422eecdcc76d9062ba01530"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"9339381416c6a89d842a643c27ba77db879f7720","unresolved":false,"context_lines":[{"line_number":24,"context_line":"AGENT \u003d BackupAgent()"},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"REPL_BACKUP_NAMESPACE \u003d \u0027trove.guestagent.strategies.backup\u0027 \\"},{"line_number":28,"context_line":"                        \u0027.experimental.mariadb_impl\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_c4f0bb93","line":27,"in_reply_to":"7aa08908_2427ff63","updated":"2016-06-14 18:31:45.000000000","message":"Thinking more the backup/restore should hopefully be strategy agnostic (as long as the instance restores properly with the right data on it). In that case we may probably load it from the existing config values.","commit_id":"51b8f3edb90b647b2422eecdcc76d9062ba01530"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"99e06b5a9c62fe6e0ec45022a4b120423a3973c6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"AGENT \u003d BackupAgent()"},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"REPL_BACKUP_NAMESPACE \u003d \u0027trove.guestagent.strategies.backup\u0027 \\"},{"line_number":28,"context_line":"                        \u0027.experimental.mariadb_impl\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_373f3388","line":27,"in_reply_to":"7aa08908_a4ebefa2","updated":"2016-06-14 18:47:32.000000000","message":"Yeah. It\u0027s probably safer to keep it here as it\u0027s only used internally by the replication strategy anyways.","commit_id":"51b8f3edb90b647b2422eecdcc76d9062ba01530"}]}
