)]}'
{"keystone/common/config.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6d93c1f6b08492bae22ab29bedc3fe81202ec5f3","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                        \u0027like devstack can use the dogpile.cache.memory \u0027"},{"line_number":312,"context_line":"                        \u0027backend.\u0027),"},{"line_number":313,"context_line":"        cfg.StrOpt(\u0027backend_arguments\u0027, default\u003d\u0027{}\u0027,"},{"line_number":314,"context_line":"                   help\u003d\u0027dogpile.cache arguments. JSON string\u0027),"},{"line_number":315,"context_line":"        cfg.MultiStrOpt(\u0027backend_argument\u0027, default\u003d[],"},{"line_number":316,"context_line":"                        help\u003d\u0027Arguments supplied to the backend module. \u0027"},{"line_number":317,"context_line":"                             \u0027Specify this option once per argument to be \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_979fdf5e","line":314,"updated":"2014-09-10 15:05:14.000000000","message":"I do not want to support arbitrary JSON strings in our config file. Ideally we should look at why the multistr opt on the next line is insufficient and correct that, but a raw \"load json string\" seems like a very very bad idea.","commit_id":"20c7750050763bf06bf648ba6bf9e8a8d490ce2c"},{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"422adf75cbd70071527eb83bbf2379b9fe89719a","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                        \u0027like devstack can use the dogpile.cache.memory \u0027"},{"line_number":312,"context_line":"                        \u0027backend.\u0027),"},{"line_number":313,"context_line":"        cfg.StrOpt(\u0027backend_arguments\u0027, default\u003d\u0027{}\u0027,"},{"line_number":314,"context_line":"                   help\u003d\u0027dogpile.cache arguments. JSON string\u0027),"},{"line_number":315,"context_line":"        cfg.MultiStrOpt(\u0027backend_argument\u0027, default\u003d[],"},{"line_number":316,"context_line":"                        help\u003d\u0027Arguments supplied to the backend module. \u0027"},{"line_number":317,"context_line":"                             \u0027Specify this option once per argument to be \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_fd82c9fe","line":314,"in_reply_to":"fa98f980_979fdf5e","updated":"2014-09-10 17:39:50.000000000","message":"MultiStrOpt doesn\u0027t quite work. For example, pylibmc backend expects nested dict with some integer tunables, or even \u0027url\u0027 value is expected to be a list of host:port pairs. You can\u0027t get this with backend_argument. It can only provide raw string values. So since dogpile.cache backends expect arbitrary dicts, JSON value seems like a right fit. We can limit it to only dicts, for example, but we should support any values in them.","commit_id":"20c7750050763bf06bf648ba6bf9e8a8d490ce2c"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6d93c1f6b08492bae22ab29bedc3fe81202ec5f3","unresolved":false,"context_lines":[{"line_number":799,"context_line":"                    help\u003d\u0027Extra dogpile.cache backend modules to register \u0027"},{"line_number":800,"context_line":"                         \u0027with the dogpile.cache library.\u0027),"},{"line_number":801,"context_line":"        cfg.StrOpt(\u0027arguments\u0027, default\u003d\u0027{}\u0027,"},{"line_number":802,"context_line":"                   help\u003d\u0027dogpile.cache arguments. JSON string\u0027),"},{"line_number":803,"context_line":"        cfg.StrOpt(\u0027config_prefix\u0027, default\u003d\u0027keystone.kvs\u0027,"},{"line_number":804,"context_line":"                   help\u003d\u0027Prefix for building the configuration dictionary \u0027"},{"line_number":805,"context_line":"                        \u0027for the KVS region. This should not need to be \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_b7ece3f4","line":802,"updated":"2014-09-10 15:05:14.000000000","message":"This is a *global* that will affect all KVS backends. This is not how the keystone kvs backends were meant to be used. Each of the kvs backends needs it\u0027s *own* set of backend arguments, not one that is passed globally.","commit_id":"20c7750050763bf06bf648ba6bf9e8a8d490ce2c"},{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"422adf75cbd70071527eb83bbf2379b9fe89719a","unresolved":false,"context_lines":[{"line_number":799,"context_line":"                    help\u003d\u0027Extra dogpile.cache backend modules to register \u0027"},{"line_number":800,"context_line":"                         \u0027with the dogpile.cache library.\u0027),"},{"line_number":801,"context_line":"        cfg.StrOpt(\u0027arguments\u0027, default\u003d\u0027{}\u0027,"},{"line_number":802,"context_line":"                   help\u003d\u0027dogpile.cache arguments. JSON string\u0027),"},{"line_number":803,"context_line":"        cfg.StrOpt(\u0027config_prefix\u0027, default\u003d\u0027keystone.kvs\u0027,"},{"line_number":804,"context_line":"                   help\u003d\u0027Prefix for building the configuration dictionary \u0027"},{"line_number":805,"context_line":"                        \u0027for the KVS region. This should not need to be \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_fde8097e","line":802,"in_reply_to":"fa98f980_b7ece3f4","updated":"2014-09-10 17:39:50.000000000","message":"Good point, will look into spreading such option across other sections. Or should we just have different options for different backends here?","commit_id":"20c7750050763bf06bf648ba6bf9e8a8d490ce2c"}],"keystone/common/kvs/core.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6d93c1f6b08492bae22ab29bedc3fe81202ec5f3","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        prefix \u003d CONF.kvs.config_prefix"},{"line_number":217,"context_line":"        conf_dict \u003d {}"},{"line_number":218,"context_line":"        conf_dict[\u0027%s.backend\u0027 % prefix] \u003d backend"},{"line_number":219,"context_line":"        conf_dict[\u0027arguments\u0027] \u003d jsonutils.loads(CONF.kvs.arguments)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        if \u0027distributed_lock\u0027 not in config_args:"},{"line_number":222,"context_line":"            config_args[\u0027distributed_lock\u0027] \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_f78bcb1b","line":219,"updated":"2014-09-10 15:05:14.000000000","message":"See comment in config.py","commit_id":"20c7750050763bf06bf648ba6bf9e8a8d490ce2c"}]}
