)]}'
{"nova/api/openstack/compute/limits.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3154bf0dcff67fd2202a3646e90942c7187b0917","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            target \u003d {"},{"line_number":82,"context_line":"                \u0027project_id\u0027: project_id,"},{"line_number":83,"context_line":"                \u0027user_id\u0027: context.user_id"},{"line_number":84,"context_line":"                }"},{"line_number":85,"context_line":"            context.can(limits_policies.USED_LIMIT_POLICY_NAME, target)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_36852d5b","line":84,"range":{"start_line":84,"start_character":12,"end_line":84,"end_character":16},"updated":"2020-03-31 10:48:34.000000000","message":"nit: drop","commit_id":"5cc71596d1a703f3fd0907588cb63042177ef4fe"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"593ce6d7876e3fd370748f33287bfd7e3714ce85","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            target \u003d {"},{"line_number":82,"context_line":"                \u0027project_id\u0027: project_id,"},{"line_number":83,"context_line":"                \u0027user_id\u0027: context.user_id"},{"line_number":84,"context_line":"                }"},{"line_number":85,"context_line":"            context.can(limits_policies.USED_LIMIT_POLICY_NAME, target)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_0b2253b9","line":84,"range":{"start_line":84,"start_character":12,"end_line":84,"end_character":16},"in_reply_to":"df33271e_36852d5b","updated":"2020-04-01 19:45:08.000000000","message":"Done","commit_id":"5cc71596d1a703f3fd0907588cb63042177ef4fe"}],"nova/api/openstack/compute/views/limits.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"464a28b1684ed3282069ef88ec0e2580b9f379f1","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        return used_limits"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def _check_requested_project_scope(self, request):"},{"line_number":99,"context_line":"        if \u0027tenant_id\u0027 in request.GET:"},{"line_number":100,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":101,"context_line":"            tenant_id \u003d request.GET.get(\u0027tenant_id\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_9c11bd60","side":"PARENT","line":98,"updated":"2020-03-31 09:11:39.000000000","message":"oh my, thank you for moving this.","commit_id":"4d37ffc111ae8bb43bd33fe995bc3686b065131b"}],"nova/policies/limits.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"464a28b1684ed3282069ef88ec0e2580b9f379f1","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":27,"context_line":"        BASE_POLICY_NAME,"},{"line_number":28,"context_line":"        base.RULE_ANY,"},{"line_number":29,"context_line":"        \"Show rate and absolute limits for the project\","},{"line_number":30,"context_line":"        ["},{"line_number":31,"context_line":"            {"},{"line_number":32,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_fc28c997","line":29,"range":{"start_line":29,"start_character":43,"end_line":29,"end_character":54},"updated":"2020-03-31 09:11:39.000000000","message":"For the \"current users project\"?","commit_id":"5cc71596d1a703f3fd0907588cb63042177ef4fe"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"593ce6d7876e3fd370748f33287bfd7e3714ce85","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":27,"context_line":"        BASE_POLICY_NAME,"},{"line_number":28,"context_line":"        base.RULE_ANY,"},{"line_number":29,"context_line":"        \"Show rate and absolute limits for the project\","},{"line_number":30,"context_line":"        ["},{"line_number":31,"context_line":"            {"},{"line_number":32,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_6baaff18","line":29,"range":{"start_line":29,"start_character":43,"end_line":29,"end_character":54},"in_reply_to":"df33271e_fc28c997","updated":"2020-04-01 19:45:08.000000000","message":"sorry, for got to update this. done","commit_id":"5cc71596d1a703f3fd0907588cb63042177ef4fe"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"030f675cd3b7ff4878167f4cf819a86fb63b9fb5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                \u0027path\u0027: \u0027/limits\u0027"},{"line_number":34,"context_line":"            }"},{"line_number":35,"context_line":"        ]),"},{"line_number":36,"context_line":"    # TODO(aunnam): Remove this rule after we separate the scope check from"},{"line_number":37,"context_line":"    # policies, as this is only checking the scope."},{"line_number":38,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":39,"context_line":"        USED_LIMIT_POLICY_NAME,"},{"line_number":40,"context_line":"        base.RULE_ADMIN_API,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_1c05ad14","line":37,"range":{"start_line":36,"start_character":4,"end_line":37,"end_character":51},"updated":"2020-03-31 09:12:06.000000000","message":"I think this TODO is no longer valid?","commit_id":"5cc71596d1a703f3fd0907588cb63042177ef4fe"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"593ce6d7876e3fd370748f33287bfd7e3714ce85","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                \u0027path\u0027: \u0027/limits\u0027"},{"line_number":34,"context_line":"            }"},{"line_number":35,"context_line":"        ]),"},{"line_number":36,"context_line":"    # TODO(aunnam): Remove this rule after we separate the scope check from"},{"line_number":37,"context_line":"    # policies, as this is only checking the scope."},{"line_number":38,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":39,"context_line":"        USED_LIMIT_POLICY_NAME,"},{"line_number":40,"context_line":"        base.RULE_ADMIN_API,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_cb47cb76","line":37,"range":{"start_line":36,"start_character":4,"end_line":37,"end_character":51},"in_reply_to":"df33271e_1c05ad14","updated":"2020-04-01 19:45:08.000000000","message":"yeah, removing. I remember removing this or just discussion or may be just in dream. policy things are main topic in my dream now a days :)","commit_id":"5cc71596d1a703f3fd0907588cb63042177ef4fe"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"464a28b1684ed3282069ef88ec0e2580b9f379f1","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                \u0027path\u0027: \u0027/limits\u0027"},{"line_number":34,"context_line":"            }"},{"line_number":35,"context_line":"        ]),"},{"line_number":36,"context_line":"    # TODO(aunnam): Remove this rule after we separate the scope check from"},{"line_number":37,"context_line":"    # policies, as this is only checking the scope."},{"line_number":38,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":39,"context_line":"        USED_LIMIT_POLICY_NAME,"},{"line_number":40,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":41,"context_line":"        \"\"\"Show rate and absolute limits for the project."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"This policy only checks if the user has access to the requested"},{"line_number":44,"context_line":"project limits. And this check is performed only after the check"},{"line_number":45,"context_line":"os_compute_api:limits passes\"\"\","},{"line_number":46,"context_line":"        ["},{"line_number":47,"context_line":"            {"},{"line_number":48,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":49,"context_line":"                \u0027path\u0027: \u0027/limits\u0027"},{"line_number":50,"context_line":"            }"},{"line_number":51,"context_line":"        ]),"},{"line_number":52,"context_line":"]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_bc22c1b7","line":51,"range":{"start_line":36,"start_character":3,"end_line":51,"end_character":11},"updated":"2020-03-31 09:11:39.000000000","message":"Should we update this... say something like checks if user is allowed to specify the tenant_id parameter?","commit_id":"5cc71596d1a703f3fd0907588cb63042177ef4fe"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"593ce6d7876e3fd370748f33287bfd7e3714ce85","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                \u0027path\u0027: \u0027/limits\u0027"},{"line_number":34,"context_line":"            }"},{"line_number":35,"context_line":"        ]),"},{"line_number":36,"context_line":"    # TODO(aunnam): Remove this rule after we separate the scope check from"},{"line_number":37,"context_line":"    # policies, as this is only checking the scope."},{"line_number":38,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":39,"context_line":"        USED_LIMIT_POLICY_NAME,"},{"line_number":40,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":41,"context_line":"        \"\"\"Show rate and absolute limits for the project."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"This policy only checks if the user has access to the requested"},{"line_number":44,"context_line":"project limits. And this check is performed only after the check"},{"line_number":45,"context_line":"os_compute_api:limits passes\"\"\","},{"line_number":46,"context_line":"        ["},{"line_number":47,"context_line":"            {"},{"line_number":48,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":49,"context_line":"                \u0027path\u0027: \u0027/limits\u0027"},{"line_number":50,"context_line":"            }"},{"line_number":51,"context_line":"        ]),"},{"line_number":52,"context_line":"]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_6b583f55","line":51,"range":{"start_line":36,"start_character":3,"end_line":51,"end_character":11},"in_reply_to":"df33271e_bc22c1b7","updated":"2020-04-01 19:45:08.000000000","message":"+1. done","commit_id":"5cc71596d1a703f3fd0907588cb63042177ef4fe"}]}
