From 98c2c311ad1a0797205da58ce4d3b7d9b4c66c57 Mon Sep 17 00:00:00 2001 From: Ghanshyam Mann Date: Tue, 31 Mar 2020 02:40:07 -0500 Subject: [PATCH] Introduce scope_types in pause server policy oslo.policy introduced the scope_type feature which can control the access level at system-level and project-level. - https://docs.openstack.org/oslo.policy/latest/user/usage.html#setting-scope - http://specs.openstack.org/openstack/keystone-specs/specs/keystone/queens/system-scope.html Appropriate scope_type for nova case: - https://specs.openstack.org/openstack/nova-specs/specs/ussuri/approved/policy-defaults-refresh.html#scope This commit introduce scope_type for pause server API policies as: - ['system', 'project'] for pause/unpause policy. Also adds the test case with scope_type enabled and verify we pass and fail the policy check with expected context. Partial implement blueprint policy-defaults-refresh Change-Id: I828248ec42c71d67c8d9463d987d0afe54989c74 --- nova/policies/pause_server.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/nova/policies/pause_server.py b/nova/policies/pause_server.py index 66b649ea41..ce82e2da07 100644 --- a/nova/policies/pause_server.py +++ b/nova/policies/pause_server.py @@ -23,26 +23,28 @@ POLICY_ROOT = 'os_compute_api:os-pause-server:%s' pause_server_policies = [ policy.DocumentedRuleDefault( - POLICY_ROOT % 'pause', - base.RULE_ADMIN_OR_OWNER, - "Pause a server", - [ + name=POLICY_ROOT % 'pause', + check_str=base.RULE_ADMIN_OR_OWNER, + description="Pause a server", + operations=[ { 'path': '/servers/{server_id}/action (pause)', 'method': 'POST' } - ] + ], + scope_types=['system', 'project'] ), policy.DocumentedRuleDefault( - POLICY_ROOT % 'unpause', - base.RULE_ADMIN_OR_OWNER, - "Unpause a paused server", - [ + name=POLICY_ROOT % 'unpause', + check_str=base.RULE_ADMIN_OR_OWNER, + description="Unpause a paused server", + operations=[ { 'path': '/servers/{server_id}/action (unpause)', 'method': 'POST' } - ] + ], + scope_types=['system', 'project'] ), ]