)]}'
{"keystone/access_rules/core.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"aa291e2749dc5051afa705c1485add4c6bde3aed","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        super(Manager, self).__init__(CONF.access_rules.driver)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def list_access_rules(self, service\u003dNone):"},{"line_number":35,"context_line":"        \"\"\"List access rules."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        :param str service: filter by service type"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_0b50390a","line":34,"range":{"start_line":34,"start_character":4,"end_line":34,"end_character":46},"updated":"2019-02-19 18:49:02.000000000","message":"We should implement caching here.","commit_id":"b384d4b56e79f18547dd819561153cd3dd5eaa50"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"9506c5fccb6741bb0a79cded7af9a563f682aa37","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        super(Manager, self).__init__(CONF.access_rules.driver)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def list_access_rules(self, service\u003dNone):"},{"line_number":35,"context_line":"        \"\"\"List access rules."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        :param str service: filter by service type"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_617c2f20","line":34,"range":{"start_line":34,"start_character":4,"end_line":34,"end_character":46},"in_reply_to":"9fdfeff1_0b50390a","updated":"2019-02-24 20:58:24.000000000","message":"\"ValueError: dogpile.cache\u0027s default key creation function does not accept keyword arguments.\"","commit_id":"b384d4b56e79f18547dd819561153cd3dd5eaa50"}],"keystone/access_rules_config/__init__.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b33351460dca80a55fad6a72ab8f04ebbdbfd817","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from keystone.access_rules_config.core import *  # noqa"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_9a25b1c4","line":15,"updated":"2019-02-27 17:01:12.000000000","message":"Morgan was telling me in a separate change I was making that we should stop using this pattern.\n\nThat could be a separate refactor though.","commit_id":"f9dce46c26ed4fa434660e24ebbee8bd4626d442"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"a9117081d1c41be7ddcb7ee9aeb0205cd30002da","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from keystone.access_rules_config.core import *  # noqa"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_dd31f35a","line":15,"in_reply_to":"9fdfeff1_9a25b1c4","updated":"2019-02-27 17:19:54.000000000","message":"The tests don\u0027t work without it. If we want to fix it that will have to be in a different set of changes.","commit_id":"f9dce46c26ed4fa434660e24ebbee8bd4626d442"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9ced1540ad5295dae8f503760c26de9f49380114","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from keystone.access_rules_config.core import *  # noqa"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_7d47a7a4","line":15,"in_reply_to":"9fdfeff1_dd31f35a","updated":"2019-02-27 17:23:58.000000000","message":"Works for me","commit_id":"f9dce46c26ed4fa434660e24ebbee8bd4626d442"}],"keystone/access_rules_config/core.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b33351460dca80a55fad6a72ab8f04ebbdbfd817","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        super(Manager, self).__init__(CONF.access_rules_config.driver)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def list_access_rules_config(self, service\u003dNone):"},{"line_number":35,"context_line":"        \"\"\"List access rules config."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        :param str service: filter by service type"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_7affad01","line":34,"updated":"2019-02-27 17:01:12.000000000","message":"This is a pre-optimization, but we could remove the kwarg and have two distinct methods. One for listing all access rules and one for filtering based on a service, which should allow us to cache both.\n\nWe could wire up the API layer to call the right one later on.","commit_id":"f9dce46c26ed4fa434660e24ebbee8bd4626d442"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"dbcdd8658501eed185c418c72230e97b93f7cd14","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        super(Manager, self).__init__(CONF.access_rules_config.driver)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def list_access_rules_config(self, service\u003dNone):"},{"line_number":35,"context_line":"        \"\"\"List access rules config."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        :param str service: filter by service type"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_b9dd1a71","line":34,"in_reply_to":"9fdfeff1_7affad01","updated":"2019-02-27 23:29:42.000000000","message":"We could also just enable kwarg caching like we have elsewhere. Note dogpile can (with a change to the cache_key_generator) handle kwargs now.","commit_id":"f9dce46c26ed4fa434660e24ebbee8bd4626d442"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"74793dc7723149a7bbf3c6fb2d722164cfd7033c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        super(Manager, self).__init__(CONF.access_rules_config.driver)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def list_access_rules_config(self, service\u003dNone):"},{"line_number":35,"context_line":"        \"\"\"List access rules config."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        :param str service: filter by service type"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_41198777","line":34,"in_reply_to":"9fdfeff1_b9dd1a71","updated":"2019-02-28 14:56:55.000000000","message":"++\n\nI saw your patch for kwargs support *right* after I looked at this series. Thanks for the update!","commit_id":"f9dce46c26ed4fa434660e24ebbee8bd4626d442"}]}
