)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"f53946eb0d883df58f1e33db5583f6807d7b9ef1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"used by a deployment in the limit Manager. A subsequent patch will"},{"line_number":11,"context_line":"expose this functionality via the API."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This commit also starts introdcuing the concept of enforcement"},{"line_number":14,"context_line":"models and puts the flat model into its own module. This will make"},{"line_number":15,"context_line":"more sense and be easier to maintain as we implement more models."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I32227eb0023e6b6ce699909fabb60a63a07f0969"},{"line_number":18,"context_line":"Related-Bug: 1765193"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"5f7c97a3_17dd2a6c","line":15,"range":{"start_line":13,"start_character":0,"end_line":15,"end_character":65},"updated":"2018-07-05 23:22:50.000000000","message":"[NIT] This should probably be a separate commit","commit_id":"fd4b7371338d9a7d5487254ada3303eef7796d62"}],"keystone/limit/core.py":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"ef17d7c8dffaaff6b68b18a866af87c52dcf3824","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_model(self):"},{"line_number":60,"context_line":"        \"\"\"Return the name of the enforcement model from configuration.\"\"\""},{"line_number":61,"context_line":"        return CONF.unified_limit.enforcement_model"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def create_registered_limits(self, registered_limits):"},{"line_number":64,"context_line":"        for registered_limit in registered_limits:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_639cf6bf","line":61,"updated":"2018-04-21 08:25:37.000000000","message":"Only return the name maybe is not enough. I think we may tell more things about the specified model to users. Such as a description or the official guide link as you mentioned before in the specs.\n\nSince this API is EXPERIMENTAL as well, we can revisit it once Hierarchical Unified Limits is done.","commit_id":"33a5172d1258908974f9234d4d9ee0f9a043b5d8"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ddc41f395a3d9d89b59719251bb6d27a5d3f377d","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_model(self):"},{"line_number":60,"context_line":"        \"\"\"Return the name of the enforcement model from configuration.\"\"\""},{"line_number":61,"context_line":"        return CONF.unified_limit.enforcement_model"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def create_registered_limits(self, registered_limits):"},{"line_number":64,"context_line":"        for registered_limit in registered_limits:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_223e5829","line":61,"in_reply_to":"9f6a8fd7_639cf6bf","updated":"2018-04-30 15:41:50.000000000","message":"Done","commit_id":"33a5172d1258908974f9234d4d9ee0f9a043b5d8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"e0609b8a842a81bf42e71520d4945b467287a415","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_model(self):"},{"line_number":60,"context_line":"        \"\"\"Return the name of the enforcement model from configuration.\"\"\""},{"line_number":61,"context_line":"        return CONF.unified_limit.enforcement_model"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def create_registered_limits(self, registered_limits):"},{"line_number":64,"context_line":"        for registered_limit in registered_limits:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_68274f66","line":61,"in_reply_to":"9f6a8fd7_639cf6bf","updated":"2018-04-30 17:19:10.000000000","message":"Please note that \"","commit_id":"33a5172d1258908974f9234d4d9ee0f9a043b5d8"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"7e2f694252057390d40cb0e0724490c87d68c329","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.model_map \u003d {"},{"line_number":39,"context_line":"            \u0027flat\u0027: {"},{"line_number":40,"context_line":"                \u0027link\u0027: (\u0027https://docs.openstack.org/keystone/latest/admin/\u0027"},{"line_number":41,"context_line":"                         \u0027identity-unified-limits.html#flat\u0027),"},{"line_number":42,"context_line":"                \u0027description\u0027: (\u0027Limit enforcement and validation does not \u0027"},{"line_number":43,"context_line":"                                \u0027take project hierarchy into consideration.\u0027)"},{"line_number":44,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_d4a5c848","line":41,"updated":"2018-05-01 13:28:45.000000000","message":"during every release, doc may changed.  So I\u0027m afraid it\u0027s not suitable that the link is alway \"latest\". But I have no idea about how to make it changeable in every release.","commit_id":"a710dab3c5cb82afb3c683dcf75481ababe3071e"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"bebaa25d7319df0f3556e1703437e2d26684c3be","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.model_map \u003d {"},{"line_number":39,"context_line":"            \u0027flat\u0027: {"},{"line_number":40,"context_line":"                \u0027link\u0027: (\u0027https://docs.openstack.org/keystone/latest/admin/\u0027"},{"line_number":41,"context_line":"                         \u0027identity-unified-limits.html#flat\u0027),"},{"line_number":42,"context_line":"                \u0027description\u0027: (\u0027Limit enforcement and validation does not \u0027"},{"line_number":43,"context_line":"                                \u0027take project hierarchy into consideration.\u0027)"},{"line_number":44,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_7e1b691a","line":41,"in_reply_to":"9f6a8fd7_0050da5d","updated":"2018-05-02 02:35:56.000000000","message":"yeah, I\u0027m also a little hesitate about the link.","commit_id":"a710dab3c5cb82afb3c683dcf75481ababe3071e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"3247492bcfd26acb8a7ad0f66c3390673b37852c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.model_map \u003d {"},{"line_number":39,"context_line":"            \u0027flat\u0027: {"},{"line_number":40,"context_line":"                \u0027link\u0027: (\u0027https://docs.openstack.org/keystone/latest/admin/\u0027"},{"line_number":41,"context_line":"                         \u0027identity-unified-limits.html#flat\u0027),"},{"line_number":42,"context_line":"                \u0027description\u0027: (\u0027Limit enforcement and validation does not \u0027"},{"line_number":43,"context_line":"                                \u0027take project hierarchy into consideration.\u0027)"},{"line_number":44,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_ddd072cc","line":41,"in_reply_to":"9f6a8fd7_7e1b691a","updated":"2018-05-02 13:50:33.000000000","message":"Done, I\u0027ve removed the link. But, I wonder if the data structure should be a dict only containing a single key for a description?\n\nI suppose this is convenient if we decide to add more data about the limit model in the future.","commit_id":"a710dab3c5cb82afb3c683dcf75481ababe3071e"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"a5aa155a540d5372ae34a416622f4c4cd2f52c85","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.model_map \u003d {"},{"line_number":39,"context_line":"            \u0027flat\u0027: {"},{"line_number":40,"context_line":"                \u0027link\u0027: (\u0027https://docs.openstack.org/keystone/latest/admin/\u0027"},{"line_number":41,"context_line":"                         \u0027identity-unified-limits.html#flat\u0027),"},{"line_number":42,"context_line":"                \u0027description\u0027: (\u0027Limit enforcement and validation does not \u0027"},{"line_number":43,"context_line":"                                \u0027take project hierarchy into consideration.\u0027)"},{"line_number":44,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_0050da5d","line":41,"in_reply_to":"9f6a8fd7_d4a5c848","updated":"2018-05-01 15:59:34.000000000","message":"Do we actually even need a link to the documentation? We have never done this for any other kind of API AFAIK.","commit_id":"a710dab3c5cb82afb3c683dcf75481ababe3071e"}],"keystone/limit/models/flat.py":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"686a36925715d5a7355075aada737ad7bfea9e7f","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"# TODO(lbragstad): This should inherit from an abstract interface so that we"},{"line_number":15,"context_line":"# ensure all models implement the same things."},{"line_number":16,"context_line":"class Model(object):"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    name \u003d \u0027flat\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_7e4c2076","line":15,"updated":"2018-05-03 09:02:53.000000000","message":"++","commit_id":"2e6ba8970764ae455280c218349c797757f7d979"}]}
