)]}'
{"nova/policies/instance_actions.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"55e3711574f082383877a371f2a6ab30e49aaae8","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            }"},{"line_number":55,"context_line":"        ],"},{"line_number":56,"context_line":"        scope_types\u003d[\u0027system\u0027],"},{"line_number":57,"context_line":"        deprecated_rule\u003dDEPRECATED_INSTANCE_ACTION_EVENT_POLICY,"},{"line_number":58,"context_line":"        deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":59,"context_line":"        deprecated_since\u003d\u002721.0.0\u0027),"},{"line_number":60,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":61,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"},{"line_number":63,"context_line":"        description\u003d\"\"\"List actions and show action details for a server.\"\"\","}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_a0e4eea7","line":60,"range":{"start_line":57,"start_character":0,"end_line":60,"end_character":33},"updated":"2020-02-13 18:16:06.000000000","message":"you do not need to deprecate this as done in base class.","commit_id":"20fd7a692f36b9994e13a40583a31cb397d50817"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"55e3711574f082383877a371f2a6ab30e49aaae8","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        deprecated_since\u003d\u002721.0.0\u0027),"},{"line_number":60,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":61,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"},{"line_number":63,"context_line":"        description\u003d\"\"\"List actions and show action details for a server.\"\"\","},{"line_number":64,"context_line":"        operations\u003d["},{"line_number":65,"context_line":"            {"},{"line_number":66,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":67,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions\u0027"},{"line_number":68,"context_line":"            },"},{"line_number":69,"context_line":"            {"},{"line_number":70,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":71,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":72,"context_line":"            }"},{"line_number":73,"context_line":"        ],"},{"line_number":74,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":75,"context_line":"        deprecated_rule\u003dDEPRECATED_INSTANCE_ACTION_POLICY,"},{"line_number":76,"context_line":"        deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":77,"context_line":"        deprecated_since\u003d\u002721.0.0\u0027),"},{"line_number":78,"context_line":"]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_e093c6fd","line":77,"range":{"start_line":62,"start_character":0,"end_line":77,"end_character":35},"updated":"2020-02-13 18:16:06.000000000","message":"we need to add granularity here to introduce new defaults.","commit_id":"20fd7a692f36b9994e13a40583a31cb397d50817"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ee1d58a568e72de37de840892eb90b9451c6439a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            }"},{"line_number":55,"context_line":"        ],"},{"line_number":56,"context_line":"        scope_types\u003d[\u0027system\u0027],"},{"line_number":57,"context_line":"        deprecated_rule\u003dDEPRECATED_INSTANCE_ACTION_EVENT_POLICY,"},{"line_number":58,"context_line":"        deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":59,"context_line":"        deprecated_since\u003d\u002721.0.0\u0027),"},{"line_number":60,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":61,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1fa4df85_6449485e","line":59,"range":{"start_line":57,"start_character":0,"end_line":59,"end_character":35},"updated":"2020-03-06 10:15:04.000000000","message":"I don\u0027t think you want this, and its going to break the tests I think.\n\nThis policy hasn\u0027t changed its name.","commit_id":"1864792a1b3f1cf9b702e9f80d67f4e914917def"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"4132441039088940a77b7ed5759fe2e329d1589c","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            }"},{"line_number":55,"context_line":"        ],"},{"line_number":56,"context_line":"        scope_types\u003d[\u0027system\u0027],"},{"line_number":57,"context_line":"        deprecated_rule\u003dDEPRECATED_INSTANCE_ACTION_EVENT_POLICY,"},{"line_number":58,"context_line":"        deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":59,"context_line":"        deprecated_since\u003d\u002721.0.0\u0027),"},{"line_number":60,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":61,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1fa4df85_2a3477fb","line":59,"range":{"start_line":57,"start_character":0,"end_line":59,"end_character":35},"in_reply_to":"1fa4df85_2f4fa993","updated":"2020-03-06 12:59:28.000000000","message":"Yes, mee too, I think not only here causeed the failed, but ...","commit_id":"1864792a1b3f1cf9b702e9f80d67f4e914917def"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"77c81b9e1ceb4fc44e1cfb582c752cd20459e65e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            }"},{"line_number":55,"context_line":"        ],"},{"line_number":56,"context_line":"        scope_types\u003d[\u0027system\u0027],"},{"line_number":57,"context_line":"        deprecated_rule\u003dDEPRECATED_INSTANCE_ACTION_EVENT_POLICY,"},{"line_number":58,"context_line":"        deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":59,"context_line":"        deprecated_since\u003d\u002721.0.0\u0027),"},{"line_number":60,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":61,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1fa4df85_64b7083c","line":59,"range":{"start_line":57,"start_character":0,"end_line":59,"end_character":35},"in_reply_to":"1fa4df85_6449485e","updated":"2020-03-06 10:16:14.000000000","message":"For context, I think this means the admin only API will now be accessible to everyone, I could be wrong.","commit_id":"1864792a1b3f1cf9b702e9f80d67f4e914917def"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2f9f945f446e6254fb72b694ebedfeddcf351882","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            }"},{"line_number":55,"context_line":"        ],"},{"line_number":56,"context_line":"        scope_types\u003d[\u0027system\u0027],"},{"line_number":57,"context_line":"        deprecated_rule\u003dDEPRECATED_INSTANCE_ACTION_EVENT_POLICY,"},{"line_number":58,"context_line":"        deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":59,"context_line":"        deprecated_since\u003d\u002721.0.0\u0027),"},{"line_number":60,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":61,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1fa4df85_2f4fa993","line":59,"range":{"start_line":57,"start_character":0,"end_line":59,"end_character":35},"in_reply_to":"1fa4df85_64b7083c","updated":"2020-03-06 11:57:17.000000000","message":"I manually rolled back this change and the functional test still fails.  :/","commit_id":"1864792a1b3f1cf9b702e9f80d67f4e914917def"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ee1d58a568e72de37de840892eb90b9451c6439a","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":75,"context_line":"        deprecated_rule\u003dDEPRECATED_INSTANCE_ACTION_POLICY,"},{"line_number":76,"context_line":"        deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":77,"context_line":"        deprecated_since\u003d\u002721.0.0\u0027),"},{"line_number":78,"context_line":"]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1fa4df85_447c4c82","line":77,"updated":"2020-03-06 10:15:04.000000000","message":"I think this bit looks good.","commit_id":"1864792a1b3f1cf9b702e9f80d67f4e914917def"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ea41dd6bc06f4e6cda22ce663bcae2f5baeab005","unresolved":false,"context_lines":[{"line_number":26,"context_line":")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"DEPRECATED_INSTANCE_ACTION_EVENT_POLICY \u003d policy.DeprecatedRule("},{"line_number":29,"context_line":"    \u0027os_compute_api:os-instance-actions\u0027,"},{"line_number":30,"context_line":"    base.RULE_ADMIN_API,"},{"line_number":31,"context_line":")"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_1840ec06","line":29,"range":{"start_line":29,"start_character":5,"end_line":29,"end_character":41},"updated":"2020-03-06 17:53:10.000000000","message":"this is wrong rule name. you should use POLICY_ROOT % \u0027events\u0027","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b2911c0646c0389ab324a375379892c070209b70","unresolved":false,"context_lines":[{"line_number":26,"context_line":")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"DEPRECATED_INSTANCE_ACTION_EVENT_POLICY \u003d policy.DeprecatedRule("},{"line_number":29,"context_line":"    \u0027os_compute_api:os-instance-actions\u0027,"},{"line_number":30,"context_line":"    base.RULE_ADMIN_API,"},{"line_number":31,"context_line":")"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_b320d69c","line":29,"range":{"start_line":29,"start_character":5,"end_line":29,"end_character":41},"in_reply_to":"1fa4df85_1840ec06","updated":"2020-03-06 23:20:46.000000000","message":"Done","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ea41dd6bc06f4e6cda22ce663bcae2f5baeab005","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-instance-actions:%s\u0027"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"DEPRECATED_INSTANCE_ACTION_POLICY \u003d policy.DeprecatedRule("},{"line_number":24,"context_line":"    \u0027os_compute_api:os-instance-actions\u0027,"},{"line_number":25,"context_line":"    base.RULE_ADMIN_OR_OWNER,"},{"line_number":26,"context_line":")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"DEPRECATED_INSTANCE_ACTION_EVENT_POLICY \u003d policy.DeprecatedRule("},{"line_number":29,"context_line":"    \u0027os_compute_api:os-instance-actions\u0027,"},{"line_number":30,"context_line":"    base.RULE_ADMIN_API,"},{"line_number":31,"context_line":")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"DEPRECATED_REASON \u003d \"\"\""},{"line_number":34,"context_line":"Nova API policies are introducing new default roles with scope_type"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_84623fd7","line":31,"range":{"start_line":23,"start_character":0,"end_line":31,"end_character":1},"updated":"2020-03-06 17:53:10.000000000","message":"this seems interesting but i do not think oslo policy will maintain the two different check_str for same rule. later one will be overriding it","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b2911c0646c0389ab324a375379892c070209b70","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-instance-actions:%s\u0027"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"DEPRECATED_INSTANCE_ACTION_POLICY \u003d policy.DeprecatedRule("},{"line_number":24,"context_line":"    \u0027os_compute_api:os-instance-actions\u0027,"},{"line_number":25,"context_line":"    base.RULE_ADMIN_OR_OWNER,"},{"line_number":26,"context_line":")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"DEPRECATED_INSTANCE_ACTION_EVENT_POLICY \u003d policy.DeprecatedRule("},{"line_number":29,"context_line":"    \u0027os_compute_api:os-instance-actions\u0027,"},{"line_number":30,"context_line":"    base.RULE_ADMIN_API,"},{"line_number":31,"context_line":")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"DEPRECATED_REASON \u003d \"\"\""},{"line_number":34,"context_line":"Nova API policies are introducing new default roles with scope_type"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_d358f231","line":31,"range":{"start_line":23,"start_character":0,"end_line":31,"end_character":1},"in_reply_to":"1fa4df85_84623fd7","updated":"2020-03-06 23:20:46.000000000","message":"\u003e later one will be overriding it.\n\nGot it, that\u0027s why the functional-py36 always failed, I ignored the ROOT_POLICY suffix (\u0027events\u0027), so the same check_str appeared.","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ea41dd6bc06f4e6cda22ce663bcae2f5baeab005","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        deprecated_since\u003d\u002721.0.0\u0027),"},{"line_number":60,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":61,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"},{"line_number":63,"context_line":"        description\u003d\"\"\"List actions and show action details for a server.\"\"\","},{"line_number":64,"context_line":"        operations\u003d["},{"line_number":65,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_58d50443","line":62,"range":{"start_line":62,"start_character":23,"end_line":62,"end_character":54},"updated":"2020-03-06 17:53:10.000000000","message":"this does not support deprecation yet. i added the deprecation in this in https://review.opendev.org/#/c/706672/\n\nYou can rebase on top of that.","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b2911c0646c0389ab324a375379892c070209b70","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        deprecated_since\u003d\u002721.0.0\u0027),"},{"line_number":60,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":61,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"},{"line_number":63,"context_line":"        description\u003d\"\"\"List actions and show action details for a server.\"\"\","},{"line_number":64,"context_line":"        operations\u003d["},{"line_number":65,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_933efab5","line":62,"range":{"start_line":62,"start_character":23,"end_line":62,"end_character":54},"in_reply_to":"1fa4df85_58d50443","updated":"2020-03-06 23:20:46.000000000","message":"Done","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ea41dd6bc06f4e6cda22ce663bcae2f5baeab005","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"},{"line_number":63,"context_line":"        description\u003d\"\"\"List actions and show action details for a server.\"\"\","},{"line_number":64,"context_line":"        operations\u003d["},{"line_number":65,"context_line":"            {"},{"line_number":66,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":67,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions\u0027"},{"line_number":68,"context_line":"            },"},{"line_number":69,"context_line":"            {"},{"line_number":70,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":71,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":72,"context_line":"            }"},{"line_number":73,"context_line":"        ],"},{"line_number":74,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":75,"context_line":"        deprecated_rule\u003dDEPRECATED_INSTANCE_ACTION_POLICY,"},{"line_number":76,"context_line":"        deprecated_reason\u003dDEPRECATED_REASON,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_64538318","line":73,"range":{"start_line":64,"start_character":0,"end_line":73,"end_character":10},"updated":"2020-03-06 17:53:10.000000000","message":"we can add granularity here though both are GET policy but in case user want to restrict the action detail from some user having list access.","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b2911c0646c0389ab324a375379892c070209b70","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"},{"line_number":63,"context_line":"        description\u003d\"\"\"List actions and show action details for a server.\"\"\","},{"line_number":64,"context_line":"        operations\u003d["},{"line_number":65,"context_line":"            {"},{"line_number":66,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":67,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions\u0027"},{"line_number":68,"context_line":"            },"},{"line_number":69,"context_line":"            {"},{"line_number":70,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":71,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":72,"context_line":"            }"},{"line_number":73,"context_line":"        ],"},{"line_number":74,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":75,"context_line":"        deprecated_rule\u003dDEPRECATED_INSTANCE_ACTION_POLICY,"},{"line_number":76,"context_line":"        deprecated_reason\u003dDEPRECATED_REASON,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_d3a6b20f","line":73,"range":{"start_line":64,"start_character":0,"end_line":73,"end_character":10},"in_reply_to":"1fa4df85_64538318","updated":"2020-03-06 23:20:46.000000000","message":"Good idea, indeed, we should have both GET policy for the different API, that we can restrict the output list if some user want to get different result.\n\nI will separate this by follow up.","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"35d648bd1afb45b182beb8daea24dc82b1b8a847","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    base.RULE_ADMIN_OR_OWNER,"},{"line_number":27,"context_line":")"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"DEPRECATED_INSTANCE_ACTION_EVENT_POLICY \u003d policy.DeprecatedRule("},{"line_number":30,"context_line":"    BASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":31,"context_line":"    base.RULE_ADMIN_API,"},{"line_number":32,"context_line":")"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"DEPRECATED_REASON \u003d \"\"\""},{"line_number":35,"context_line":"Nova API policies are introducing new default roles with scope_type"}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_e2af2329","line":32,"range":{"start_line":29,"start_character":0,"end_line":32,"end_character":1},"updated":"2020-03-11 16:16:22.000000000","message":"you do not need to deprecate this. base rule handle the deprecation where the only check_str are replaced with new base rules.","commit_id":"acefaaed9d84a50e4ff5352406ac3f623b509bdf"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"aae9da3fac33a84c70f9ba4e3b222fe7cafaad69","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    base.RULE_ADMIN_OR_OWNER,"},{"line_number":27,"context_line":")"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"DEPRECATED_INSTANCE_ACTION_EVENT_POLICY \u003d policy.DeprecatedRule("},{"line_number":30,"context_line":"    BASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":31,"context_line":"    base.RULE_ADMIN_API,"},{"line_number":32,"context_line":")"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"DEPRECATED_REASON \u003d \"\"\""},{"line_number":35,"context_line":"Nova API policies are introducing new default roles with scope_type"}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_0975bbcc","line":32,"range":{"start_line":29,"start_character":0,"end_line":32,"end_character":1},"in_reply_to":"1fa4df85_e2af2329","updated":"2020-03-12 04:41:07.000000000","message":"Done","commit_id":"acefaaed9d84a50e4ff5352406ac3f623b509bdf"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"35d648bd1afb45b182beb8daea24dc82b1b8a847","unresolved":false,"context_lines":[{"line_number":40,"context_line":"instance_actions_policies \u003d ["},{"line_number":41,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":42,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":43,"context_line":"        check_str\u003dbase.SYSTEM_ADMIN,"},{"line_number":44,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."},{"line_number":45,"context_line":"This check is performed only after the check"},{"line_number":46,"context_line":"os_compute_api:os-instance-actions passes. Beginning with Microversion 2.51,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_624a5384","line":43,"range":{"start_line":43,"start_character":23,"end_line":43,"end_character":35},"updated":"2020-03-11 16:16:22.000000000","message":"this should be SYSTEM_READER? as this is to read the event data.","commit_id":"acefaaed9d84a50e4ff5352406ac3f623b509bdf"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"aae9da3fac33a84c70f9ba4e3b222fe7cafaad69","unresolved":false,"context_lines":[{"line_number":40,"context_line":"instance_actions_policies \u003d ["},{"line_number":41,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":42,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027events\u0027,"},{"line_number":43,"context_line":"        check_str\u003dbase.SYSTEM_ADMIN,"},{"line_number":44,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."},{"line_number":45,"context_line":"This check is performed only after the check"},{"line_number":46,"context_line":"os_compute_api:os-instance-actions passes. Beginning with Microversion 2.51,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_295bd754","line":43,"range":{"start_line":43,"start_character":23,"end_line":43,"end_character":35},"in_reply_to":"1fa4df85_624a5384","updated":"2020-03-12 04:41:07.000000000","message":"Oh, sorry, I was missing that, yes, SYSTEM_READER is better, this is an event data for the user, I will update.","commit_id":"acefaaed9d84a50e4ff5352406ac3f623b509bdf"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"35d648bd1afb45b182beb8daea24dc82b1b8a847","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"},{"line_number":64,"context_line":"        description\u003d\"\"\"List actions and show action details for a server.\"\"\","},{"line_number":65,"context_line":"        operations\u003d["},{"line_number":66,"context_line":"            {"},{"line_number":67,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":68,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions\u0027"},{"line_number":69,"context_line":"            },"},{"line_number":70,"context_line":"            {"},{"line_number":71,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":72,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":73,"context_line":"            }"},{"line_number":74,"context_line":"        ],"},{"line_number":75,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":76,"context_line":"        deprecated_rule\u003dDEPRECATED_INSTANCE_ACTION_POLICY,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_a53375f6","line":73,"range":{"start_line":66,"start_character":0,"end_line":73,"end_character":13},"updated":"2020-03-11 16:16:22.000000000","message":"Same comment as in the previous PS. we need to separate these policies to add granularity.","commit_id":"acefaaed9d84a50e4ff5352406ac3f623b509bdf"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"aae9da3fac33a84c70f9ba4e3b222fe7cafaad69","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        check_str\u003dbase.PROJECT_READER_OR_SYSTEM_READER,"},{"line_number":64,"context_line":"        description\u003d\"\"\"List actions and show action details for a server.\"\"\","},{"line_number":65,"context_line":"        operations\u003d["},{"line_number":66,"context_line":"            {"},{"line_number":67,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":68,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions\u0027"},{"line_number":69,"context_line":"            },"},{"line_number":70,"context_line":"            {"},{"line_number":71,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":72,"context_line":"                \u0027path\u0027: \u0027/servers/{server_id}/os-instance-actions/{request_id}\u0027"},{"line_number":73,"context_line":"            }"},{"line_number":74,"context_line":"        ],"},{"line_number":75,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":76,"context_line":"        deprecated_rule\u003dDEPRECATED_INSTANCE_ACTION_POLICY,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_e9437fae","line":73,"range":{"start_line":66,"start_character":0,"end_line":73,"end_character":13},"in_reply_to":"1fa4df85_a53375f6","updated":"2020-03-12 04:41:07.000000000","message":"Yeah, I have done of this, see https://review.opendev.org/#/c/711791/\n\nlater: merge to this patch.","commit_id":"acefaaed9d84a50e4ff5352406ac3f623b509bdf"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e639b89041e9d4767a08337a4892464f459285c2","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."},{"line_number":40,"context_line":"This check is performed only after the check"},{"line_number":41,"context_line":"os_compute_api:os-instance-actions passes. Beginning with Microversion 2.51,"},{"line_number":42,"context_line":"events details are always included; traceback information is provided per"},{"line_number":43,"context_line":"event if policy enforcement passes. Beginning with Microversion 2.62, each"},{"line_number":44,"context_line":"event includes a hashed host identifier and, if policy enforcement passes,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_4b829dca","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":34},"updated":"2020-03-15 23:43:08.000000000","message":"you can modify this also to new policy os_compute_api:os-instance-actions:show","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e275f62e901529b703f4a8602e6c7a716bedc33d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        check_str\u003dbase.SYSTEM_READER,"},{"line_number":39,"context_line":"        description\u003d\"\"\"Add events details in action details for a server."},{"line_number":40,"context_line":"This check is performed only after the check"},{"line_number":41,"context_line":"os_compute_api:os-instance-actions passes. Beginning with Microversion 2.51,"},{"line_number":42,"context_line":"events details are always included; traceback information is provided per"},{"line_number":43,"context_line":"event if policy enforcement passes. Beginning with Microversion 2.62, each"},{"line_number":44,"context_line":"event includes a hashed host identifier and, if policy enforcement passes,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_cb7f6da9","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":34},"in_reply_to":"1fa4df85_4b829dca","updated":"2020-03-16 00:55:15.000000000","message":"Done","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"}],"nova/tests/unit/api/openstack/compute/test_instance_actions.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ea41dd6bc06f4e6cda22ce663bcae2f5baeab005","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        rules \u003d {\u0027compute:get\u0027: \u0027\u0027,"},{"line_number":124,"context_line":"                 \u0027os_compute_api:os-instance-actions:list\u0027: \u0027\u0027,"},{"line_number":125,"context_line":"                 \u0027os_compute_api:os-instance-actions:events\u0027:"},{"line_number":126,"context_line":"                     \u0027role:admin and system_scope:all\u0027}"},{"line_number":127,"context_line":"        policy.set_rules(oslo_policy.Rules.from_dict(rules))"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def test_list_actions(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_c4b11749","line":126,"range":{"start_line":126,"start_character":34,"end_line":126,"end_character":53},"updated":"2020-03-06 17:53:10.000000000","message":"this should not require as scope is disabled by default.","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b2911c0646c0389ab324a375379892c070209b70","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        rules \u003d {\u0027compute:get\u0027: \u0027\u0027,"},{"line_number":124,"context_line":"                 \u0027os_compute_api:os-instance-actions:list\u0027: \u0027\u0027,"},{"line_number":125,"context_line":"                 \u0027os_compute_api:os-instance-actions:events\u0027:"},{"line_number":126,"context_line":"                     \u0027role:admin and system_scope:all\u0027}"},{"line_number":127,"context_line":"        policy.set_rules(oslo_policy.Rules.from_dict(rules))"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def test_list_actions(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_73b1fe46","line":126,"range":{"start_line":126,"start_character":34,"end_line":126,"end_character":53},"in_reply_to":"1fa4df85_c4b11749","updated":"2020-03-06 23:20:46.000000000","message":"Done","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"}],"nova/tests/unit/cmd/test_policy.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"35d648bd1afb45b182beb8daea24dc82b1b8a847","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def test_filter_rules_non_admin(self):"},{"line_number":126,"context_line":"        context \u003d nova_context.RequestContext()"},{"line_number":127,"context_line":"        rule_conditions \u003d [base_policies.RULE_ANY,"},{"line_number":128,"context_line":"                           base_policies.PROJECT_READER_OR_SYSTEM_READER]"},{"line_number":129,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":130,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":131,"context_line":"        self._check_filter_rules(context, expected_rules\u003dexpected_rules)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_e5e40d11","line":128,"range":{"start_line":128,"start_character":41,"end_line":128,"end_character":72},"updated":"2020-03-11 16:16:22.000000000","message":"We can keep this unchanged and standardize these tests once all policy are migrated. We might not need these test but need to check once we complete the work.","commit_id":"acefaaed9d84a50e4ff5352406ac3f623b509bdf"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"aae9da3fac33a84c70f9ba4e3b222fe7cafaad69","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def test_filter_rules_non_admin(self):"},{"line_number":126,"context_line":"        context \u003d nova_context.RequestContext()"},{"line_number":127,"context_line":"        rule_conditions \u003d [base_policies.RULE_ANY,"},{"line_number":128,"context_line":"                           base_policies.PROJECT_READER_OR_SYSTEM_READER]"},{"line_number":129,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":130,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":131,"context_line":"        self._check_filter_rules(context, expected_rules\u003dexpected_rules)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_0fdb7b7d","line":128,"range":{"start_line":128,"start_character":41,"end_line":128,"end_character":72},"in_reply_to":"1fa4df85_e5e40d11","updated":"2020-03-12 04:41:07.000000000","message":"As debug, that\u0027s needed, I rollback this in latest patch, pls check.","commit_id":"acefaaed9d84a50e4ff5352406ac3f623b509bdf"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"35d648bd1afb45b182beb8daea24dc82b1b8a847","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":154,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"},{"line_number":155,"context_line":"        rule_conditions \u003d [base_policies.RULE_ANY,"},{"line_number":156,"context_line":"                           base_policies.PROJECT_READER_OR_SYSTEM_READER]"},{"line_number":157,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":158,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":159,"context_line":"        self._check_filter_rules(db_context, instance, expected_rules)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_65ba5de2","line":156,"range":{"start_line":156,"start_character":41,"end_line":156,"end_character":72},"updated":"2020-03-11 16:16:22.000000000","message":"ditto","commit_id":"acefaaed9d84a50e4ff5352406ac3f623b509bdf"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"5f3c36cb0fe6577c75e57b4dfee0b8ebf04e9039","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    def test_filter_rules_non_admin(self):"},{"line_number":128,"context_line":"        context \u003d nova_context.RequestContext()"},{"line_number":129,"context_line":"        rule_conditions \u003d [base_policies.RULE_ANY,"},{"line_number":130,"context_line":"                           base_policies.RULE_ADMIN_OR_OWNER]"},{"line_number":131,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":132,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":133,"context_line":"        self._check_filter_rules(context, expected_rules\u003dexpected_rules)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1fa4df85_8f352bab","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":60},"updated":"2020-03-12 04:44:54.000000000","message":"Is this should be use new policy \"PROJECT_READER_OR_SYSTEM_READER\" instead?","commit_id":"4f56074f0518261eeebc3cb8c70882d39f03a810"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1eba4dcacc04a6ed27f860834970fdabdf3002d7","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    def test_filter_rules_non_admin(self):"},{"line_number":128,"context_line":"        context \u003d nova_context.RequestContext()"},{"line_number":129,"context_line":"        rule_conditions \u003d [base_policies.RULE_ANY,"},{"line_number":130,"context_line":"                           base_policies.RULE_ADMIN_OR_OWNER]"},{"line_number":131,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":132,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":133,"context_line":"        self._check_filter_rules(context, expected_rules\u003dexpected_rules)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1fa4df85_b3ae3f96","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":60},"in_reply_to":"1fa4df85_8f03ebbe","updated":"2020-03-13 05:06:58.000000000","message":"Aha, that we should request the \"target\", in [1] we add the target in os-instance-actions API, that why the test case failed.\n\n[1]https://review.opendev.org/#/c/710411/4/nova/api/openstack/compute/instance_actions.py","commit_id":"4f56074f0518261eeebc3cb8c70882d39f03a810"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"15f46f02cfa19e335eefe2797c850e908a38af3d","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    def test_filter_rules_non_admin(self):"},{"line_number":128,"context_line":"        context \u003d nova_context.RequestContext()"},{"line_number":129,"context_line":"        rule_conditions \u003d [base_policies.RULE_ANY,"},{"line_number":130,"context_line":"                           base_policies.RULE_ADMIN_OR_OWNER]"},{"line_number":131,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":132,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":133,"context_line":"        self._check_filter_rules(context, expected_rules\u003dexpected_rules)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1fa4df85_8f03ebbe","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":60},"in_reply_to":"1fa4df85_8f352bab","updated":"2020-03-12 04:50:43.000000000","message":"Technically, there is no need to use the latest policy test here, but why would it cause a case failure?","commit_id":"4f56074f0518261eeebc3cb8c70882d39f03a810"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"5f3c36cb0fe6577c75e57b4dfee0b8ebf04e9039","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":156,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"},{"line_number":157,"context_line":"        rule_conditions \u003d [base_policies.RULE_ANY,"},{"line_number":158,"context_line":"                           base_policies.RULE_ADMIN_OR_OWNER]"},{"line_number":159,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":160,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":161,"context_line":"        self._check_filter_rules(db_context, instance, expected_rules)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1fa4df85_af3a6795","line":158,"range":{"start_line":158,"start_character":41,"end_line":158,"end_character":60},"updated":"2020-03-12 04:44:54.000000000","message":"ditto.","commit_id":"4f56074f0518261eeebc3cb8c70882d39f03a810"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1eba4dcacc04a6ed27f860834970fdabdf3002d7","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":156,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"},{"line_number":157,"context_line":"        rule_conditions \u003d [base_policies.RULE_ANY,"},{"line_number":158,"context_line":"                           base_policies.RULE_ADMIN_OR_OWNER]"},{"line_number":159,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":160,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":161,"context_line":"        self._check_filter_rules(db_context, instance, expected_rules)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1fa4df85_53934b5d","line":158,"range":{"start_line":158,"start_character":41,"end_line":158,"end_character":60},"in_reply_to":"1fa4df85_af3a6795","updated":"2020-03-13 05:06:58.000000000","message":"Done","commit_id":"4f56074f0518261eeebc3cb8c70882d39f03a810"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e639b89041e9d4767a08337a4892464f459285c2","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                context, \u0027os-instance-actions:events\u0027, target)"},{"line_number":125,"context_line":"        self.assertEqual(set(expected_rules), set(passing_rules))"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def test_filter_rules_non_admin(self):"},{"line_number":128,"context_line":"        db_context \u003d nova_context.RequestContext(user_id\u003d\u0027fake-user\u0027,"},{"line_number":129,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":130,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_2b672154","line":127,"range":{"start_line":127,"start_character":8,"end_line":127,"end_character":35},"updated":"2020-03-15 23:43:08.000000000","message":"do we need to change this test, is it failing?","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e275f62e901529b703f4a8602e6c7a716bedc33d","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                context, \u0027os-instance-actions:events\u0027, target)"},{"line_number":125,"context_line":"        self.assertEqual(set(expected_rules), set(passing_rules))"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def test_filter_rules_non_admin(self):"},{"line_number":128,"context_line":"        db_context \u003d nova_context.RequestContext(user_id\u003d\u0027fake-user\u0027,"},{"line_number":129,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":130,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_4b45bd6f","line":127,"range":{"start_line":127,"start_character":8,"end_line":127,"end_character":35},"in_reply_to":"1fa4df85_2b672154","updated":"2020-03-16 00:55:15.000000000","message":"Yes, if we keep this it will be failed, we need the target. because we changed the os-instance-action api\u0027s authorized by target\u003d{\u0027project_id\u0027: instance.project_id}, that why I changed this.","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"2f78a596114e31716bd14c4a333646256be1ce60","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                context, \u0027os-instance-actions:events\u0027, target)"},{"line_number":125,"context_line":"        self.assertEqual(set(expected_rules), set(passing_rules))"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def test_filter_rules_non_admin(self):"},{"line_number":128,"context_line":"        db_context \u003d nova_context.RequestContext(user_id\u003d\u0027fake-user\u0027,"},{"line_number":129,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":130,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_e327b7b5","line":127,"range":{"start_line":127,"start_character":8,"end_line":127,"end_character":35},"in_reply_to":"1fa4df85_35218afc","updated":"2020-03-19 01:37:57.000000000","message":"Yes, that suitable of \"PROJECT_READER_OR_SYSTEM_READER\" that it\u0027s the new check_str. That\u0027s why I chaged this in PS10\n https://review.opendev.org/#/c/706470/10/nova/tests/unit/cmd/test_policy.py@L120","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4aeca59793a3bb8833abfa1d3ab1ade2dca17492","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                context, \u0027os-instance-actions:events\u0027, target)"},{"line_number":125,"context_line":"        self.assertEqual(set(expected_rules), set(passing_rules))"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def test_filter_rules_non_admin(self):"},{"line_number":128,"context_line":"        db_context \u003d nova_context.RequestContext(user_id\u003d\u0027fake-user\u0027,"},{"line_number":129,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":130,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_35218afc","line":127,"range":{"start_line":127,"start_character":8,"end_line":127,"end_character":35},"in_reply_to":"1fa4df85_4b45bd6f","updated":"2020-03-18 17:51:34.000000000","message":"This tests did not test what you thought. It end up testing no rule so that is why passing.\n\nexpected_rules at L134 return empty list [] because there is no rule which match the old check_str at L132\n\npassing_rule at L123 is also [] because none of the rule can pass with empty context \u0027context at L131\u0027","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4aeca59793a3bb8833abfa1d3ab1ade2dca17492","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":130,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"},{"line_number":131,"context_line":"        context \u003d nova_context.RequestContext()"},{"line_number":132,"context_line":"        rule_conditions \u003d [base_policies.RULE_ANY,"},{"line_number":133,"context_line":"                           base_policies.RULE_ADMIN_OR_OWNER]"},{"line_number":134,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":135,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":136,"context_line":"        self._check_filter_rules(context, instance,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_15656e45","line":133,"range":{"start_line":132,"start_character":42,"end_line":133,"end_character":60},"updated":"2020-03-18 17:51:34.000000000","message":"we need to change these to new check_str and then check what all rule passes.","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"2f78a596114e31716bd14c4a333646256be1ce60","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":130,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"},{"line_number":131,"context_line":"        context \u003d nova_context.RequestContext()"},{"line_number":132,"context_line":"        rule_conditions \u003d [base_policies.RULE_ANY,"},{"line_number":133,"context_line":"                           base_policies.RULE_ADMIN_OR_OWNER]"},{"line_number":134,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":135,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":136,"context_line":"        self._check_filter_rules(context, instance,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_43c00b2b","line":133,"range":{"start_line":132,"start_character":42,"end_line":133,"end_character":60},"in_reply_to":"1fa4df85_15656e45","updated":"2020-03-19 01:37:57.000000000","message":"Done","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e639b89041e9d4767a08337a4892464f459285c2","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        self._check_filter_rules(target\u003dinstance)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_filter_rules_instance_owner(self):"},{"line_number":158,"context_line":"        db_context \u003d nova_context.RequestContext(user_id\u003d\u0027fake-user\u0027,"},{"line_number":159,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":160,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"},{"line_number":161,"context_line":"        context \u003d nova_context.RequestContext()"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_0b6ca534","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":18},"updated":"2020-03-15 23:43:08.000000000","message":"this should work fine? as project_id should be same as in instance at L160","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e275f62e901529b703f4a8602e6c7a716bedc33d","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        self._check_filter_rules(target\u003dinstance)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_filter_rules_instance_owner(self):"},{"line_number":158,"context_line":"        db_context \u003d nova_context.RequestContext(user_id\u003d\u0027fake-user\u0027,"},{"line_number":159,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":160,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"},{"line_number":161,"context_line":"        context \u003d nova_context.RequestContext()"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_8efe6303","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":18},"in_reply_to":"1fa4df85_0b6ca534","updated":"2020-03-16 00:55:15.000000000","message":"No, it cannot work. You can reference https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_96e/706470/12/check/openstack-tox-py36/96e5451/testr_results.html\n\nCompare the db_context and context (see bellow debug info), their \u0027_user_id\u0027 and \u0027_project_id\u0027 are different, that in context is None, I am not sure why they are not work fine, can you give some explain?\n\nAs the db_context is bellow:\n\n{\u0027_user_id\u0027: \u0027fake-user\u0027, \u0027_project_id\u0027: \u0027fake-project\u0027, \u0027_domain_id\u0027: None, \u0027_user_domain_id\u0027: None, \u0027_project_domain_id\u0027: None, \u0027auth_token\u0027: None, \u0027user_name\u0027: None, \u0027project_name\u0027: None, \u0027domain_name\u0027: None, \u0027system_scope\u0027: None, \u0027user_domain_name\u0027: None, \u0027project_domain_name\u0027: None, \u0027is_admin\u0027: False, \u0027is_admin_project\u0027: True, \u0027read_only\u0027: False, \u0027show_deleted\u0027: False, \u0027resource_uuid\u0027: None, \u0027roles\u0027: [], \u0027service_token\u0027: None, \u0027service_user_id\u0027: None, \u0027service_user_name\u0027: None, \u0027service_user_domain_id\u0027: None, \u0027service_user_domain_name\u0027: None, \u0027service_project_id\u0027: None, \u0027service_project_name\u0027: None, \u0027service_project_domain_id\u0027: None, \u0027service_project_domain_name\u0027: None, \u0027service_roles\u0027: [], \u0027request_id\u0027: \u0027req-2d9657db-9323-4395-9f1c-866660ed4279\u0027, \u0027global_request_id\u0027: None, \u0027_read_deleted\u0027: \u0027no\u0027, \u0027remote_address\u0027: None, \u0027timestamp\u0027: datetime.datetime(2020, 3, 16, 0, 37, 45, 354002), \u0027service_catalog\u0027: [], \u0027quota_class\u0027: None, \u0027db_connection\u0027: None, \u0027mq_connection\u0027: None, \u0027cell_uuid\u0027: None, \u0027user_auth_plugin\u0027: None}\n\nAs the context is bellow:\n\n{\u0027_user_id\u0027: None, \u0027_project_id\u0027: None, \u0027_domain_id\u0027: None, \u0027_user_domain_id\u0027: None, \u0027_project_domain_id\u0027: None, \u0027auth_token\u0027: None, \u0027user_name\u0027: None, \u0027project_name\u0027: None, \u0027domain_name\u0027: None, \u0027system_scope\u0027: None, \u0027user_domain_name\u0027: None, \u0027project_domain_name\u0027: None, \u0027is_admin\u0027: False, \u0027is_admin_project\u0027: True, \u0027read_only\u0027: False, \u0027show_deleted\u0027: False, \u0027resource_uuid\u0027: None, \u0027roles\u0027: [], \u0027service_token\u0027: None, \u0027service_user_id\u0027: None, \u0027service_user_name\u0027: None, \u0027service_user_domain_id\u0027: None, \u0027service_user_domain_name\u0027: None, \u0027service_project_id\u0027: None, \u0027service_project_name\u0027: None, \u0027service_project_domain_id\u0027: None, \u0027service_project_domain_name\u0027: None, \u0027service_roles\u0027: [], \u0027request_id\u0027: \u0027req-62dc25c0-d492-4cdc-a552-db6aedf33ea1\u0027, \u0027global_request_id\u0027: None, \u0027_read_deleted\u0027: \u0027no\u0027, \u0027remote_address\u0027: None, \u0027timestamp\u0027: datetime.datetime(2020, 3, 16, 0, 37, 59, 776689), \u0027service_catalog\u0027: [], \u0027quota_class\u0027: None, \u0027db_connection\u0027: None, \u0027mq_connection\u0027: None, \u0027cell_uuid\u0027: None, \u0027user_auth_plugin\u0027: None}","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4aeca59793a3bb8833abfa1d3ab1ade2dca17492","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        self._check_filter_rules(target\u003dinstance)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_filter_rules_instance_owner(self):"},{"line_number":158,"context_line":"        db_context \u003d nova_context.RequestContext(user_id\u003d\u0027fake-user\u0027,"},{"line_number":159,"context_line":"                                                 project_id\u003d\u0027fake-project\u0027)"},{"line_number":160,"context_line":"        instance \u003d fake_instance.fake_instance_obj(db_context)"},{"line_number":161,"context_line":"        context \u003d nova_context.RequestContext()"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_d51036ab","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":18},"in_reply_to":"1fa4df85_8efe6303","updated":"2020-03-18 17:51:34.000000000","message":"ditto. This test is not testing anything and that is why passing. It end up testing 0 rules and assert on [], [] :)\n\nexpected_rules at L164 return empty list [] because there is no rule which match the old check_str at L162\n\npassing_rule at L123 is also [] because none of the rule can pass with empty context \u0027context at L161\u0027","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4aeca59793a3bb8833abfa1d3ab1ade2dca17492","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                           base_policies.RULE_ADMIN_OR_OWNER]"},{"line_number":164,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":165,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":166,"context_line":"        self._check_filter_rules(context, instance, expected_rules)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    @mock.patch.object(policy.config, \u0027parse_args\u0027)"},{"line_number":169,"context_line":"    @mock.patch.object(policy, \u0027CONF\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_b5d01acb","line":166,"range":{"start_line":166,"start_character":32,"end_line":166,"end_character":50},"updated":"2020-03-18 17:51:34.000000000","message":"after changing the matching check_str at L162 then db_context will pass. instance you fetch at L160 is with db_context.","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"2f78a596114e31716bd14c4a333646256be1ce60","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def test_filter_rules_non_admin(self):"},{"line_number":128,"context_line":"        context \u003d nova_context.RequestContext()"},{"line_number":129,"context_line":"        rule_conditions \u003d [base_policies.PROJECT_READER_OR_SYSTEM_READER]"},{"line_number":130,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":131,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":132,"context_line":"        self._check_filter_rules(context, expected_rules\u003dexpected_rules)"}],"source_content_type":"text/x-python","patch_set":18,"id":"1fa4df85_23486fca","line":129,"range":{"start_line":129,"start_character":8,"end_line":129,"end_character":23},"updated":"2020-03-19 01:37:57.000000000","message":"The expected_rules is [\u0027os_compute_api:os-instance-actions:list\u0027, \u0027os_compute_api:os-instance-actions:show\u0027]\n\nThe passing_rules is [\u0027os_compute_api:os-instance-actions:list\u0027, \u0027os_compute_api:os-instance-actions:show\u0027]","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"60aba2ef5b9039c196ee6533820e697b9a68c239","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def test_filter_rules_non_admin(self):"},{"line_number":128,"context_line":"        context \u003d nova_context.RequestContext()"},{"line_number":129,"context_line":"        rule_conditions \u003d [base_policies.PROJECT_READER_OR_SYSTEM_READER]"},{"line_number":130,"context_line":"        expected_rules \u003d [r.name for r in ia_policies.list_rules() if"},{"line_number":131,"context_line":"                          r.check_str in rule_conditions]"},{"line_number":132,"context_line":"        self._check_filter_rules(context, expected_rules\u003dexpected_rules)"}],"source_content_type":"text/x-python","patch_set":18,"id":"1fa4df85_55bf4fa9","line":129,"range":{"start_line":129,"start_character":8,"end_line":129,"end_character":23},"in_reply_to":"1fa4df85_23486fca","updated":"2020-03-19 18:06:43.000000000","message":"+1, thanks and those are enough to verify the CLI behaviour.","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"}],"nova/tests/unit/fake_policy.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ea41dd6bc06f4e6cda22ce663bcae2f5baeab005","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    \"os_compute_api:os-floating-ip-pools\": \"\","},{"line_number":47,"context_line":"    \"os_compute_api:os-floating-ips\": \"\","},{"line_number":48,"context_line":"    \"os_compute_api:os-instance-actions:list\": \"\","},{"line_number":49,"context_line":"    \"os_compute_api:os-instance-actions:events\": \"\","},{"line_number":50,"context_line":"    \"os_compute_api:os-instance-usage-audit-log\": \"\","},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"os_compute_api:os-lock-server:lock\": \"\","}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_84e55f3a","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":52},"updated":"2020-03-06 17:53:10.000000000","message":"this was already missing.","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"4beb4b4a6b84f121c5e03c2383284c2cabef10b5","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    \"os_compute_api:os-floating-ip-pools\": \"\","},{"line_number":47,"context_line":"    \"os_compute_api:os-floating-ips\": \"\","},{"line_number":48,"context_line":"    \"os_compute_api:os-instance-actions:list\": \"\","},{"line_number":49,"context_line":"    \"os_compute_api:os-instance-actions:events\": \"\","},{"line_number":50,"context_line":"    \"os_compute_api:os-instance-usage-audit-log\": \"\","},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"os_compute_api:os-lock-server:lock\": \"\","}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_93f7da8b","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":52},"in_reply_to":"1fa4df85_33906695","updated":"2020-03-06 23:38:44.000000000","message":"（gmann） fake policy make all the policy accessible to everyone so that tests can verify the things without worry about right policy allowable context","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2b9d18f735b107e8d40258fa4e70c4f095912b52","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    \"os_compute_api:os-floating-ip-pools\": \"\","},{"line_number":47,"context_line":"    \"os_compute_api:os-floating-ips\": \"\","},{"line_number":48,"context_line":"    \"os_compute_api:os-instance-actions:list\": \"\","},{"line_number":49,"context_line":"    \"os_compute_api:os-instance-actions:events\": \"\","},{"line_number":50,"context_line":"    \"os_compute_api:os-instance-usage-audit-log\": \"\","},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"os_compute_api:os-lock-server:lock\": \"\","}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_cf44be76","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":52},"in_reply_to":"1fa4df85_56015005","updated":"2020-03-09 09:39:39.000000000","message":"Not sure if this helps... but I would like all tests to use the default policy in code, rather than this fake one, if possible.\n\nDoes moving either of those tests to the RealPolicyFixture, and making them work with that fixture, help us move forward here?\n\nFWIW, if we need to do the above test change, I would perfere that to be in its own patch, where we fix up tests before we make any code changes.","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b2911c0646c0389ab324a375379892c070209b70","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    \"os_compute_api:os-floating-ip-pools\": \"\","},{"line_number":47,"context_line":"    \"os_compute_api:os-floating-ips\": \"\","},{"line_number":48,"context_line":"    \"os_compute_api:os-instance-actions:list\": \"\","},{"line_number":49,"context_line":"    \"os_compute_api:os-instance-actions:events\": \"\","},{"line_number":50,"context_line":"    \"os_compute_api:os-instance-usage-audit-log\": \"\","},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"os_compute_api:os-lock-server:lock\": \"\","}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_33906695","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":52},"in_reply_to":"1fa4df85_84e55f3a","updated":"2020-03-06 23:20:46.000000000","message":"Why we don\u0027t need this fake events? I am confusing.","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e6b8ad1fd7a97a748bd89a669c578d853b306ff6","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    \"os_compute_api:os-floating-ip-pools\": \"\","},{"line_number":47,"context_line":"    \"os_compute_api:os-floating-ips\": \"\","},{"line_number":48,"context_line":"    \"os_compute_api:os-instance-actions:list\": \"\","},{"line_number":49,"context_line":"    \"os_compute_api:os-instance-actions:events\": \"\","},{"line_number":50,"context_line":"    \"os_compute_api:os-instance-usage-audit-log\": \"\","},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"os_compute_api:os-lock-server:lock\": \"\","}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_f62ddcfd","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":52},"in_reply_to":"1fa4df85_93f7da8b","updated":"2020-03-07 02:07:25.000000000","message":"Ah, I think this is the mainly reason caused the functional-py36 failed. This policy caused the functional-py36 or py36 unit test case fail, and the settings used here are contradictory.\n\nWhile we add \"os_compute_api:os-instance-actions:events\": \"\" in policy_data\u003d{}, the compute.api unit test will be success but the functional-py36 will be failed, you can refer this patch or PS9.\n\nIf we remove \"os_compute_api:os-instance-actions:events\": \"\" from policy_data\u003d{}, the functional-py36 can run success but the compute.api test case will be failed, you can refer this patch, the temporory link is https://23ac9a902a14c73a5e88-5cb3754a5639f7be0289e9ab84888d65.ssl.cf5.rackcdn.com/706470/9/check/openstack-tox-py36/2900845/testr_results.html","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"613e633157eccd67f5a7747a04689c44781f2d94","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    \"os_compute_api:os-floating-ip-pools\": \"\","},{"line_number":47,"context_line":"    \"os_compute_api:os-floating-ips\": \"\","},{"line_number":48,"context_line":"    \"os_compute_api:os-instance-actions:list\": \"\","},{"line_number":49,"context_line":"    \"os_compute_api:os-instance-actions:events\": \"\","},{"line_number":50,"context_line":"    \"os_compute_api:os-instance-usage-audit-log\": \"\","},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"os_compute_api:os-lock-server:lock\": \"\","}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_37cfc0b1","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":52},"in_reply_to":"1fa4df85_cf44be76","updated":"2020-03-11 12:24:45.000000000","message":"Yeah, use RealPolicyFixture in os-instance-actions looks like ok.","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"cf881a97c246f2ff4acc0cd7a042db9ebc02d914","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    \"os_compute_api:os-floating-ip-pools\": \"\","},{"line_number":47,"context_line":"    \"os_compute_api:os-floating-ips\": \"\","},{"line_number":48,"context_line":"    \"os_compute_api:os-instance-actions:list\": \"\","},{"line_number":49,"context_line":"    \"os_compute_api:os-instance-actions:events\": \"\","},{"line_number":50,"context_line":"    \"os_compute_api:os-instance-usage-audit-log\": \"\","},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"os_compute_api:os-lock-server:lock\": \"\","}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_56015005","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":52},"in_reply_to":"1fa4df85_f62ddcfd","updated":"2020-03-07 03:27:08.000000000","message":"This functional fail also since lack of \"os_compute_api:os-instance-actions:events\": \"\" this fake policy data.\n\nfailed case: nova.tests.functional.test_servers.ServerRebuildTestCase.test_rebuild_with_image_novalidhost\n\nTraceback (most recent call last):\n  File \"/home/my_work/code/nova/nova/tests/functional/test_servers.py\", line 1395, in test_rebuild_with_image_novalidhost\n    server, instance_actions.REBUILD, \u0027rebuild_server\u0027)\n  File \"/home/my_work/code/nova/nova/tests/functional/integrated_helpers.py\", line 121, in _wait_for_action_fail_completion\n    server, expected_action, event_name, event_result\u003d\u0027error\u0027)\n  File \"/home/my_work/code/nova/nova/tests/functional/integrated_helpers.py\", line 140, in _wait_for_instance_action_event\n    action[\u0027request_id\u0027])[\u0027events\u0027]\nKeyError: \u0027events\u0027","commit_id":"0d1f87f6eaaa23a8344f5aeb05607ebc52e80c12"}],"nova/tests/unit/policies/test_instance_actions.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"55e3711574f082383877a371f2a6ab30e49aaae8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_4072dae5","updated":"2020-02-13 18:16:06.000000000","message":"you need to add the test coverage in base patch so that we can know policy working before and after change.","commit_id":"20fd7a692f36b9994e13a40583a31cb397d50817"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"45a1e9972d40aa9caa4a201a475e3e7d06b5fcf0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1fa4df85_c4959c88","line":236,"updated":"2020-03-06 10:17:31.000000000","message":"Gmann has created some new tests that need to get added here please: https://review.opendev.org/#/c/707041/5/nova/tests/unit/policies/test_console_output.py","commit_id":"1864792a1b3f1cf9b702e9f80d67f4e914917def"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b2911c0646c0389ab324a375379892c070209b70","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1fa4df85_f3308ea1","line":236,"in_reply_to":"1fa4df85_c4959c88","updated":"2020-03-06 23:20:46.000000000","message":"Done","commit_id":"1864792a1b3f1cf9b702e9f80d67f4e914917def"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e639b89041e9d4767a08337a4892464f459285c2","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    def test_show_instance_action_policy_with_events("},{"line_number":116,"context_line":"            self, mock_get_action, mock_get_events):"},{"line_number":117,"context_line":"        \"\"\"Test to ensure skip checking policy rule"},{"line_number":118,"context_line":"        \u0027os_compute_api:os-instance-actions:list\u0027."},{"line_number":119,"context_line":"        \"\"\""},{"line_number":120,"context_line":"        fake_action \u003d self.fake_actions[FAKE_UUID][FAKE_REQUEST_ID]"},{"line_number":121,"context_line":"        mock_get_action.return_value \u003d fake_action"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_eb70290b","line":118,"range":{"start_line":118,"start_character":44,"end_line":118,"end_character":48},"updated":"2020-03-15 23:43:08.000000000","message":"show, this API checks show policy first.","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e275f62e901529b703f4a8602e6c7a716bedc33d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    def test_show_instance_action_policy_with_events("},{"line_number":116,"context_line":"            self, mock_get_action, mock_get_events):"},{"line_number":117,"context_line":"        \"\"\"Test to ensure skip checking policy rule"},{"line_number":118,"context_line":"        \u0027os_compute_api:os-instance-actions:list\u0027."},{"line_number":119,"context_line":"        \"\"\""},{"line_number":120,"context_line":"        fake_action \u003d self.fake_actions[FAKE_UUID][FAKE_REQUEST_ID]"},{"line_number":121,"context_line":"        mock_get_action.return_value \u003d fake_action"}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_0e127359","line":118,"range":{"start_line":118,"start_character":44,"end_line":118,"end_character":48},"in_reply_to":"1fa4df85_eb70290b","updated":"2020-03-16 00:55:15.000000000","message":"Done","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e639b89041e9d4767a08337a4892464f459285c2","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        self.reader_req \u003d fakes.HTTPRequest.blank(\u0027\u0027)"},{"line_number":163,"context_line":"        self.reader_req.environ[\u0027nova.context\u0027] \u003d self.project_reader_context"},{"line_number":164,"context_line":"        self.deprecated_policy \u003d ia_policies.ROOT_POLICY"},{"line_number":165,"context_line":"        # Overridde rule with different checks than defaults so that we can"},{"line_number":166,"context_line":"        # verify the rule overridden case."},{"line_number":167,"context_line":"        override_rules \u003d {self.deprecated_policy: {"},{"line_number":168,"context_line":"            base_policy.RULE_ADMIN_OR_OWNER, base_policy.RULE_ADMIN_API}}"},{"line_number":169,"context_line":"        # NOTE(brinzhang): Only override the deprecated rule in policy file"},{"line_number":170,"context_line":"        # so that we can verify if overridden checks are considered by"},{"line_number":171,"context_line":"        # oslo.policy."}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_0b558550","line":168,"range":{"start_line":165,"start_character":0,"end_line":168,"end_character":73},"updated":"2020-03-15 23:43:08.000000000","message":"these are base rules which are not deprecated in this patch. You need to use the rules name deprecated in this change which is \u0027os_compute_api:os-instance-actions\u0027","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e275f62e901529b703f4a8602e6c7a716bedc33d","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        self.reader_req \u003d fakes.HTTPRequest.blank(\u0027\u0027)"},{"line_number":163,"context_line":"        self.reader_req.environ[\u0027nova.context\u0027] \u003d self.project_reader_context"},{"line_number":164,"context_line":"        self.deprecated_policy \u003d ia_policies.ROOT_POLICY"},{"line_number":165,"context_line":"        # Overridde rule with different checks than defaults so that we can"},{"line_number":166,"context_line":"        # verify the rule overridden case."},{"line_number":167,"context_line":"        override_rules \u003d {self.deprecated_policy: {"},{"line_number":168,"context_line":"            base_policy.RULE_ADMIN_OR_OWNER, base_policy.RULE_ADMIN_API}}"},{"line_number":169,"context_line":"        # NOTE(brinzhang): Only override the deprecated rule in policy file"},{"line_number":170,"context_line":"        # so that we can verify if overridden checks are considered by"},{"line_number":171,"context_line":"        # oslo.policy."}],"source_content_type":"text/x-python","patch_set":13,"id":"1fa4df85_8e2743b7","line":168,"range":{"start_line":165,"start_character":0,"end_line":168,"end_character":73},"in_reply_to":"1fa4df85_0b558550","updated":"2020-03-16 00:55:15.000000000","message":"ia_policies.ROOT_POLICY is \u0027os_compute_api:os-instance-actions\u0027, I think we should overide the RULE_ADMIN_OR_OWNER, because we deprecated it in instance_action policy.","commit_id":"e899cef2b21e19a8c379eee140bc7c3022c2c7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3aab5024c775ed502278164e53f6cacdf2c2d662","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"class InstanceActionsDeprecatedPolicyTest(base.BasePolicyTest):"},{"line_number":149,"context_line":"    \"\"\"Test os-instance-actions APIs Deprecated policies."},{"line_number":150,"context_line":"    This lass checks if deprecated policy rules are overridden"},{"line_number":151,"context_line":"    by user on policy.json file then they still work because"},{"line_number":152,"context_line":"    oslo.policy add deprecated rules in logical OR condition"}],"source_content_type":"text/x-python","patch_set":18,"id":"1fa4df85_7ca03d91","line":149,"updated":"2020-03-19 12:40:46.000000000","message":"nit: newline after this would be nice","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e5e8b26911554733915317eda10c93d6d67e60be","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"class InstanceActionsDeprecatedPolicyTest(base.BasePolicyTest):"},{"line_number":149,"context_line":"    \"\"\"Test os-instance-actions APIs Deprecated policies."},{"line_number":150,"context_line":"    This lass checks if deprecated policy rules are overridden"},{"line_number":151,"context_line":"    by user on policy.json file then they still work because"},{"line_number":152,"context_line":"    oslo.policy add deprecated rules in logical OR condition"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_cc3b139a","line":149,"in_reply_to":"1fa4df85_7ca03d91","updated":"2020-03-24 03:03:40.000000000","message":"Done","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3aab5024c775ed502278164e53f6cacdf2c2d662","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"class InstanceActionsDeprecatedPolicyTest(base.BasePolicyTest):"},{"line_number":149,"context_line":"    \"\"\"Test os-instance-actions APIs Deprecated policies."},{"line_number":150,"context_line":"    This lass checks if deprecated policy rules are overridden"},{"line_number":151,"context_line":"    by user on policy.json file then they still work because"},{"line_number":152,"context_line":"    oslo.policy add deprecated rules in logical OR condition"},{"line_number":153,"context_line":"    and enforce them for policy checks if overridden."}],"source_content_type":"text/x-python","patch_set":18,"id":"1fa4df85_9c95f934","line":150,"range":{"start_line":150,"start_character":9,"end_line":150,"end_character":13},"updated":"2020-03-19 12:40:46.000000000","message":"?","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e5e8b26911554733915317eda10c93d6d67e60be","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"class InstanceActionsDeprecatedPolicyTest(base.BasePolicyTest):"},{"line_number":149,"context_line":"    \"\"\"Test os-instance-actions APIs Deprecated policies."},{"line_number":150,"context_line":"    This lass checks if deprecated policy rules are overridden"},{"line_number":151,"context_line":"    by user on policy.json file then they still work because"},{"line_number":152,"context_line":"    oslo.policy add deprecated rules in logical OR condition"},{"line_number":153,"context_line":"    and enforce them for policy checks if overridden."}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_2c41df0c","line":150,"range":{"start_line":150,"start_character":9,"end_line":150,"end_character":13},"in_reply_to":"1fa4df85_55e0af26","updated":"2020-03-24 03:03:40.000000000","message":"Done","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"df4368685f1902f04d891341290220e6c63da380","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"class InstanceActionsDeprecatedPolicyTest(base.BasePolicyTest):"},{"line_number":149,"context_line":"    \"\"\"Test os-instance-actions APIs Deprecated policies."},{"line_number":150,"context_line":"    This lass checks if deprecated policy rules are overridden"},{"line_number":151,"context_line":"    by user on policy.json file then they still work because"},{"line_number":152,"context_line":"    oslo.policy add deprecated rules in logical OR condition"},{"line_number":153,"context_line":"    and enforce them for policy checks if overridden."}],"source_content_type":"text/x-python","patch_set":18,"id":"1fa4df85_55e0af26","line":150,"range":{"start_line":150,"start_character":9,"end_line":150,"end_character":13},"in_reply_to":"1fa4df85_9c95f934","updated":"2020-03-19 17:50:23.000000000","message":"class?","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3aab5024c775ed502278164e53f6cacdf2c2d662","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    This lass checks if deprecated policy rules are overridden"},{"line_number":151,"context_line":"    by user on policy.json file then they still work because"},{"line_number":152,"context_line":"    oslo.policy add deprecated rules in logical OR condition"},{"line_number":153,"context_line":"    and enforce them for policy checks if overridden."},{"line_number":154,"context_line":"    \"\"\""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":18,"id":"1fa4df85_bc9a355f","line":153,"range":{"start_line":153,"start_character":8,"end_line":153,"end_character":15},"updated":"2020-03-19 12:40:46.000000000","message":"enforces","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e5e8b26911554733915317eda10c93d6d67e60be","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    This lass checks if deprecated policy rules are overridden"},{"line_number":151,"context_line":"    by user on policy.json file then they still work because"},{"line_number":152,"context_line":"    oslo.policy add deprecated rules in logical OR condition"},{"line_number":153,"context_line":"    and enforce them for policy checks if overridden."},{"line_number":154,"context_line":"    \"\"\""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_0c469b24","line":153,"range":{"start_line":153,"start_character":8,"end_line":153,"end_character":15},"in_reply_to":"1fa4df85_bc9a355f","updated":"2020-03-24 03:03:40.000000000","message":"Done","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3aab5024c775ed502278164e53f6cacdf2c2d662","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        self.deprecated_policy \u003d ia_policies.ROOT_POLICY"},{"line_number":165,"context_line":"        # Overridde rule with different checks than defaults so that we can"},{"line_number":166,"context_line":"        # verify the rule overridden case."},{"line_number":167,"context_line":"        override_rules \u003d {self.deprecated_policy:"},{"line_number":168,"context_line":"            base_policy.RULE_ADMIN_OR_OWNER}"},{"line_number":169,"context_line":"        # NOTE(brinzhang): Only override the deprecated rule in policy file"},{"line_number":170,"context_line":"        # so that we can verify if overridden checks are considered by"},{"line_number":171,"context_line":"        # oslo.policy."}],"source_content_type":"text/x-python","patch_set":18,"id":"1fa4df85_dcb851c9","line":168,"range":{"start_line":167,"start_character":0,"end_line":168,"end_character":44},"updated":"2020-03-19 12:40:46.000000000","message":"nit:\n\n  override_rules \u003d {\n      self.deprecated_policy: base_policy.RULE_ADMIN_OR_OWNER,\n  }","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e5e8b26911554733915317eda10c93d6d67e60be","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        self.deprecated_policy \u003d ia_policies.ROOT_POLICY"},{"line_number":165,"context_line":"        # Overridde rule with different checks than defaults so that we can"},{"line_number":166,"context_line":"        # verify the rule overridden case."},{"line_number":167,"context_line":"        override_rules \u003d {self.deprecated_policy:"},{"line_number":168,"context_line":"            base_policy.RULE_ADMIN_OR_OWNER}"},{"line_number":169,"context_line":"        # NOTE(brinzhang): Only override the deprecated rule in policy file"},{"line_number":170,"context_line":"        # so that we can verify if overridden checks are considered by"},{"line_number":171,"context_line":"        # oslo.policy."}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_6c4ac727","line":168,"range":{"start_line":167,"start_character":0,"end_line":168,"end_character":44},"in_reply_to":"1fa4df85_dcb851c9","updated":"2020-03-24 03:03:40.000000000","message":"Done","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3aab5024c775ed502278164e53f6cacdf2c2d662","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        ia_policies.BASE_POLICY_NAME % \u0027show\u0027:"},{"line_number":244,"context_line":"            base_policy.PROJECT_READER_OR_SYSTEM_READER,"},{"line_number":245,"context_line":"        ia_policies.BASE_POLICY_NAME % \u0027events\u0027:"},{"line_number":246,"context_line":"            base_policy.SYSTEM_READER}"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def setUp(self):"},{"line_number":249,"context_line":"        super(InstanceActionsNoLegacyPolicyTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":18,"id":"1fa4df85_9cae597f","line":246,"range":{"start_line":246,"start_character":37,"end_line":246,"end_character":38},"updated":"2020-03-19 12:40:46.000000000","message":"nit: can you drag this down a line","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e5e8b26911554733915317eda10c93d6d67e60be","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        ia_policies.BASE_POLICY_NAME % \u0027show\u0027:"},{"line_number":244,"context_line":"            base_policy.PROJECT_READER_OR_SYSTEM_READER,"},{"line_number":245,"context_line":"        ia_policies.BASE_POLICY_NAME % \u0027events\u0027:"},{"line_number":246,"context_line":"            base_policy.SYSTEM_READER}"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def setUp(self):"},{"line_number":249,"context_line":"        super(InstanceActionsNoLegacyPolicyTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_ac54cfcb","line":246,"range":{"start_line":246,"start_character":37,"end_line":246,"end_character":38},"in_reply_to":"1fa4df85_9cae597f","updated":"2020-03-24 03:03:40.000000000","message":"Done","commit_id":"c498544215e9b0cb1948e4d6d7269d575b062e8f"}]}
