)]}'
{"nova/api/openstack/compute/flavors_extraspecs.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5c53e2bdcd2f1b78902d06585f4734c67b947ba2","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        \"\"\"Returns the list of extra specs for a given flavor.\"\"\""},{"line_number":62,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":63,"context_line":"        context.can(fes_policies.POLICY_ROOT % \u0027index\u0027,"},{"line_number":64,"context_line":"                    target\u003d{\u0027project_id\u0027: context.project_id})"},{"line_number":65,"context_line":"        return self._get_extra_specs(context, flavor_id)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    # NOTE(gmann): Here should be 201 instead of 200 by v2.1"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_8051dadb","line":64,"updated":"2020-04-14 08:35:06.000000000","message":"I think using the anyone rule is better here. In theory we have a but here, we should really check for is flavour public or owned by this given project id","commit_id":"20e1143a016f787614acc37df8202edb41483894"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3f8e82d1d9ee562fbf7c65413e2fb88cf1f3d36b","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        \"\"\"Returns the list of extra specs for a given flavor.\"\"\""},{"line_number":62,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":63,"context_line":"        context.can(fes_policies.POLICY_ROOT % \u0027index\u0027,"},{"line_number":64,"context_line":"                    target\u003d{\u0027project_id\u0027: context.project_id})"},{"line_number":65,"context_line":"        return self._get_extra_specs(context, flavor_id)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    # NOTE(gmann): Here should be 201 instead of 200 by v2.1"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_ad7dd4b2","line":64,"in_reply_to":"3f4c43b2_55aae0d3","updated":"2020-04-15 08:50:06.000000000","message":"Agreed this will work, it just feels odd. will not blcok on it.","commit_id":"20e1143a016f787614acc37df8202edb41483894"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"50eeecf4793e7237c8457e44e071f803f11709b4","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        \"\"\"Returns the list of extra specs for a given flavor.\"\"\""},{"line_number":62,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":63,"context_line":"        context.can(fes_policies.POLICY_ROOT % \u0027index\u0027,"},{"line_number":64,"context_line":"                    target\u003d{\u0027project_id\u0027: context.project_id})"},{"line_number":65,"context_line":"        return self._get_extra_specs(context, flavor_id)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    # NOTE(gmann): Here should be 201 instead of 200 by v2.1"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_e0bb7ee2","line":64,"in_reply_to":"3f4c43b2_8051dadb","updated":"2020-04-14 08:39:10.000000000","message":"I think it should be the same as listing flavors here, I forget what we decided there, don’t think it was this.","commit_id":"20e1143a016f787614acc37df8202edb41483894"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"dd84309ef8576e64e0df7da2e7a836be0263aab3","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        \"\"\"Returns the list of extra specs for a given flavor.\"\"\""},{"line_number":62,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":63,"context_line":"        context.can(fes_policies.POLICY_ROOT % \u0027index\u0027,"},{"line_number":64,"context_line":"                    target\u003d{\u0027project_id\u0027: context.project_id})"},{"line_number":65,"context_line":"        return self._get_extra_specs(context, flavor_id)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    # NOTE(gmann): Here should be 201 instead of 200 by v2.1"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_55aae0d3","line":64,"in_reply_to":"3f4c43b2_e0bb7ee2","updated":"2020-04-14 18:17:22.000000000","message":"we decided that 404 is fine for that[1] which will be from get_flavor is anyone not access to that flavor try to get extra specs.\n\nI am passing project_id as it is default to PROJECT_READER_OR_SYSTEM_READER [2] means anyone has access can get extra spec for flavor they have access for.\n\n\n[1] https://review.opendev.org/#/c/713697/3/nova/policies/flavor_access.py@68\n\n[2] https://review.opendev.org/#/c/719381/4/nova/policies/flavor_extra_specs.py@78","commit_id":"20e1143a016f787614acc37df8202edb41483894"}]}
