Merge "[Trivial]: Remove unused RBAC default alias"

This commit is contained in:
Zuul
2026-03-17 20:19:53 +00:00
committed by Gerrit Code Review
5 changed files with 24 additions and 22 deletions

View File

@@ -12,10 +12,10 @@
from oslo_policy import policy
# TODO(gmaan): Below alias are deprecated and needs to be removed once we stop
# supporting the old defaults.
RULE_ADMIN_OR_OWNER = 'rule:admin_or_owner' # Admins or owners of the resource
RULE_ADMIN_API = 'rule:admin_api' # Allow only users with the admin role
RULE_ANY = '@' # Any user is allowed to perform the action.
RULE_NOBODY = '!' # No users are allowed to perform the action.
DEPRECATED_REASON = """
Nova API policies are introducing new default roles with scope_type
@@ -37,19 +37,23 @@ DEPRECATED_ADMIN_OR_OWNER_POLICY = policy.DeprecatedRule(
deprecated_since='21.0.0'
)
# NOTE(gmaan): We should use the below alias in the policy rule defaults.
# This will help to keep the definition of admin and various project
# personas in a consistent way. If any policy rule needs different access
# permission than what is defined in the existing alias, you can define the
# new alias.
ADMIN = 'rule:context_is_admin'
PROJECT_MEMBER = 'rule:project_manager_api'
PROJECT_MEMBER = 'rule:project_member_api'
PROJECT_READER = 'rule:project_reader_api'
PROJECT_MANAGER_OR_ADMIN = 'rule:project_manager_or_admin'
PROJECT_MEMBER_OR_ADMIN = 'rule:project_member_or_admin'
PROJECT_READER_OR_ADMIN = 'rule:project_reader_or_admin'
RULE_ANY = '@' # Any user is allowed to perform the action.
RULE_NOBODY = '!' # No users are allowed to perform the action.
# TODO(gmaan): Remove the admin role from the service rule in 2026.2. We are
# continue allowing admin to access the service APIs, otherwise it will break
# deployment where nova service users in other services are not assigned
# 'service' role. After one SLURP (2026.1), we can make service APIs only
# allowed for the 'service' role.
SERVICE_ROLE = 'rule:service_or_admin'
PROJECT_MANAGER_OR_ADMIN = 'rule:project_manager_or_admin'
PROJECT_MEMBER_OR_ADMIN = 'rule:project_member_or_admin'
PROJECT_READER_OR_ADMIN = 'rule:project_reader_or_admin'
# NOTE(gmann): Below is the mapping of new roles with legacy roles::

View File

@@ -21,7 +21,6 @@ from nova.api.openstack.compute import lock_server
from nova.compute import vm_states
import nova.conf
from nova import exception
from nova.policies import base as base_policy
from nova.policies import lock_server as ls_policies
from nova.tests.unit.api.openstack import fakes
from nova.tests.unit import fake_instance
@@ -189,7 +188,7 @@ class LockServerOverridePolicyTest(LockServerScopeTypeNoLegacyPolicyTest):
def setUp(self):
super(LockServerOverridePolicyTest, self).setUp()
# We are overriding the 'unlock:unlock_override' policy
# to PROJECT_MEMBER so testing it with both admin as well
# to rule:project_member_api so testing it with both admin as well
# as project member as allowed context.
self.project_admin_authorized_contexts = [
self.project_admin_context, self.project_manager_context,
@@ -201,6 +200,6 @@ class LockServerOverridePolicyTest(LockServerScopeTypeNoLegacyPolicyTest):
# make unlock allowed for everyone so that we can check unlock
# override policy.
ls_policies.POLICY_ROOT % 'unlock': "@",
rule: base_policy.PROJECT_MEMBER}, overwrite=False)
rule: "rule:project_member_api"}, overwrite=False)
super(LockServerOverridePolicyTest,
self).test_unlock_override_server_policy()

View File

@@ -181,10 +181,10 @@ class MigrateServerOverridePolicyTest(
# NOTE(gmann): override the rule to project member and verify it
# work as policy is system and project scoped.
self.policy.set_rules({
rule_migrate: base_policy.PROJECT_MEMBER,
rule_migrate_host: base_policy.PROJECT_MEMBER,
rule_live_migrate: base_policy.PROJECT_MEMBER,
rule_live_migrate_host: base_policy.PROJECT_MEMBER},
rule_migrate: "rule:project_member_api",
rule_migrate_host: "rule:project_member_api",
rule_live_migrate: "rule:project_member_api",
rule_live_migrate_host: "rule:project_member_api"},
overwrite=False)
# Check that project member role as override above

View File

@@ -17,7 +17,6 @@ from oslo_utils import timeutils
from nova.api.openstack.compute import server_diagnostics
from nova.compute import vm_states
from nova import objects
from nova.policies import base as base_policy
from nova.policies import server_diagnostics as policies
from nova.tests.unit.api.openstack import fakes
from nova.tests.unit import fake_instance
@@ -127,7 +126,7 @@ class ServerDiagnosticsOverridePolicyTest(
# NOTE(gmann): override the rule to project member and verify it
# work as policy is project scoped.
self.policy.set_rules({
rule: base_policy.PROJECT_MEMBER},
rule: "rule:project_member_api"},
overwrite=False)
# Check that project member role as override above

View File

@@ -264,11 +264,11 @@ class ServerMigrationsOverridePolicyTest(
# NOTE(gmann): override the rule to project member and verify it
# work as policy is project scoped.
self.policy.set_rules({
rule_show: base_policy.PROJECT_READER,
rule_list: base_policy.PROJECT_READER,
rule_list_host: base_policy.PROJECT_READER,
rule_force: base_policy.PROJECT_READER,
rule_delete: base_policy.PROJECT_READER},
rule_show: "rule:project_reader_api",
rule_list: "rule:project_reader_api",
rule_list_host: "rule:project_reader_api",
rule_force: "rule:project_reader_api",
rule_delete: "rule:project_reader_api"},
overwrite=False)
# Check that project reader as override above