)]}'
{"apidocs/src/samples/db-list-users-response.json":[{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"3a59f064dcd5e3548b496b7792da44c0fb12b61c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        {"},{"line_number":43,"context_line":"            \"databases\": [],"},{"line_number":44,"context_line":"            \"host\": \"%\","},{"line_number":45,"context_line":"            \"name\": \"os_admin\""},{"line_number":46,"context_line":"        }"},{"line_number":47,"context_line":"    ]"},{"line_number":48,"context_line":"}"}],"source_content_type":"application/json","patch_set":3,"id":"fa1b9901_06c32258","line":45,"updated":"2015-08-20 16:50:34.000000000","message":"this should be removed.","commit_id":"944733287a4044c38a4a61fcee509ff1d24aacce"}],"etc/trove/trove-guestagent.conf.sample":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"eb5b311853671fa7b390625497d782aed8250f6a","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Datastore Specific Configuration Options \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"[mysql]"},{"line_number":118,"context_line":"# For mysql, the following are the defaults for backup, and restore:"},{"line_number":119,"context_line":"# backup_strategy \u003d InnoBackupEx"},{"line_number":120,"context_line":"# backup_namespace \u003d trove.guestagent.strategies.backup.mysql_impl"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"ba15a1d1_eca6a5c0","line":117,"updated":"2015-09-14 19:20:59.000000000","message":"Isn\u0027t a [percona] section supposed to be somewhere around?","commit_id":"7c93e54587dbd2bfd89341ef4e00e4eace288569"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"3f237951a693f6facd5821ec4ee56da6a0627aaa","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Datastore Specific Configuration Options \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"[mysql]"},{"line_number":118,"context_line":"# For mysql, the following are the defaults for backup, and restore:"},{"line_number":119,"context_line":"# backup_strategy \u003d InnoBackupEx"},{"line_number":120,"context_line":"# backup_namespace \u003d trove.guestagent.strategies.backup.mysql_impl"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"ba15a1d1_8f57db01","line":117,"in_reply_to":"ba15a1d1_eca6a5c0","updated":"2015-09-14 19:40:21.000000000","message":"As you will observe, this file is woefully out of date and as such, I\u0027d rather take care of fixing that as an independent activity.","commit_id":"7c93e54587dbd2bfd89341ef4e00e4eace288569"}],"etc/trove/trove.conf.sample":[{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"9d6601a3d99bf160ddc6dec7ddbc13eac4b5569e","unresolved":false,"context_lines":[{"line_number":216,"context_line":"device_path \u003d /dev/vdb"},{"line_number":217,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":218,"context_line":"ignore_users \u003d root"},{"line_number":219,"context_line":"ignore_dbs \u003d lost+found, mysql, information_schema"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"[percona]"},{"line_number":222,"context_line":"# Users to ignore for user create/list/delete operations"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a50d1a3_4999af78","line":219,"updated":"2015-07-31 12:44:50.000000000","message":"With the mysql datadir fix [1] merged, I don\u0027t think you need \"lost+found\" anymore\n\n[1] https://review.openstack.org/#/c/147908","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"fddeba1a5f079ed0d63aabb9e43144b5b8ad2231","unresolved":false,"context_lines":[{"line_number":216,"context_line":"device_path \u003d /dev/vdb"},{"line_number":217,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":218,"context_line":"ignore_users \u003d root"},{"line_number":219,"context_line":"ignore_dbs \u003d lost+found, mysql, information_schema"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"[percona]"},{"line_number":222,"context_line":"# Users to ignore for user create/list/delete operations"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a50d1a3_a27873f9","line":219,"in_reply_to":"3a50d1a3_4999af78","updated":"2015-07-31 20:25:36.000000000","message":"Done","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"9d6601a3d99bf160ddc6dec7ddbc13eac4b5569e","unresolved":false,"context_lines":[{"line_number":221,"context_line":"[percona]"},{"line_number":222,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":223,"context_line":"ignore_users \u003d os_admin, root"},{"line_number":224,"context_line":"ignore_dbs \u003d lost+found, mysql, information_schema"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"[redis]"},{"line_number":227,"context_line":"tcp_ports \u003d 6379"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a50d1a3_c9837f02","line":224,"updated":"2015-07-31 12:44:50.000000000","message":"ditto","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"fddeba1a5f079ed0d63aabb9e43144b5b8ad2231","unresolved":false,"context_lines":[{"line_number":221,"context_line":"[percona]"},{"line_number":222,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":223,"context_line":"ignore_users \u003d os_admin, root"},{"line_number":224,"context_line":"ignore_dbs \u003d lost+found, mysql, information_schema"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"[redis]"},{"line_number":227,"context_line":"tcp_ports \u003d 6379"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a50d1a3_c27b3ff3","line":224,"in_reply_to":"3a50d1a3_c9837f02","updated":"2015-07-31 20:25:36.000000000","message":"Done","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"eb5b311853671fa7b390625497d782aed8250f6a","unresolved":false,"context_lines":[{"line_number":207,"context_line":"#optional:"},{"line_number":208,"context_line":"#ca_file \u003d /path/to/ca_file"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"[mysql]"},{"line_number":211,"context_line":"root_on_create \u003d False"},{"line_number":212,"context_line":"# Format (single port or port range): A, B-C"},{"line_number":213,"context_line":"# where C greater than B"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"ba15a1d1_ecbf85ce","line":210,"updated":"2015-09-14 19:20:59.000000000","message":"ditto","commit_id":"7c93e54587dbd2bfd89341ef4e00e4eace288569"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"3f237951a693f6facd5821ec4ee56da6a0627aaa","unresolved":false,"context_lines":[{"line_number":207,"context_line":"#optional:"},{"line_number":208,"context_line":"#ca_file \u003d /path/to/ca_file"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"[mysql]"},{"line_number":211,"context_line":"root_on_create \u003d False"},{"line_number":212,"context_line":"# Format (single port or port range): A, B-C"},{"line_number":213,"context_line":"# where C greater than B"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"ba15a1d1_4f422340","line":210,"in_reply_to":"ba15a1d1_ecbf85ce","updated":"2015-09-14 19:40:21.000000000","message":"ditto ... I submit to you that this could be out of scope.","commit_id":"7c93e54587dbd2bfd89341ef4e00e4eace288569"}],"etc/trove/trove.conf.test":[{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"9d6601a3d99bf160ddc6dec7ddbc13eac4b5569e","unresolved":false,"context_lines":[{"line_number":122,"context_line":"device_path \u003d /dev/vdb"},{"line_number":123,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":124,"context_line":"ignore_users \u003d root"},{"line_number":125,"context_line":"ignore_dbs \u003d lost+found, mysql, information_schema"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"[percona]"},{"line_number":128,"context_line":"# Users to ignore for user create/list/delete operations"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a50d1a3_09916746","line":125,"updated":"2015-07-31 12:44:50.000000000","message":"diito","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"fddeba1a5f079ed0d63aabb9e43144b5b8ad2231","unresolved":false,"context_lines":[{"line_number":122,"context_line":"device_path \u003d /dev/vdb"},{"line_number":123,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":124,"context_line":"ignore_users \u003d root"},{"line_number":125,"context_line":"ignore_dbs \u003d lost+found, mysql, information_schema"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"[percona]"},{"line_number":128,"context_line":"# Users to ignore for user create/list/delete operations"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a50d1a3_226d4332","line":125,"in_reply_to":"3a50d1a3_09916746","updated":"2015-07-31 20:25:36.000000000","message":"Done","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"9d6601a3d99bf160ddc6dec7ddbc13eac4b5569e","unresolved":false,"context_lines":[{"line_number":127,"context_line":"[percona]"},{"line_number":128,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":129,"context_line":"ignore_users \u003d os_admin, root"},{"line_number":130,"context_line":"ignore_dbs \u003d lost+found, mysql, information_schema"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"[redis]"},{"line_number":133,"context_line":"# redis uses local storage"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a50d1a3_a9971339","line":130,"updated":"2015-07-31 12:44:50.000000000","message":"ditto","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"fddeba1a5f079ed0d63aabb9e43144b5b8ad2231","unresolved":false,"context_lines":[{"line_number":127,"context_line":"[percona]"},{"line_number":128,"context_line":"# Users to ignore for user create/list/delete operations"},{"line_number":129,"context_line":"ignore_users \u003d os_admin, root"},{"line_number":130,"context_line":"ignore_dbs \u003d lost+found, mysql, information_schema"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"[redis]"},{"line_number":133,"context_line":"# redis uses local storage"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a50d1a3_42688f21","line":130,"in_reply_to":"3a50d1a3_a9971339","updated":"2015-07-31 20:25:36.000000000","message":"Done","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"}],"trove/common/cfg.py":[{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"9d6601a3d99bf160ddc6dec7ddbc13eac4b5569e","unresolved":false,"context_lines":[{"line_number":469,"context_line":"                \u0027backup.\u0027,"},{"line_number":470,"context_line":"                deprecated_name\u003d\u0027backup_incremental_strategy\u0027,"},{"line_number":471,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"},{"line_number":472,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027root\u0027],"},{"line_number":473,"context_line":"                help\u003d\u0027Users to exclude when listing users.\u0027,"},{"line_number":474,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"},{"line_number":475,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_69258b08","line":472,"updated":"2015-07-31 12:44:50.000000000","message":"Why is os_admin being removed?","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"fddeba1a5f079ed0d63aabb9e43144b5b8ad2231","unresolved":false,"context_lines":[{"line_number":469,"context_line":"                \u0027backup.\u0027,"},{"line_number":470,"context_line":"                deprecated_name\u003d\u0027backup_incremental_strategy\u0027,"},{"line_number":471,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"},{"line_number":472,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027root\u0027],"},{"line_number":473,"context_line":"                help\u003d\u0027Users to exclude when listing users.\u0027,"},{"line_number":474,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"},{"line_number":475,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_02728711","line":472,"in_reply_to":"3a50d1a3_69258b08","updated":"2015-07-31 20:25:36.000000000","message":"os_admin is specific to Percona. It is retained in the new percona specific configuration (see below).","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"9d6601a3d99bf160ddc6dec7ddbc13eac4b5569e","unresolved":false,"context_lines":[{"line_number":474,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"},{"line_number":475,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"},{"line_number":476,"context_line":"    cfg.ListOpt(\u0027ignore_dbs\u0027,"},{"line_number":477,"context_line":"                default\u003d[\u0027lost+found\u0027, \u0027#mysql50#lost+found\u0027, \u0027mysql\u0027,"},{"line_number":478,"context_line":"                         \u0027information_schema\u0027],"},{"line_number":479,"context_line":"                help\u003d\u0027Databases to exclude when listing databases.\u0027,"},{"line_number":480,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_e993dbfe","line":477,"updated":"2015-07-31 12:44:50.000000000","message":"I don\u0027t think you need the 2 lost+found references anymore.","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"fddeba1a5f079ed0d63aabb9e43144b5b8ad2231","unresolved":false,"context_lines":[{"line_number":474,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"},{"line_number":475,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"},{"line_number":476,"context_line":"    cfg.ListOpt(\u0027ignore_dbs\u0027,"},{"line_number":477,"context_line":"                default\u003d[\u0027lost+found\u0027, \u0027#mysql50#lost+found\u0027, \u0027mysql\u0027,"},{"line_number":478,"context_line":"                         \u0027information_schema\u0027],"},{"line_number":479,"context_line":"                help\u003d\u0027Databases to exclude when listing databases.\u0027,"},{"line_number":480,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_a25f1374","line":477,"in_reply_to":"3a50d1a3_e993dbfe","updated":"2015-07-31 20:25:36.000000000","message":"Done","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"9d6601a3d99bf160ddc6dec7ddbc13eac4b5569e","unresolved":false,"context_lines":[{"line_number":545,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"},{"line_number":546,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"},{"line_number":547,"context_line":"    cfg.ListOpt(\u0027ignore_dbs\u0027,"},{"line_number":548,"context_line":"                default\u003d[\u0027lost+found\u0027, \u0027#mysql50#lost+found\u0027, \u0027mysql\u0027,"},{"line_number":549,"context_line":"                         \u0027information_schema\u0027],"},{"line_number":550,"context_line":"                help\u003d\u0027Databases to exclude when listing databases.\u0027,"},{"line_number":551,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_c9b7ff83","line":548,"updated":"2015-07-31 12:44:50.000000000","message":"ditto","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"fddeba1a5f079ed0d63aabb9e43144b5b8ad2231","unresolved":false,"context_lines":[{"line_number":545,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"},{"line_number":546,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"},{"line_number":547,"context_line":"    cfg.ListOpt(\u0027ignore_dbs\u0027,"},{"line_number":548,"context_line":"                default\u003d[\u0027lost+found\u0027, \u0027#mysql50#lost+found\u0027, \u0027mysql\u0027,"},{"line_number":549,"context_line":"                         \u0027information_schema\u0027],"},{"line_number":550,"context_line":"                help\u003d\u0027Databases to exclude when listing databases.\u0027,"},{"line_number":551,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_62590b8e","line":548,"in_reply_to":"3a50d1a3_c9b7ff83","updated":"2015-07-31 20:25:36.000000000","message":"Done","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"e82d581016d81de18c2ba2e75f455e1562f6ec84","unresolved":false,"context_lines":[{"line_number":476,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"},{"line_number":477,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"},{"line_number":478,"context_line":"    cfg.ListOpt(\u0027ignore_dbs\u0027,"},{"line_number":479,"context_line":"                default\u003d[\u0027lost+found\u0027, \u0027mysql\u0027, \u0027information_schema\u0027,"},{"line_number":480,"context_line":"                         \u0027performance_schema\u0027],"},{"line_number":481,"context_line":"                help\u003d\u0027Databases to exclude when listing databases.\u0027,"},{"line_number":482,"context_line":"                deprecated_name\u003d\u0027ignore_dbs\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_3b9e2308","line":479,"range":{"start_line":479,"start_character":26,"end_line":479,"end_character":36},"updated":"2015-09-02 02:23:52.000000000","message":"I think this is no longer necessary after the datadir patch set merged.","commit_id":"31902a6a35e8da691233f29676479aaa41812792"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"e82d581016d81de18c2ba2e75f455e1562f6ec84","unresolved":false,"context_lines":[{"line_number":547,"context_line":"                deprecated_name\u003d\u0027ignore_users\u0027,"},{"line_number":548,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"},{"line_number":549,"context_line":"    cfg.ListOpt(\u0027ignore_dbs\u0027,"},{"line_number":550,"context_line":"                default\u003d[\u0027lost+found\u0027, \u0027mysql\u0027, \u0027information_schema\u0027,"},{"line_number":551,"context_line":"                         \u0027performance_schema\u0027],"},{"line_number":552,"context_line":"                help\u003d\u0027Databases to exclude when listing databases.\u0027,"},{"line_number":553,"context_line":"                deprecated_name\u003d\u0027ignore_dbs\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_9bc08fe2","line":550,"range":{"start_line":550,"start_character":26,"end_line":550,"end_character":36},"updated":"2015-09-02 02:23:52.000000000","message":"ditto","commit_id":"31902a6a35e8da691233f29676479aaa41812792"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"dff1b968b901253130b1e64297f4e4ac3e1e5d3d","unresolved":false,"context_lines":[{"line_number":1211,"context_line":"             default_config_files\u003ddefault_config_files)"},{"line_number":1212,"context_line":""},{"line_number":1213,"context_line":""},{"line_number":1214,"context_line":"def get_ignored_dbs(manager\u003dNone):"},{"line_number":1215,"context_line":"    \"\"\""},{"line_number":1216,"context_line":"    Get the list of ignored databases taking into account the fact"},{"line_number":1217,"context_line":"    that the manager may not be specified, and the manager (if"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a2fa921_b15ec074","line":1214,"updated":"2015-10-13 02:47:42.000000000","message":"We could pull out a generic method from this so that it can be used for other properties as well. You just need to replace the instance access with \u0027.get(property_name)\u0027","commit_id":"c864f1818b4f1044f53d82238dbf47b4db8f855f"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"b82c035a420e4dd6beb08c9fd8460b893031317f","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                \u0027incremental backup, the runner will use the default full \u0027"},{"line_number":621,"context_line":"                \u0027backup.\u0027),"},{"line_number":622,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027os_admin\u0027, \u0027root\u0027, \u0027clusterrepuser\u0027],"},{"line_number":623,"context_line":"                help\u003d\u0027Users to exclude when listing users.\u0027),"},{"line_number":624,"context_line":"    cfg.BoolOpt(\u0027cluster_support\u0027, default\u003dTrue,"},{"line_number":625,"context_line":"                help\u003d\u0027Enable clusters to be created and managed.\u0027),"},{"line_number":626,"context_line":"    cfg.IntOpt(\u0027min_cluster_member_count\u0027, default\u003d3,"}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_cf35b946","line":623,"updated":"2015-11-09 17:31:48.000000000","message":"i see ignore_users here but not ignore_dbs.","commit_id":"62cf716aa1a14942d303d9641eed09254de2662c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"56993d48b93bee5aaac65cb410aad698d2bc4cb5","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                \u0027incremental backup, the runner will use the default full \u0027"},{"line_number":621,"context_line":"                \u0027backup.\u0027),"},{"line_number":622,"context_line":"    cfg.ListOpt(\u0027ignore_users\u0027, default\u003d[\u0027os_admin\u0027, \u0027root\u0027, \u0027clusterrepuser\u0027],"},{"line_number":623,"context_line":"                help\u003d\u0027Users to exclude when listing users.\u0027),"},{"line_number":624,"context_line":"    cfg.BoolOpt(\u0027cluster_support\u0027, default\u003dTrue,"},{"line_number":625,"context_line":"                help\u003d\u0027Enable clusters to be created and managed.\u0027),"},{"line_number":626,"context_line":"    cfg.IntOpt(\u0027min_cluster_member_count\u0027, default\u003d3,"}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_d250fd60","line":623,"in_reply_to":"da85f559_cf35b946","updated":"2015-11-09 19:44:54.000000000","message":"OK, I can add one.","commit_id":"62cf716aa1a14942d303d9641eed09254de2662c"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"9e6f162b9187007a48d528817cae747a2e85da43","unresolved":false,"context_lines":[{"line_number":1144,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"},{"line_number":1145,"context_line":"    cfg.StrOpt(\u0027root_controller\u0027,"},{"line_number":1146,"context_line":"               default\u003d\u0027trove.extensions.common.service.DefaultRootController\u0027,"},{"line_number":1147,"context_line":"               help\u003d\u0027Root controller implementation for mysql.\u0027),"},{"line_number":1148,"context_line":"]"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"# RPC version groups"}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_ccddc743","line":1147,"updated":"2015-11-09 17:17:52.000000000","message":"I think they\u0027ll be needed here too","commit_id":"62cf716aa1a14942d303d9641eed09254de2662c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"56993d48b93bee5aaac65cb410aad698d2bc4cb5","unresolved":false,"context_lines":[{"line_number":1144,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"},{"line_number":1145,"context_line":"    cfg.StrOpt(\u0027root_controller\u0027,"},{"line_number":1146,"context_line":"               default\u003d\u0027trove.extensions.common.service.DefaultRootController\u0027,"},{"line_number":1147,"context_line":"               help\u003d\u0027Root controller implementation for mysql.\u0027),"},{"line_number":1148,"context_line":"]"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"# RPC version groups"}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_f29f4101","line":1147,"in_reply_to":"da85f559_ccddc743","updated":"2015-11-09 19:44:54.000000000","message":"Done","commit_id":"62cf716aa1a14942d303d9641eed09254de2662c"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"d3521612e87f8d05a9c63d137376b21a28c4c5eb","unresolved":false,"context_lines":[{"line_number":1217,"context_line":"             default_config_files\u003ddefault_config_files)"},{"line_number":1218,"context_line":""},{"line_number":1219,"context_line":""},{"line_number":1220,"context_line":"def get_ignored_dbs(manager\u003dNone):"},{"line_number":1221,"context_line":"    \"\"\""},{"line_number":1222,"context_line":"    Get the list of ignored databases taking into account the fact"},{"line_number":1223,"context_line":"    that the manager may not be specified, and the manager (if"}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_53573d02","line":1220,"updated":"2015-11-09 16:06:46.000000000","message":"This is already much better than it was before, although I still believe we will need to add a generic method to get any property as well, but that\u0027s for another patch set.","commit_id":"62cf716aa1a14942d303d9641eed09254de2662c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"56993d48b93bee5aaac65cb410aad698d2bc4cb5","unresolved":false,"context_lines":[{"line_number":1217,"context_line":"             default_config_files\u003ddefault_config_files)"},{"line_number":1218,"context_line":""},{"line_number":1219,"context_line":""},{"line_number":1220,"context_line":"def get_ignored_dbs(manager\u003dNone):"},{"line_number":1221,"context_line":"    \"\"\""},{"line_number":1222,"context_line":"    Get the list of ignored databases taking into account the fact"},{"line_number":1223,"context_line":"    that the manager may not be specified, and the manager (if"}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_52996d1e","line":1220,"in_reply_to":"da85f559_53573d02","updated":"2015-11-09 19:44:54.000000000","message":"ok, sounds good to me.","commit_id":"62cf716aa1a14942d303d9641eed09254de2662c"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"9e6f162b9187007a48d528817cae747a2e85da43","unresolved":false,"context_lines":[{"line_number":1224,"context_line":"    specified) may not list ignore_dbs."},{"line_number":1225,"context_line":"    \"\"\""},{"line_number":1226,"context_line":""},{"line_number":1227,"context_line":"    _manager \u003d (manager if manager"},{"line_number":1228,"context_line":"                else CONF.datastore_manager if CONF.datastore_manager"},{"line_number":1229,"context_line":"                else \u0027mysql\u0027)"},{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"    _ignore_dbs \u003d (CONF.get(_manager).ignore_dbs"},{"line_number":1232,"context_line":"                   if CONF.get(_manager).ignore_dbs"}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_2c4ed396","line":1229,"range":{"start_line":1227,"start_character":0,"end_line":1229,"end_character":29},"updated":"2015-11-09 17:17:52.000000000","message":"This could be rewritten as:\n\n  _manager \u003d manager or CONF.datastore_manager or \u0027mysql\u0027","commit_id":"62cf716aa1a14942d303d9641eed09254de2662c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"56993d48b93bee5aaac65cb410aad698d2bc4cb5","unresolved":false,"context_lines":[{"line_number":1224,"context_line":"    specified) may not list ignore_dbs."},{"line_number":1225,"context_line":"    \"\"\""},{"line_number":1226,"context_line":""},{"line_number":1227,"context_line":"    _manager \u003d (manager if manager"},{"line_number":1228,"context_line":"                else CONF.datastore_manager if CONF.datastore_manager"},{"line_number":1229,"context_line":"                else \u0027mysql\u0027)"},{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"    _ignore_dbs \u003d (CONF.get(_manager).ignore_dbs"},{"line_number":1232,"context_line":"                   if CONF.get(_manager).ignore_dbs"}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_d2ac7d37","line":1229,"range":{"start_line":1227,"start_character":0,"end_line":1229,"end_character":29},"in_reply_to":"da85f559_2c4ed396","updated":"2015-11-09 19:44:54.000000000","message":"Done","commit_id":"62cf716aa1a14942d303d9641eed09254de2662c"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"9e6f162b9187007a48d528817cae747a2e85da43","unresolved":false,"context_lines":[{"line_number":1228,"context_line":"                else CONF.datastore_manager if CONF.datastore_manager"},{"line_number":1229,"context_line":"                else \u0027mysql\u0027)"},{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"    _ignore_dbs \u003d (CONF.get(_manager).ignore_dbs"},{"line_number":1232,"context_line":"                   if CONF.get(_manager).ignore_dbs"},{"line_number":1233,"context_line":"                   else CONF.ignore_dbs if CONF.ignore_dbs"},{"line_number":1234,"context_line":"                   else [])"},{"line_number":1235,"context_line":""},{"line_number":1236,"context_line":"    return _ignore_dbs"},{"line_number":1237,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_4c07971c","line":1234,"range":{"start_line":1231,"start_character":0,"end_line":1234,"end_character":27},"updated":"2015-11-09 17:17:52.000000000","message":"ditto:\n\n  _ignore_dbs \u003d CONF.get(_manager).ignore_dbs or CONF.ignore_dbs or []","commit_id":"62cf716aa1a14942d303d9641eed09254de2662c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"56993d48b93bee5aaac65cb410aad698d2bc4cb5","unresolved":false,"context_lines":[{"line_number":1228,"context_line":"                else CONF.datastore_manager if CONF.datastore_manager"},{"line_number":1229,"context_line":"                else \u0027mysql\u0027)"},{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"    _ignore_dbs \u003d (CONF.get(_manager).ignore_dbs"},{"line_number":1232,"context_line":"                   if CONF.get(_manager).ignore_dbs"},{"line_number":1233,"context_line":"                   else CONF.ignore_dbs if CONF.ignore_dbs"},{"line_number":1234,"context_line":"                   else [])"},{"line_number":1235,"context_line":""},{"line_number":1236,"context_line":"    return _ignore_dbs"},{"line_number":1237,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_72ab511e","line":1234,"range":{"start_line":1231,"start_character":0,"end_line":1234,"end_character":27},"in_reply_to":"da85f559_4c07971c","updated":"2015-11-09 19:44:54.000000000","message":"Done","commit_id":"62cf716aa1a14942d303d9641eed09254de2662c"}],"trove/extensions/mysql/models.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"e82d581016d81de18c2ba2e75f455e1562f6ec84","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"line_number":31,"context_line":"MANAGER \u003d CONF.datastore_manager if CONF.datastore_manager else \u0027mysql\u0027"},{"line_number":32,"context_line":"IGNORE_DBS \u003d (CONF.get(MANAGER).ignore_dbs"},{"line_number":33,"context_line":"              if CONF.get(MANAGER).ignore_dbs"},{"line_number":34,"context_line":"              else CONF.ignore_dbs)"},{"line_number":35,"context_line":"IGNORE_USERS \u003d (CONF.get(MANAGER).ignore_users"},{"line_number":36,"context_line":"                if CONF.get(MANAGER).ignore_users"},{"line_number":37,"context_line":"                else CONF.ignore_users)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_1b09df31","line":34,"range":{"start_line":32,"start_character":13,"end_line":34,"end_character":35},"updated":"2015-09-02 02:23:52.000000000","message":"We keep doing this at several places. Maybe there should be a utility method in \u0027trove.common.cfg\u0027 for it.\nIt could accept the property name as a parameter and retrieve it using \u0027.get(\u003cproperty\u003e)\u0027","commit_id":"31902a6a35e8da691233f29676479aaa41812792"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3302caa422fee59d617b067d605334a4399c5341","unresolved":false,"context_lines":[{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":"MANAGER \u003d CONF.datastore_manager if CONF.datastore_manager else \u0027mysql\u0027"},{"line_number":31,"context_line":"IGNORE_DBS \u003d (CONF.get(MANAGER).ignore_dbs if CONF.get(MANAGER).ignore_dbs"},{"line_number":32,"context_line":"              else CONF.ignore_dbs)"},{"line_number":33,"context_line":"IGNORE_USERS \u003d (CONF.get(MANAGER).ignore_users"},{"line_number":34,"context_line":"                if CONF.get(MANAGER).ignore_users"},{"line_number":35,"context_line":"                else CONF.ignore_users)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_75bec200","line":32,"updated":"2015-09-21 23:23:04.000000000","message":"I might be missing something here... if ignore_dbs/ignore_users is not defined in the [DEFAULT] section, and for some reason the MANAGER in use also doesn\u0027t have ignore_dbs/ignore_users defined, which value will take IGNORE_DBS/IGNORE_USERS? Sounds like we should define a default (default \u003d\u003d None)","commit_id":"7c93e54587dbd2bfd89341ef4e00e4eace288569"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"825cae0697e0304c74b48435a460bc087d7b3807","unresolved":false,"context_lines":[{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":"MANAGER \u003d CONF.datastore_manager if CONF.datastore_manager else \u0027mysql\u0027"},{"line_number":31,"context_line":"IGNORE_DBS \u003d (CONF.get(MANAGER).ignore_dbs if CONF.get(MANAGER).ignore_dbs"},{"line_number":32,"context_line":"              else CONF.ignore_dbs)"},{"line_number":33,"context_line":"IGNORE_USERS \u003d (CONF.get(MANAGER).ignore_users"},{"line_number":34,"context_line":"                if CONF.get(MANAGER).ignore_users"},{"line_number":35,"context_line":"                else CONF.ignore_users)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_911a4e6e","line":32,"in_reply_to":"ba15a1d1_75bec200","updated":"2015-09-23 03:40:19.000000000","message":"Good catch Victoria. i agree with this because mariadb and pxc dont have them (ignore_dbs or ignore_users) defined in cfg. \n\n2 solutions i see right now.\n    1. Would be to define them in the cfg.\n    2. Would be to default an empty list as the default for both of these fields.\n\ni think the easier solution would be #2 set the default to an empty list [], otherwise this would cause an exception to be raised.\n\nWould also be good to add a unittest for this case as well.","commit_id":"7c93e54587dbd2bfd89341ef4e00e4eace288569"},{"author":{"_account_id":13355,"name":"Edmond Kotowski","email":"ekotowski@gmail.com","username":"ekotowski"},"change_message_id":"7f9e247c13a0cb3bed4e1fcd852af21a3b0b8976","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":"MANAGER \u003d CONF.datastore_manager if CONF.datastore_manager else \u0027mysql\u0027"},{"line_number":31,"context_line":"IGNORE_DBS \u003d (CONF.get(MANAGER).ignore_dbs if CONF.get(MANAGER).ignore_dbs"},{"line_number":32,"context_line":"              else CONF.ignore_dbs if CONF.ignore_dbs"},{"line_number":33,"context_line":"              else [])"},{"line_number":34,"context_line":"IGNORE_USERS \u003d (CONF.get(MANAGER).ignore_users"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a2fa921_bcd489bd","line":31,"updated":"2015-10-12 00:06:04.000000000","message":"I noticed you are duplicating this same logic. I would put this logic in a function within a trove common file then you can unit test that directly. As it stands if we wanted to change this we would have to change it all the files in this review every time as opposed to one function change.","commit_id":"70283e03b0e8f2f8a130c34929803df38ca9b6c5"}],"trove/tests/api/root.py":[{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"9d6601a3d99bf160ddc6dec7ddbc13eac4b5569e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        assert_false(is_enabled, \"Root SHOULD NOT be enabled.\")"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @test"},{"line_number":78,"context_line":"    def test_create_user_root_failure(self):"},{"line_number":79,"context_line":"        users \u003d [{\"name\": \"root\", \"password\": \"12345\"}]"},{"line_number":80,"context_line":"        assert_raises(exceptions.BadRequest, self.dbaas.users.create,"},{"line_number":81,"context_line":"                      instance_info.id, users)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_8c34a5df","line":78,"updated":"2015-07-31 12:44:50.000000000","message":"Can you describe why this test needs to change?","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"fddeba1a5f079ed0d63aabb9e43144b5b8ad2231","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        assert_false(is_enabled, \"Root SHOULD NOT be enabled.\")"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @test"},{"line_number":78,"context_line":"    def test_create_user_root_failure(self):"},{"line_number":79,"context_line":"        users \u003d [{\"name\": \"root\", \"password\": \"12345\"}]"},{"line_number":80,"context_line":"        assert_raises(exceptions.BadRequest, self.dbaas.users.create,"},{"line_number":81,"context_line":"                      instance_info.id, users)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_2202233f","line":78,"in_reply_to":"3a50d1a3_8c34a5df","updated":"2015-07-31 20:25:36.000000000","message":"Before this change, both os_admin and root were ignored for both MySQL and Percona. Since the test only runs for MySQL by default, and since os_admin is no longer a \"special\" user for MySQL, this test would fail. To get the same effect; ensuring that you can\u0027t create a ignored user, I changed these tests to reference root which is still a ignored_user.","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"}],"trove/tests/unittests/guestagent/test_dbaas.py":[{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"9d6601a3d99bf160ddc6dec7ddbc13eac4b5569e","unresolved":false,"context_lines":[{"line_number":671,"context_line":"        self.assertEqual(1, mock_associate_dbs.call_count)"},{"line_number":672,"context_line":""},{"line_number":673,"context_line":"    def test_fail_get_user(self):"},{"line_number":674,"context_line":"        username \u003d \"root\""},{"line_number":675,"context_line":"        hostname \u003d \"host\""},{"line_number":676,"context_line":"        self.assertRaisesRegexp(BadRequest, \"Username root is not valid\","},{"line_number":677,"context_line":"                                self.mySqlAdmin.get_user, username, hostname)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_0c7655a3","line":674,"updated":"2015-07-31 12:44:50.000000000","message":"Why does this test have to change?","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"fddeba1a5f079ed0d63aabb9e43144b5b8ad2231","unresolved":false,"context_lines":[{"line_number":671,"context_line":"        self.assertEqual(1, mock_associate_dbs.call_count)"},{"line_number":672,"context_line":""},{"line_number":673,"context_line":"    def test_fail_get_user(self):"},{"line_number":674,"context_line":"        username \u003d \"root\""},{"line_number":675,"context_line":"        hostname \u003d \"host\""},{"line_number":676,"context_line":"        self.assertRaisesRegexp(BadRequest, \"Username root is not valid\","},{"line_number":677,"context_line":"                                self.mySqlAdmin.get_user, username, hostname)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_a294f3e7","line":674,"in_reply_to":"3a50d1a3_0c7655a3","updated":"2015-07-31 20:25:36.000000000","message":"because os_admin is not an ignored user any longer.","commit_id":"cc68a5061874c39be92e7dca71c1a5342b63f89c"},{"author":{"_account_id":13355,"name":"Edmond Kotowski","email":"ekotowski@gmail.com","username":"ekotowski"},"change_message_id":"7f9e247c13a0cb3bed4e1fcd852af21a3b0b8976","unresolved":false,"context_lines":[{"line_number":89,"context_line":"from trove.tests.unittests.util import util"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"CONF \u003d cfg.CONF"},{"line_number":92,"context_line":"MANAGER \u003d CONF.datastore_manager if CONF.datastore_manager else \u0027mysql\u0027"},{"line_number":93,"context_line":"IGNORE_DBS \u003d (CONF.get(MANAGER).ignore_dbs if CONF.get(MANAGER).ignore_dbs"},{"line_number":94,"context_line":"              else CONF.ignore_dbs if CONF.ignore_dbs"},{"line_number":95,"context_line":"              else [])"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a2fa921_7c50315f","line":92,"updated":"2015-10-12 00:06:04.000000000","message":"Why duplicate the same business logic in the unit test? We should be using the IGNORE_DBS from the models file. You are already importing models with from trove.guestagent.db import models so you should have access to IGNORE_DBS already.","commit_id":"70283e03b0e8f2f8a130c34929803df38ca9b6c5"}]}
