)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3f46fd089f10041af87e799d9f69f7fb32023818","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6b54c777_cdd6d0e9","updated":"2022-02-17 16:41:26.000000000","message":"recheck","commit_id":"ab92fdfb2865e0f72d11dcd78bf6197e69ac3694"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0e8b0eaee58303052675730780731c7e44e850a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"09ea1114_2f309cdd","updated":"2022-02-20 15:17:41.000000000","message":"recheck","commit_id":"40e5a03626b963046d73be81c8d569a017dd9dce"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"804c1779b86a024c8c2896a64a3da56cfa35b3bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"91c77883_36daa4c4","updated":"2022-02-20 04:30:41.000000000","message":"recheck","commit_id":"40e5a03626b963046d73be81c8d569a017dd9dce"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4503c02a6239543b4f4aaf37b7b49f58adc05dae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9107eb72_98a2040e","updated":"2022-02-24 16:50:16.000000000","message":"Thanks for fixing the assisted snapshot case.","commit_id":"ab084d4d1dbaafe1568c19aef5101efebee1e373"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f39991a41cbbbb8eae345739bd36196821cd1d1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"8e188ede_14387452","updated":"2022-02-24 20:53:43.000000000","message":"recheck","commit_id":"ab084d4d1dbaafe1568c19aef5101efebee1e373"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"29b7c800542b4961fd023366c682b50d7f396517","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"a9199ce8_35fe8b4f","updated":"2022-02-25 00:56:56.000000000","message":"recheck","commit_id":"ab084d4d1dbaafe1568c19aef5101efebee1e373"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"a69b5d2be0a2322e52261e7a8ffebebe1c2a25f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"b8e38448_04eb4300","updated":"2022-02-25 12:48:16.000000000","message":"recheck","commit_id":"ab084d4d1dbaafe1568c19aef5101efebee1e373"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ba647ac247e743d63ac982b716d9301d5990dd77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ecc5d13e_286e081d","updated":"2022-02-25 15:50:03.000000000","message":"recheck","commit_id":"ab084d4d1dbaafe1568c19aef5101efebee1e373"}],"nova/api/openstack/compute/assisted_volume_snapshots.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"172f1559d4d8e9196f7955729fb39062bf871992","unresolved":true,"context_lines":[{"line_number":39,"context_line":"    def create(self, req, body):"},{"line_number":40,"context_line":"        \"\"\"Creates a new snapshot.\"\"\""},{"line_number":41,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":42,"context_line":"        context.can(avs_policies.POLICY_ROOT % \u0027create\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        snapshot \u003d body[\u0027snapshot\u0027]"},{"line_number":45,"context_line":"        create_info \u003d snapshot[\u0027create_info\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"8fc47d2b_7be39fd9","line":42,"updated":"2022-02-23 16:18:11.000000000","message":"we unscope the target because of nova/cinder interaction, right?\n\nlater: oh yeah, this isn\u0027t project-specific, gotcha.","commit_id":"87bfbc55675e277b7ac6e83e8ff6f0d5dbb49025"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"047606b5220c5bc1504c6c49a00cbc92a5afa863","unresolved":true,"context_lines":[{"line_number":39,"context_line":"    def create(self, req, body):"},{"line_number":40,"context_line":"        \"\"\"Creates a new snapshot.\"\"\""},{"line_number":41,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":42,"context_line":"        context.can(avs_policies.POLICY_ROOT % \u0027create\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        snapshot \u003d body[\u0027snapshot\u0027]"},{"line_number":45,"context_line":"        create_info \u003d snapshot[\u0027create_info\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"d3da2e15_31228554","line":42,"in_reply_to":"8fc47d2b_7be39fd9","updated":"2022-02-24 12:42:18.000000000","message":"as far as I see assisted volume snapshot also called by cinder. So I\u0027m not sure about this. So it feels similar to the external_event case where we kept the empty target to allow neutron (cinder, cyborg) to call the API from outside of the project.","commit_id":"87bfbc55675e277b7ac6e83e8ff6f0d5dbb49025"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"50592bc6c4963dd292bf16283fe8708084b5613f","unresolved":true,"context_lines":[{"line_number":39,"context_line":"    def create(self, req, body):"},{"line_number":40,"context_line":"        \"\"\"Creates a new snapshot.\"\"\""},{"line_number":41,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":42,"context_line":"        context.can(avs_policies.POLICY_ROOT % \u0027create\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        snapshot \u003d body[\u0027snapshot\u0027]"},{"line_number":45,"context_line":"        create_info \u003d snapshot[\u0027create_info\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1fa90013_29a8870d","line":42,"in_reply_to":"d3da2e15_31228554","updated":"2022-02-24 14:52:46.000000000","message":"As of now it is PROJECT_ADMIN but I missed about cinder call[1]. Thanks gibi for noticing it, I will change it to ADMIN like we did for swap volume and external event.\n\n\n[1] https://github.com/openstack/cinder/blob/01183a171776257b7aaf27220ce4113403f257bc/cinder/compute/nova.py#L188","commit_id":"87bfbc55675e277b7ac6e83e8ff6f0d5dbb49025"}],"nova/api/openstack/compute/console_auth_tokens.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"172f1559d4d8e9196f7955729fb39062bf871992","unresolved":true,"context_lines":[{"line_number":30,"context_line":"    def _show(self, req, id, rdp_only):"},{"line_number":31,"context_line":"        \"\"\"Checks a console auth token and returns the related connect info.\"\"\""},{"line_number":32,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":33,"context_line":"        context.can(cat_policies.BASE_POLICY_NAME)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        token \u003d id"},{"line_number":36,"context_line":"        if not token:"}],"source_content_type":"text/x-python","patch_set":7,"id":"04b18066_3097a2c5","line":33,"updated":"2022-02-23 16:18:11.000000000","message":"same here, not project-specific, agreed.","commit_id":"87bfbc55675e277b7ac6e83e8ff6f0d5dbb49025"}],"nova/api/openstack/compute/limits.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b4c53ca0aa20598bcb118de8e24c866beb6145a4","unresolved":true,"context_lines":[{"line_number":78,"context_line":"        project_id \u003d context.project_id"},{"line_number":79,"context_line":"        if \u0027tenant_id\u0027 in req.GET:"},{"line_number":80,"context_line":"            project_id \u003d req.GET.get(\u0027tenant_id\u0027)"},{"line_number":81,"context_line":"            context.can(limits_policies.OTHER_PROJECT_LIMIT_POLICY_NAME)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id,"},{"line_number":84,"context_line":"                                           usages\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"e6b9b71b_36b7ed9e","line":81,"updated":"2022-02-16 11:43:21.000000000","message":"This is not in line with the commit message as it does not make the check project specific it actually removes the project from the check. Or I misunderstood something.","commit_id":"6fc3571942ff53e0c72a40e5b31288014a505cec"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1fbb4074df369e7c88304c6e7f135620cf64b301","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        project_id \u003d context.project_id"},{"line_number":79,"context_line":"        if \u0027tenant_id\u0027 in req.GET:"},{"line_number":80,"context_line":"            project_id \u003d req.GET.get(\u0027tenant_id\u0027)"},{"line_number":81,"context_line":"            context.can(limits_policies.OTHER_PROJECT_LIMIT_POLICY_NAME)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id,"},{"line_number":84,"context_line":"                                           usages\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1d0b1524_f4eb48cb","line":81,"in_reply_to":"012534c4_64079757","updated":"2022-02-17 12:20:54.000000000","message":"thanks for the explanation","commit_id":"6fc3571942ff53e0c72a40e5b31288014a505cec"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3f46fd089f10041af87e799d9f69f7fb32023818","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        project_id \u003d context.project_id"},{"line_number":79,"context_line":"        if \u0027tenant_id\u0027 in req.GET:"},{"line_number":80,"context_line":"            project_id \u003d req.GET.get(\u0027tenant_id\u0027)"},{"line_number":81,"context_line":"            context.can(limits_policies.OTHER_PROJECT_LIMIT_POLICY_NAME)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id,"},{"line_number":84,"context_line":"                                           usages\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"c2f9386e_2d55883b","line":81,"in_reply_to":"1d0b1524_f4eb48cb","updated":"2022-02-17 16:41:26.000000000","message":"added explanation in commit msg too.","commit_id":"6fc3571942ff53e0c72a40e5b31288014a505cec"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ddfb4b28dc294eb39d4bec9e7153b05d20ab395e","unresolved":true,"context_lines":[{"line_number":78,"context_line":"        project_id \u003d context.project_id"},{"line_number":79,"context_line":"        if \u0027tenant_id\u0027 in req.GET:"},{"line_number":80,"context_line":"            project_id \u003d req.GET.get(\u0027tenant_id\u0027)"},{"line_number":81,"context_line":"            context.can(limits_policies.OTHER_PROJECT_LIMIT_POLICY_NAME)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id,"},{"line_number":84,"context_line":"                                           usages\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"012534c4_64079757","line":81,"in_reply_to":"e6b9b71b_36b7ed9e","updated":"2022-02-17 04:46:48.000000000","message":"so this is to list the other project limit. we are making it to any admin in project can list the other project limit (same way as listing other project servers) and to do that we need to remove passing the project_id. If we do not then project_id in policy target can be requested project id(L80) and will be different from context\u0027project_id so policy will fail.\n\nNOTE: this is also open item for us in new RBAC. as of now we are allowing any project admin can list other project resource (same as legacy policy allowed so kind of no change). and later we will introduce some domain_admin or so for listing other project resources.","commit_id":"6fc3571942ff53e0c72a40e5b31288014a505cec"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"172f1559d4d8e9196f7955729fb39062bf871992","unresolved":true,"context_lines":[{"line_number":78,"context_line":"        project_id \u003d context.project_id"},{"line_number":79,"context_line":"        if \u0027tenant_id\u0027 in req.GET:"},{"line_number":80,"context_line":"            project_id \u003d req.GET.get(\u0027tenant_id\u0027)"},{"line_number":81,"context_line":"            context.can(limits_policies.OTHER_PROJECT_LIMIT_POLICY_NAME)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        quotas \u003d QUOTAS.get_project_quotas(context, project_id,"},{"line_number":84,"context_line":"                                           usages\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"cfaececb_24b016a9","line":81,"updated":"2022-02-23 16:18:11.000000000","message":"as said in the docstring, this is for global limits, hence not project-specific.","commit_id":"87bfbc55675e277b7ac6e83e8ff6f0d5dbb49025"}],"nova/api/openstack/compute/migrations.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"172f1559d4d8e9196f7955729fb39062bf871992","unresolved":true,"context_lines":[{"line_number":89,"context_line":"               sort_dirs\u003dNone, sort_keys\u003dNone, limit\u003dNone, marker\u003dNone,"},{"line_number":90,"context_line":"               allow_changes_since\u003dFalse, allow_changes_before\u003dFalse):"},{"line_number":91,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":92,"context_line":"        context.can(migrations_policies.POLICY_ROOT % \u0027index\u0027)"},{"line_number":93,"context_line":"        search_opts \u003d {}"},{"line_number":94,"context_line":"        search_opts.update(req.GET)"},{"line_number":95,"context_line":"        if \u0027changes-since\u0027 in search_opts:"}],"source_content_type":"text/x-python","patch_set":7,"id":"af933536_a6f90469","line":92,"updated":"2022-02-23 16:18:11.000000000","message":"I guess this is needed for getting all migrations, not tied to a specific project.","commit_id":"87bfbc55675e277b7ac6e83e8ff6f0d5dbb49025"}],"nova/api/openstack/compute/server_external_events.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"172f1559d4d8e9196f7955729fb39062bf871992","unresolved":true,"context_lines":[{"line_number":77,"context_line":"        # is called by neutron which does not have correct project_id where"},{"line_number":78,"context_line":"        # server belongs to. By passing the empty target, we make sure that"},{"line_number":79,"context_line":"        # we do not check the requester project_id and allow users with"},{"line_number":80,"context_line":"        # allowed role to create external event."},{"line_number":81,"context_line":"        context.can(see_policies.POLICY_ROOT % \u0027create\u0027, target\u003d{})"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        response_events \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"31f7eb46_7853ecf1","line":80,"updated":"2022-02-23 16:18:11.000000000","message":"thanks for explaining","commit_id":"87bfbc55675e277b7ac6e83e8ff6f0d5dbb49025"}],"nova/policies/server_external_events.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9f1302474f67e4e9a4a9d1033609597b6b14502f","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":26,"context_line":"        name\u003dPOLICY_ROOT % \u0027create\u0027,"},{"line_number":27,"context_line":"        # TODO(gmann): This is internal API policy and supposed to be called"},{"line_number":28,"context_line":"        # only by neutron. Add \u0027service\u0027 role in this policy so that neutron"},{"line_number":29,"context_line":"        # can call it with user having \u0027service\u0027 role (not having server\u0027s"},{"line_number":30,"context_line":"        # project_id). That is for phase-2 of RBAC goal and until then,"},{"line_number":31,"context_line":"        # we keep it open for all admin in any project. We cannot default it to"}],"source_content_type":"text/x-python","patch_set":6,"id":"810ef0c5_41edb448","line":28,"range":{"start_line":28,"start_character":10,"end_line":28,"end_character":25},"updated":"2022-02-21 11:06:06.000000000","message":"neutron, cinder, ironic, cyborg\n\nhttps://github.com/openstack/nova/blob/0c31561792e0e13a9f8267e71fa484ab79957f04/nova/objects/external_event.py#L18-L36","commit_id":"40e5a03626b963046d73be81c8d569a017dd9dce"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1a1b59f087afbeae8bdb81671a78726006d319af","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":26,"context_line":"        name\u003dPOLICY_ROOT % \u0027create\u0027,"},{"line_number":27,"context_line":"        # TODO(gmann): This is internal API policy and supposed to be called"},{"line_number":28,"context_line":"        # only by neutron. Add \u0027service\u0027 role in this policy so that neutron"},{"line_number":29,"context_line":"        # can call it with user having \u0027service\u0027 role (not having server\u0027s"},{"line_number":30,"context_line":"        # project_id). That is for phase-2 of RBAC goal and until then,"},{"line_number":31,"context_line":"        # we keep it open for all admin in any project. We cannot default it to"}],"source_content_type":"text/x-python","patch_set":6,"id":"a29b5f88_a0e8586b","line":28,"range":{"start_line":28,"start_character":10,"end_line":28,"end_character":25},"in_reply_to":"64040466_6763c3ec","updated":"2022-02-22 09:28:58.000000000","message":"Ack","commit_id":"40e5a03626b963046d73be81c8d569a017dd9dce"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"db51a28960109cfae977ccdf8ecc800a35b6576f","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":26,"context_line":"        name\u003dPOLICY_ROOT % \u0027create\u0027,"},{"line_number":27,"context_line":"        # TODO(gmann): This is internal API policy and supposed to be called"},{"line_number":28,"context_line":"        # only by neutron. Add \u0027service\u0027 role in this policy so that neutron"},{"line_number":29,"context_line":"        # can call it with user having \u0027service\u0027 role (not having server\u0027s"},{"line_number":30,"context_line":"        # project_id). That is for phase-2 of RBAC goal and until then,"},{"line_number":31,"context_line":"        # we keep it open for all admin in any project. We cannot default it to"}],"source_content_type":"text/x-python","patch_set":6,"id":"64040466_6763c3ec","line":28,"range":{"start_line":28,"start_character":10,"end_line":28,"end_character":25},"in_reply_to":"810ef0c5_41edb448","updated":"2022-02-21 16:50:54.000000000","message":"i missed them, done.","commit_id":"40e5a03626b963046d73be81c8d569a017dd9dce"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"172f1559d4d8e9196f7955729fb39062bf871992","unresolved":true,"context_lines":[{"line_number":32,"context_line":"        # then, we keep it open for all admin in any project. We cannot"},{"line_number":33,"context_line":"        # default it to PROJECT_ADMIN which has the project_id in"},{"line_number":34,"context_line":"        # check_str and will fail if neutron call it with other project_id."},{"line_number":35,"context_line":"        check_str\u003dbase.ADMIN,"},{"line_number":36,"context_line":"        description\u003d\"Create one or more external events\","},{"line_number":37,"context_line":"        operations\u003d["},{"line_number":38,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":7,"id":"465e4a81_dbaa91b0","line":35,"updated":"2022-02-23 16:18:11.000000000","message":"OK, I understand this pattern, you already did it before.","commit_id":"87bfbc55675e277b7ac6e83e8ff6f0d5dbb49025"}],"nova/tests/unit/policies/test_assisted_volume_snapshots.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"172f1559d4d8e9196f7955729fb39062bf871992","unresolved":true,"context_lines":[{"line_number":34,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027\u0027)"},{"line_number":35,"context_line":"        # By default, legacy rule are enable and scope check is disabled."},{"line_number":36,"context_line":"        # system admin, legacy admin, and project admin is able to"},{"line_number":37,"context_line":"        # take volume snapshot."},{"line_number":38,"context_line":"        self.project_admin_authorized_contexts \u003d ["},{"line_number":39,"context_line":"            self.legacy_admin_context, self.system_admin_context,"},{"line_number":40,"context_line":"            self.project_admin_context]"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f6a33ba_d3be9b3d","line":37,"updated":"2022-02-23 16:18:11.000000000","message":"++","commit_id":"87bfbc55675e277b7ac6e83e8ff6f0d5dbb49025"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"172f1559d4d8e9196f7955729fb39062bf871992","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        self.flags(enforce_scope\u003dTrue, group\u003d\"oslo_policy\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # With scope check enabled, system admin is not able to"},{"line_number":91,"context_line":"        # take volume snapshot."},{"line_number":92,"context_line":"        self.project_admin_authorized_contexts \u003d ["},{"line_number":93,"context_line":"            self.legacy_admin_context, self.project_admin_context]"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa0c21c7_f15294ad","line":91,"updated":"2022-02-23 16:18:11.000000000","message":"yup, understood","commit_id":"87bfbc55675e277b7ac6e83e8ff6f0d5dbb49025"}],"nova/tests/unit/policies/test_console_auth_tokens.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"172f1559d4d8e9196f7955729fb39062bf871992","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        super(ConsoleAuthTokensScopeTypePolicyTest, self).setUp()"},{"line_number":72,"context_line":"        self.flags(enforce_scope\u003dTrue, group\u003d\"oslo_policy\")"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        # With scope enabled, system admin is not allowed."},{"line_number":75,"context_line":"        self.project_admin_authorized_contexts \u003d ["},{"line_number":76,"context_line":"            self.legacy_admin_context, self.project_admin_context]"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a568dd9_1ceb7226","line":74,"updated":"2022-02-23 16:18:11.000000000","message":"++","commit_id":"87bfbc55675e277b7ac6e83e8ff6f0d5dbb49025"}]}
