)]}'
{"keystone/api/limits.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e97c5b9f3c4fdd368eaf3580e607d6e953c549bd","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            if project_id and project_id !\u003d ref[\u0027project_id\u0027]:"},{"line_number":62,"context_line":"                action \u003d _(\u0027The authenticated project should match the \u0027"},{"line_number":63,"context_line":"                           \u0027project_id\u0027)"},{"line_number":64,"context_line":"                raise exception.Forbidden(action\u003daction)"},{"line_number":65,"context_line":"        return self.wrap_member(ref)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get(self, limit_id\u003dNone):"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_c222b4a3","side":"PARENT","line":64,"updated":"2019-02-25 10:41:43.000000000","message":"Why was this removed? What about allowing a domain id in the context?","commit_id":"347269184edf6cb4dd949a6e3a61c0c370f69ee7"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"a3aa0fd9126fda764bd7ca2162e33d6659655ab0","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            if project_id and project_id !\u003d ref[\u0027project_id\u0027]:"},{"line_number":62,"context_line":"                action \u003d _(\u0027The authenticated project should match the \u0027"},{"line_number":63,"context_line":"                           \u0027project_id\u0027)"},{"line_number":64,"context_line":"                raise exception.Forbidden(action\u003daction)"},{"line_number":65,"context_line":"        return self.wrap_member(ref)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get(self, limit_id\u003dNone):"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_55b4d381","side":"PARENT","line":64,"in_reply_to":"9fdfeff1_6335c5f6","updated":"2019-03-01 01:37:13.000000000","message":"++, yeah, let\u0027s move to policy way.","commit_id":"347269184edf6cb4dd949a6e3a61c0c370f69ee7"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"95e75fdf087093f9ed9c45dce079be453a08f252","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            if project_id and project_id !\u003d ref[\u0027project_id\u0027]:"},{"line_number":62,"context_line":"                action \u003d _(\u0027The authenticated project should match the \u0027"},{"line_number":63,"context_line":"                           \u0027project_id\u0027)"},{"line_number":64,"context_line":"                raise exception.Forbidden(action\u003daction)"},{"line_number":65,"context_line":"        return self.wrap_member(ref)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get(self, limit_id\u003dNone):"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_f4b1a402","side":"PARENT","line":64,"in_reply_to":"9fdfeff1_c222b4a3","updated":"2019-02-25 22:18:26.000000000","message":"I think it\u0027s because of https://review.openstack.org/#/c/622773/17/keystone/common/policies/limit.py@30","commit_id":"347269184edf6cb4dd949a6e3a61c0c370f69ee7"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"0a0c5cc838caec26424157250e289a7eef691bd1","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            if project_id and project_id !\u003d ref[\u0027project_id\u0027]:"},{"line_number":62,"context_line":"                action \u003d _(\u0027The authenticated project should match the \u0027"},{"line_number":63,"context_line":"                           \u0027project_id\u0027)"},{"line_number":64,"context_line":"                raise exception.Forbidden(action\u003daction)"},{"line_number":65,"context_line":"        return self.wrap_member(ref)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get(self, limit_id\u003dNone):"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_6335c5f6","side":"PARENT","line":64,"in_reply_to":"9fdfeff1_f4b1a402","updated":"2019-02-27 22:28:57.000000000","message":"got it","commit_id":"347269184edf6cb4dd949a6e3a61c0c370f69ee7"}],"keystone/common/policies/limit.py":[{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"9c614a8052010d88ed22330f96d0189efa30dac2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        # can obtain this information.  Making changes to a limit should be"},{"line_number":35,"context_line":"        # considered a protected system-level API, as noted below with"},{"line_number":36,"context_line":"        # scope_types\u003d[\u0027system\u0027]."},{"line_number":37,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":38,"context_line":"        description\u003d\u0027Show limit details.\u0027,"},{"line_number":39,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limits/{limit_id}\u0027,"},{"line_number":40,"context_line":"                     \u0027method\u0027: \u0027GET\u0027},"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_00a099a2","line":37,"updated":"2018-12-06 09:00:24.000000000","message":"Was wondering if limits are now domain specific, the scope_types should include domain too?","commit_id":"13807bedbdb5890c79c648529dd1f4e6b2303be6"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"6f87f64b096026a8a006fb5f76f089e01dd401cb","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        # can obtain this information.  Making changes to a limit should be"},{"line_number":35,"context_line":"        # considered a protected system-level API, as noted below with"},{"line_number":36,"context_line":"        # scope_types\u003d[\u0027system\u0027]."},{"line_number":37,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":38,"context_line":"        description\u003d\u0027Show limit details.\u0027,"},{"line_number":39,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limits/{limit_id}\u0027,"},{"line_number":40,"context_line":"                     \u0027method\u0027: \u0027GET\u0027},"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_283facde","line":37,"in_reply_to":"3f79a3b5_00a099a2","updated":"2018-12-07 06:37:27.000000000","message":"yes, nice catch.","commit_id":"13807bedbdb5890c79c648529dd1f4e6b2303be6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"842658bf6204d79de5fc35cad453706267a85e78","unresolved":false,"context_lines":[{"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\u0027role:reader or project_id:%(target.limit.project_id)s or \u0027"},{"line_number":30,"context_line":"                  \u0027domain_id:%(target.limit.domain_id)s\u0027,"},{"line_number":31,"context_line":"        # Getting a single limit or listing all limits should be information"},{"line_number":32,"context_line":"        # accessible to everyone. By setting scope_types\u003d[\u0027system\u0027, \u0027project\u0027]"},{"line_number":33,"context_line":"        # we\u0027re making it so that anyone with a role on the system or a project"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_f81d8d64","line":30,"updated":"2018-12-12 22:12:52.000000000","message":"How come we need this if this information is readable to anyone with a valid token?","commit_id":"e887fb41e31308bc9814e16ae4e22263242c763c"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"199633d30df7280184de9cabcfabd03198436365","unresolved":false,"context_lines":[{"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\u0027role:reader or project_id:%(target.limit.project_id)s or \u0027"},{"line_number":30,"context_line":"                  \u0027domain_id:%(target.limit.domain_id)s\u0027,"},{"line_number":31,"context_line":"        # Getting a single limit or listing all limits should be information"},{"line_number":32,"context_line":"        # accessible to everyone. By setting scope_types\u003d[\u0027system\u0027, \u0027project\u0027]"},{"line_number":33,"context_line":"        # we\u0027re making it so that anyone with a role on the system or a project"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_da8f282a","line":30,"in_reply_to":"3f79a3b5_f81d8d64","updated":"2018-12-17 07:59:29.000000000","message":"I think \"project limit\" is more like a project scoped resources, which should be isolated by tenant. i.e. a user in project_A should not have the right to view the limit for project_B","commit_id":"e887fb41e31308bc9814e16ae4e22263242c763c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"842658bf6204d79de5fc35cad453706267a85e78","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        name\u003dbase.IDENTITY % \u0027get_limit\u0027,"},{"line_number":29,"context_line":"        check_str\u003d\u0027role:reader or project_id:%(target.limit.project_id)s or \u0027"},{"line_number":30,"context_line":"                  \u0027domain_id:%(target.limit.domain_id)s\u0027,"},{"line_number":31,"context_line":"        # Getting a single limit or listing all limits should be information"},{"line_number":32,"context_line":"        # accessible to everyone. By setting scope_types\u003d[\u0027system\u0027, \u0027project\u0027]"},{"line_number":33,"context_line":"        # we\u0027re making it so that anyone with a role on the system or a project"},{"line_number":34,"context_line":"        # can obtain this information.  Making changes to a limit should be"},{"line_number":35,"context_line":"        # considered a protected system-level API, as noted below with"},{"line_number":36,"context_line":"        # scope_types\u003d[\u0027system\u0027]."},{"line_number":37,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027, \u0027domain\u0027],"},{"line_number":38,"context_line":"        description\u003d\u0027Show limit details.\u0027,"},{"line_number":39,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limits/{limit_id}\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_d803f10a","line":36,"range":{"start_line":31,"start_character":8,"end_line":36,"end_character":33},"updated":"2018-12-12 22:12:52.000000000","message":"We can probably remove this comment. Or at least update it to include context about domains.","commit_id":"e887fb41e31308bc9814e16ae4e22263242c763c"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"199633d30df7280184de9cabcfabd03198436365","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        name\u003dbase.IDENTITY % \u0027get_limit\u0027,"},{"line_number":29,"context_line":"        check_str\u003d\u0027role:reader or project_id:%(target.limit.project_id)s or \u0027"},{"line_number":30,"context_line":"                  \u0027domain_id:%(target.limit.domain_id)s\u0027,"},{"line_number":31,"context_line":"        # Getting a single limit or listing all limits should be information"},{"line_number":32,"context_line":"        # accessible to everyone. By setting scope_types\u003d[\u0027system\u0027, \u0027project\u0027]"},{"line_number":33,"context_line":"        # we\u0027re making it so that anyone with a role on the system or a project"},{"line_number":34,"context_line":"        # can obtain this information.  Making changes to a limit should be"},{"line_number":35,"context_line":"        # considered a protected system-level API, as noted below with"},{"line_number":36,"context_line":"        # scope_types\u003d[\u0027system\u0027]."},{"line_number":37,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027, \u0027domain\u0027],"},{"line_number":38,"context_line":"        description\u003d\u0027Show limit details.\u0027,"},{"line_number":39,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limits/{limit_id}\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_babfccc9","line":36,"range":{"start_line":31,"start_character":8,"end_line":36,"end_character":33},"in_reply_to":"3f79a3b5_d803f10a","updated":"2018-12-17 07:59:29.000000000","message":"Done","commit_id":"e887fb41e31308bc9814e16ae4e22263242c763c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5017df4728c623a47c73d4da83a1a82b2db60791","unresolved":false,"context_lines":[{"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\u0027role:reader or project_id:%(target.limit.project_id)s or \u0027"},{"line_number":30,"context_line":"                  \u0027domain_id:%(target.limit.domain_id)s\u0027,"},{"line_number":31,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027, \u0027domain\u0027],"},{"line_number":32,"context_line":"        description\u003d\u0027Show limit details.\u0027,"},{"line_number":33,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limits/{limit_id}\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bfdaf3ff_77608da6","line":30,"updated":"2019-01-15 21:42:28.000000000","message":"If I have the \u0027reader\u0027 role on a project, I will technically be able to call this API regardless of the project I\u0027m asking for, right? We might need some negative testing here.\n\nWe might require something like:\n\n  # system-scope administrator\n  (role:reader and system_scope:all) or\n  # someone with authorization on the project\n  project_id:%(target.limit.project_id)s or \n  # someone with authorization on the domain\n  domain_id:%(target.limit.domain_id)s","commit_id":"af431f8f92e0ce2ab3ba85147645981d1fcc3344"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"f3d0adbba1cf79ee3deafd88f658efac5e8d258e","unresolved":false,"context_lines":[{"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\u0027role:reader or project_id:%(target.limit.project_id)s or \u0027"},{"line_number":30,"context_line":"                  \u0027domain_id:%(target.limit.domain_id)s\u0027,"},{"line_number":31,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027, \u0027domain\u0027],"},{"line_number":32,"context_line":"        description\u003d\u0027Show limit details.\u0027,"},{"line_number":33,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/limits/{limit_id}\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_2b1f1e6d","line":30,"in_reply_to":"bfdaf3ff_77608da6","updated":"2019-01-23 07:17:22.000000000","message":"Done","commit_id":"af431f8f92e0ce2ab3ba85147645981d1fcc3344"}],"keystone/limit/schema.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5017df4728c623a47c73d4da83a1a82b2db60791","unresolved":false,"context_lines":[{"line_number":101,"context_line":"         \u0027required\u0027: [\u0027domain_id\u0027, \u0027service_id\u0027, \u0027resource_name\u0027,"},{"line_number":102,"context_line":"                      \u0027resource_limit\u0027],"},{"line_number":103,"context_line":"         \u0027additionalProperties\u0027: False,"},{"line_number":104,"context_line":"         },"},{"line_number":105,"context_line":"    ]"},{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bfdaf3ff_b7f035cb","line":104,"updated":"2019-01-15 21:42:28.000000000","message":"Interesting - is this the default way to implement mutually exclusive groups in jsonschema?","commit_id":"af431f8f92e0ce2ab3ba85147645981d1fcc3344"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"f3d0adbba1cf79ee3deafd88f658efac5e8d258e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"         \u0027required\u0027: [\u0027domain_id\u0027, \u0027service_id\u0027, \u0027resource_name\u0027,"},{"line_number":102,"context_line":"                      \u0027resource_limit\u0027],"},{"line_number":103,"context_line":"         \u0027additionalProperties\u0027: False,"},{"line_number":104,"context_line":"         },"},{"line_number":105,"context_line":"    ]"},{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_c73526dc","line":104,"in_reply_to":"bfdaf3ff_b7f035cb","updated":"2019-01-23 07:17:22.000000000","message":"Not sure  but I think so.","commit_id":"af431f8f92e0ce2ab3ba85147645981d1fcc3344"}],"keystone/tests/unit/test_limits.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"842658bf6204d79de5fc35cad453706267a85e78","unresolved":false,"context_lines":[{"line_number":549,"context_line":""},{"line_number":550,"context_line":"        # Create more assignments, all are:"},{"line_number":551,"context_line":"        #"},{"line_number":552,"context_line":"        # self.user -- admin -- self.project"},{"line_number":553,"context_line":"        # self.user -- non-admin -- self.project_2"},{"line_number":554,"context_line":"        # self.user -- admin -- self.domain"},{"line_number":555,"context_line":"        # self.user -- non-admin -- self.domain_2"},{"line_number":556,"context_line":"        # self.user -- admin -- system"},{"line_number":557,"context_line":"        self.project_2 \u003d unit.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":558,"context_line":"        self.project_2_id \u003d self.project_2[\u0027id\u0027]"},{"line_number":559,"context_line":"        PROVIDERS.resource_api.create_project(self.project_2_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_b8171543","line":556,"range":{"start_line":552,"start_character":8,"end_line":556,"end_character":38},"updated":"2018-12-12 22:12:52.000000000","message":"Some of these seem like personas that would make sense in the protection tests (keystone.tests.unit.protection.v3.test_limits)","commit_id":"e887fb41e31308bc9814e16ae4e22263242c763c"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"199633d30df7280184de9cabcfabd03198436365","unresolved":false,"context_lines":[{"line_number":549,"context_line":""},{"line_number":550,"context_line":"        # Create more assignments, all are:"},{"line_number":551,"context_line":"        #"},{"line_number":552,"context_line":"        # self.user -- admin -- self.project"},{"line_number":553,"context_line":"        # self.user -- non-admin -- self.project_2"},{"line_number":554,"context_line":"        # self.user -- admin -- self.domain"},{"line_number":555,"context_line":"        # self.user -- non-admin -- self.domain_2"},{"line_number":556,"context_line":"        # self.user -- admin -- system"},{"line_number":557,"context_line":"        self.project_2 \u003d unit.new_project_ref(domain_id\u003dself.domain_id)"},{"line_number":558,"context_line":"        self.project_2_id \u003d self.project_2[\u0027id\u0027]"},{"line_number":559,"context_line":"        PROVIDERS.resource_api.create_project(self.project_2_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_fac5445f","line":556,"range":{"start_line":552,"start_character":8,"end_line":556,"end_character":38},"in_reply_to":"3f79a3b5_b8171543","updated":"2018-12-17 07:59:29.000000000","message":"similar, but the assignment here is using for \"project_id\" or \"domain_id\" filter tests.\n\nsee:\ntest_list_limit_with_project_id_filter\ntest_list_limit_with_domain_id_filter","commit_id":"e887fb41e31308bc9814e16ae4e22263242c763c"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e97c5b9f3c4fdd368eaf3580e607d6e953c549bd","unresolved":false,"context_lines":[{"line_number":1010,"context_line":"        self.assertEqual(self.domain_2_id, limits[0][\u0027domain_id\u0027])"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"        # if non system scoped request contain domain_id filter, keystone"},{"line_number":1013,"context_line":"        # will return an empty list."},{"line_number":1014,"context_line":"        r \u003d self.get("},{"line_number":1015,"context_line":"            \u0027/limits?domain_id\u003d%s\u0027 % self.domain_id,"},{"line_number":1016,"context_line":"            expected_status\u003dhttp_client.OK)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_02899c73","line":1013,"updated":"2019-02-25 10:41:43.000000000","message":"Even if it\u0027s your own domain ID?","commit_id":"df173c7c90bfebfd646751cf45d1f4cdbad57137"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"691d8106ed9ae5b13275c2625f54ba72bcba9a22","unresolved":false,"context_lines":[{"line_number":1010,"context_line":"        self.assertEqual(self.domain_2_id, limits[0][\u0027domain_id\u0027])"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"        # if non system scoped request contain domain_id filter, keystone"},{"line_number":1013,"context_line":"        # will return an empty list."},{"line_number":1014,"context_line":"        r \u003d self.get("},{"line_number":1015,"context_line":"            \u0027/limits?domain_id\u003d%s\u0027 % self.domain_id,"},{"line_number":1016,"context_line":"            expected_status\u003dhttp_client.OK)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_c3959141","line":1013,"in_reply_to":"9fdfeff1_02899c73","updated":"2019-02-27 22:07:56.000000000","message":"Oh - I might be able to address this with https://review.openstack.org/#/c/621023","commit_id":"df173c7c90bfebfd646751cf45d1f4cdbad57137"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"a3aa0fd9126fda764bd7ca2162e33d6659655ab0","unresolved":false,"context_lines":[{"line_number":1010,"context_line":"        self.assertEqual(self.domain_2_id, limits[0][\u0027domain_id\u0027])"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"        # if non system scoped request contain domain_id filter, keystone"},{"line_number":1013,"context_line":"        # will return an empty list."},{"line_number":1014,"context_line":"        r \u003d self.get("},{"line_number":1015,"context_line":"            \u0027/limits?domain_id\u003d%s\u0027 % self.domain_id,"},{"line_number":1016,"context_line":"            expected_status\u003dhttp_client.OK)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_15b2cb94","line":1013,"in_reply_to":"9fdfeff1_033879eb","updated":"2019-03-01 01:37:13.000000000","message":"++","commit_id":"df173c7c90bfebfd646751cf45d1f4cdbad57137"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"0a0c5cc838caec26424157250e289a7eef691bd1","unresolved":false,"context_lines":[{"line_number":1010,"context_line":"        self.assertEqual(self.domain_2_id, limits[0][\u0027domain_id\u0027])"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"        # if non system scoped request contain domain_id filter, keystone"},{"line_number":1013,"context_line":"        # will return an empty list."},{"line_number":1014,"context_line":"        r \u003d self.get("},{"line_number":1015,"context_line":"            \u0027/limits?domain_id\u003d%s\u0027 % self.domain_id,"},{"line_number":1016,"context_line":"            expected_status\u003dhttp_client.OK)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_033879eb","line":1013,"in_reply_to":"9fdfeff1_c3959141","updated":"2019-02-27 22:28:57.000000000","message":"cool, thanks","commit_id":"df173c7c90bfebfd646751cf45d1f4cdbad57137"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e97c5b9f3c4fdd368eaf3580e607d6e953c549bd","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"        if r.result[\u0027limits\u0027][0][\u0027resource_name\u0027] \u003d\u003d \u0027volume\u0027:"},{"line_number":1045,"context_line":"            id1 \u003d r.result[\u0027limits\u0027][0][\u0027id\u0027]"},{"line_number":1046,"context_line":"        else:"},{"line_number":1047,"context_line":"            id1 \u003d r.result[\u0027limits\u0027][1][\u0027id\u0027]"},{"line_number":1048,"context_line":"        self.get(\u0027/limits/fake_id\u0027,"},{"line_number":1049,"context_line":"                 expected_status\u003dhttp_client.NOT_FOUND)"},{"line_number":1050,"context_line":"        r \u003d self.get(\u0027/limits/%s\u0027 % id1,"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_22e2a031","line":1047,"updated":"2019-02-25 10:41:43.000000000","message":"Not sure how this is related to the rest of the change?","commit_id":"df173c7c90bfebfd646751cf45d1f4cdbad57137"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"0a0c5cc838caec26424157250e289a7eef691bd1","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"        if r.result[\u0027limits\u0027][0][\u0027resource_name\u0027] \u003d\u003d \u0027volume\u0027:"},{"line_number":1045,"context_line":"            id1 \u003d r.result[\u0027limits\u0027][0][\u0027id\u0027]"},{"line_number":1046,"context_line":"        else:"},{"line_number":1047,"context_line":"            id1 \u003d r.result[\u0027limits\u0027][1][\u0027id\u0027]"},{"line_number":1048,"context_line":"        self.get(\u0027/limits/fake_id\u0027,"},{"line_number":1049,"context_line":"                 expected_status\u003dhttp_client.NOT_FOUND)"},{"line_number":1050,"context_line":"        r \u003d self.get(\u0027/limits/%s\u0027 % id1,"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_631e2571","line":1047,"in_reply_to":"9fdfeff1_22e2a031","updated":"2019-02-27 22:28:57.000000000","message":"so was this just flakiness in the ordering of the dict?","commit_id":"df173c7c90bfebfd646751cf45d1f4cdbad57137"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"d7dbd6cc511b52e658988b9e22b2c706113222d1","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"        if r.result[\u0027limits\u0027][0][\u0027resource_name\u0027] \u003d\u003d \u0027volume\u0027:"},{"line_number":1045,"context_line":"            id1 \u003d r.result[\u0027limits\u0027][0][\u0027id\u0027]"},{"line_number":1046,"context_line":"        else:"},{"line_number":1047,"context_line":"            id1 \u003d r.result[\u0027limits\u0027][1][\u0027id\u0027]"},{"line_number":1048,"context_line":"        self.get(\u0027/limits/fake_id\u0027,"},{"line_number":1049,"context_line":"                 expected_status\u003dhttp_client.NOT_FOUND)"},{"line_number":1050,"context_line":"        r \u003d self.get(\u0027/limits/%s\u0027 % id1,"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_e16f5bc1","line":1047,"in_reply_to":"9fdfeff1_631e2571","updated":"2019-02-28 14:59:27.000000000","message":"Possibly, I\u0027ll let Xiyuan weigh in on this.","commit_id":"df173c7c90bfebfd646751cf45d1f4cdbad57137"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"a3aa0fd9126fda764bd7ca2162e33d6659655ab0","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"        if r.result[\u0027limits\u0027][0][\u0027resource_name\u0027] \u003d\u003d \u0027volume\u0027:"},{"line_number":1045,"context_line":"            id1 \u003d r.result[\u0027limits\u0027][0][\u0027id\u0027]"},{"line_number":1046,"context_line":"        else:"},{"line_number":1047,"context_line":"            id1 \u003d r.result[\u0027limits\u0027][1][\u0027id\u0027]"},{"line_number":1048,"context_line":"        self.get(\u0027/limits/fake_id\u0027,"},{"line_number":1049,"context_line":"                 expected_status\u003dhttp_client.NOT_FOUND)"},{"line_number":1050,"context_line":"        r \u003d self.get(\u0027/limits/%s\u0027 % id1,"}],"source_content_type":"text/x-python","patch_set":17,"id":"9fdfeff1_509381a3","line":1047,"in_reply_to":"9fdfeff1_e16f5bc1","updated":"2019-03-01 01:37:13.000000000","message":"This is a unnecessary change since the response order is always the same with the input order. But I just want to \nensure to get the resource which we want for the assertion at L1056. The code here can be clear that we get the volume limit indeed.\n\nAnyway,this change can be removed if we don\u0027t like it.","commit_id":"df173c7c90bfebfd646751cf45d1f4cdbad57137"}],"keystone/tests/unit/test_validation.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"842658bf6204d79de5fc35cad453706267a85e78","unresolved":false,"context_lines":[{"line_number":2740,"context_line":"                              self.create_limits_validator.validate,"},{"line_number":2741,"context_line":"                              request_to_validate)"},{"line_number":2742,"context_line":""},{"line_number":2743,"context_line":"    def test_validate_limit_create_request_with_invalid_dopmain(self):"},{"line_number":2744,"context_line":"        request_to_validate \u003d [{\u0027domain_id\u0027: \u0027fake_id\u0027,"},{"line_number":2745,"context_line":"                                \u0027service_id\u0027: uuid.uuid4().hex,"},{"line_number":2746,"context_line":"                                \u0027region_id\u0027: \u0027RegionOne\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_5828417e","line":2743,"range":{"start_line":2743,"start_character":56,"end_line":2743,"end_character":63},"updated":"2018-12-12 22:12:52.000000000","message":"domain*","commit_id":"e887fb41e31308bc9814e16ae4e22263242c763c"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"199633d30df7280184de9cabcfabd03198436365","unresolved":false,"context_lines":[{"line_number":2740,"context_line":"                              self.create_limits_validator.validate,"},{"line_number":2741,"context_line":"                              request_to_validate)"},{"line_number":2742,"context_line":""},{"line_number":2743,"context_line":"    def test_validate_limit_create_request_with_invalid_dopmain(self):"},{"line_number":2744,"context_line":"        request_to_validate \u003d [{\u0027domain_id\u0027: \u0027fake_id\u0027,"},{"line_number":2745,"context_line":"                                \u0027service_id\u0027: uuid.uuid4().hex,"},{"line_number":2746,"context_line":"                                \u0027region_id\u0027: \u0027RegionOne\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_fadc6445","line":2743,"range":{"start_line":2743,"start_character":56,"end_line":2743,"end_character":63},"in_reply_to":"3f79a3b5_5828417e","updated":"2018-12-17 07:59:29.000000000","message":"Done","commit_id":"e887fb41e31308bc9814e16ae4e22263242c763c"}]}
