)]}'
{"doc/source/getting-started/policy_mapping.rst":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9deb641f23c3bc9f9a2857a5f736ec5388f5ba50","unresolved":false,"context_lines":[{"line_number":37,"context_line":"identity:update_limits                                     PUT /v3/limits"},{"line_number":38,"context_line":"identity:delete_limit                                      DELETE /v3/limits/{limit_id}"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"identity:get_limit_model                                   GET /v3/limit_model"},{"line_number":41,"context_line":"                                                           HEAD /v3/limit_model"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"identity:get_domain                                        GET /v3/domains/{domain_id}"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f6a8fd7_53e56137","line":40,"range":{"start_line":40,"start_character":67,"end_line":40,"end_character":78},"updated":"2018-04-30 14:04:45.000000000","message":"I\u0027ll re-spin this so that it\u0027s GET /v3/limits/model to be more consistent with the rest of the API.","commit_id":"2ea55afb18195eba9b76680359bdc0f32ed34755"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"2256c47ebafb88edf49299c659f45e19c26291f4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"identity:update_limits                                     PUT /v3/limits"},{"line_number":38,"context_line":"identity:delete_limit                                      DELETE /v3/limits/{limit_id}"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"identity:get_limit_model                                   GET /v3/limit_model"},{"line_number":41,"context_line":"                                                           HEAD /v3/limit_model"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"identity:get_domain                                        GET /v3/domains/{domain_id}"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f6a8fd7_f3a2754b","line":40,"range":{"start_line":40,"start_character":67,"end_line":40,"end_character":78},"in_reply_to":"9f6a8fd7_53e56137","updated":"2018-04-30 14:30:36.000000000","message":"Done","commit_id":"2ea55afb18195eba9b76680359bdc0f32ed34755"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"666526b14b91f5eb6d27c8ef4cae3bbe84fad46d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"identity:delete_limit                                      DELETE /v3/limits/{limit_id}"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"identity:get_limit_model                                   GET /v3/limit_model"},{"line_number":41,"context_line":"                                                           HEAD /v3/limit_model"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"identity:get_domain                                        GET /v3/domains/{domain_id}"},{"line_number":44,"context_line":"identity:list_domains                                      GET /v3/domains"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_6a19bb86","line":41,"updated":"2018-05-03 09:00:00.000000000","message":"ditto","commit_id":"88d2ef96ff44ab7e45001d9c60082fb9793ff97c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e42588e646d7caf546de88367d6391c66d2d1b3e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"identity:delete_limit                                      DELETE /v3/limits/{limit_id}"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"identity:get_limit_model                                   GET /v3/limit_model"},{"line_number":41,"context_line":"                                                           HEAD /v3/limit_model"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"identity:get_domain                                        GET /v3/domains/{domain_id}"},{"line_number":44,"context_line":"identity:list_domains                                      GET /v3/domains"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_b70972de","line":41,"in_reply_to":"5f7c97a3_6a19bb86","updated":"2018-05-03 20:18:48.000000000","message":"Done","commit_id":"88d2ef96ff44ab7e45001d9c60082fb9793ff97c"}],"keystone/common/policies/limit.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e67c89ff05d71b5a064492ea491a3f6dd6ed3cdb","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":21,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":22,"context_line":"        description\u003d\u0027Get limit enforcement model.\u0027,"},{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027GET\u0027},"},{"line_number":25,"context_line":"                    {\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":26,"context_line":"                     \u0027method\u0027: \u0027HEAD\u0027}]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_56ad1c86","line":23,"range":{"start_line":23,"start_character":29,"end_line":23,"end_character":46},"updated":"2018-04-19 15:46:15.000000000","message":"When I implemented this, it occurred to me that the enforcement model only really applies to project limits. It doesn\u0027t really have anything to do with the registered limits in a system, does it?\n\nIf not, then we could probably reuse the /v3/limit path and add a `model` resource under that, instead of adding a new path:\n\n  GET /v3/limit/model\n  HEAD /v3/limit/model\n\ninstead of:\n\n  GET /v3/limit_model\n  HEAD /v3/limit_model\n\nUnless there is a relationship between the enforcement model and the registered limit that I\u0027m not aware of. I kept the this specific patch as GET /v3/limit_model because that is what was documented in the Queens specification [0].\n\nI can propose a patch to update the specification if we decide to go that route.\n\n[0] http://specs.openstack.org/openstack/keystone-specs/specs/keystone/queens/limits-api.html#flat-hierarchy-enforcement","commit_id":"2ea55afb18195eba9b76680359bdc0f32ed34755"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"60691711969d64e70e06241e9564cfeb257b1ee9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":21,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":22,"context_line":"        description\u003d\u0027Get limit enforcement model.\u0027,"},{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027GET\u0027},"},{"line_number":25,"context_line":"                    {\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":26,"context_line":"                     \u0027method\u0027: \u0027HEAD\u0027}]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_3318edd1","line":23,"range":{"start_line":23,"start_character":29,"end_line":23,"end_character":46},"in_reply_to":"9f6a8fd7_54712b43","updated":"2018-04-30 14:24:48.000000000","message":"Done, kept is as /v3/limits/model instead of /v3/limit/model, to be consistent with the rest of the paths. I\u0027m not entirely sure which approach is right.","commit_id":"2ea55afb18195eba9b76680359bdc0f32ed34755"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"054816e30466e802a9b6febeefe5d2af998d241a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":21,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":22,"context_line":"        description\u003d\u0027Get limit enforcement model.\u0027,"},{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027GET\u0027},"},{"line_number":25,"context_line":"                    {\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":26,"context_line":"                     \u0027method\u0027: \u0027HEAD\u0027}]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_e36a46b1","line":23,"range":{"start_line":23,"start_character":29,"end_line":23,"end_character":46},"in_reply_to":"9f6a8fd7_56ad1c86","updated":"2018-04-21 08:21:08.000000000","message":"++, the limit model is related to project, so we can surely say that it only applies to project limits. I\u0027m fine with the new path.","commit_id":"2ea55afb18195eba9b76680359bdc0f32ed34755"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"469de26509b452ba0eaf1919a8a9e769cfaedad6","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":21,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":22,"context_line":"        description\u003d\u0027Get limit enforcement model.\u0027,"},{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027GET\u0027},"},{"line_number":25,"context_line":"                    {\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":26,"context_line":"                     \u0027method\u0027: \u0027HEAD\u0027}]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_e41ebab9","line":23,"range":{"start_line":23,"start_character":29,"end_line":23,"end_character":46},"in_reply_to":"9f6a8fd7_e36a46b1","updated":"2018-04-23 14:50:43.000000000","message":"So you wouldn\u0027t be opposed to just having it be:\n\n  GET /v3/limit/model\n\nInstead of what I have?","commit_id":"2ea55afb18195eba9b76680359bdc0f32ed34755"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"be83717e21fb1a168a42a4c71ee8ce50ddc32c83","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":21,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":22,"context_line":"        description\u003d\u0027Get limit enforcement model.\u0027,"},{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027GET\u0027},"},{"line_number":25,"context_line":"                    {\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":26,"context_line":"                     \u0027method\u0027: \u0027HEAD\u0027}]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_54712b43","line":23,"range":{"start_line":23,"start_character":29,"end_line":23,"end_character":46},"in_reply_to":"9f6a8fd7_e41ebab9","updated":"2018-04-25 03:24:01.000000000","message":"yeah, I think GET /v3/limit/model is better","commit_id":"2ea55afb18195eba9b76680359bdc0f32ed34755"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"666526b14b91f5eb6d27c8ef4cae3bbe84fad46d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027GET\u0027},"},{"line_number":25,"context_line":"                    {\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":26,"context_line":"                     \u0027method\u0027: \u0027HEAD\u0027}]),"},{"line_number":27,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":28,"context_line":"        name\u003dbase.IDENTITY % \u0027get_limit\u0027,"},{"line_number":29,"context_line":"        check_str\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_ea238bbd","line":26,"updated":"2018-05-03 09:00:00.000000000","message":"should change to \"v3/limits/model\" to keep the same with the API patch: https://review.openstack.org/#/c/562716","commit_id":"88d2ef96ff44ab7e45001d9c60082fb9793ff97c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e42588e646d7caf546de88367d6391c66d2d1b3e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027GET\u0027},"},{"line_number":25,"context_line":"                    {\u0027path\u0027: \u0027/v3/limit_model\u0027,"},{"line_number":26,"context_line":"                     \u0027method\u0027: \u0027HEAD\u0027}]),"},{"line_number":27,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":28,"context_line":"        name\u003dbase.IDENTITY % \u0027get_limit\u0027,"},{"line_number":29,"context_line":"        check_str\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_176ce634","line":26,"in_reply_to":"5f7c97a3_ea238bbd","updated":"2018-05-03 20:18:48.000000000","message":"Done","commit_id":"88d2ef96ff44ab7e45001d9c60082fb9793ff97c"}]}
