Merge "[S-RBAC] Fix policies for the local_ip association APIs" into stable/2024.2

This commit is contained in:
Zuul
2025-10-03 00:01:03 +00:00
committed by Gerrit Code Review
2 changed files with 17 additions and 6 deletions

View File

@@ -29,7 +29,7 @@ rules = [
name='create_local_ip_port_association',
check_str=neutron_policy.policy_or(
base.ADMIN_OR_PROJECT_MEMBER,
base.RULE_PARENT_OWNER),
base.PARENT_OWNER_MEMBER),
scope_types=['project'],
description='Create a Local IP port association',
operations=[
@@ -48,7 +48,7 @@ rules = [
name='get_local_ip_port_association',
check_str=neutron_policy.policy_or(
base.ADMIN_OR_PROJECT_READER,
base.RULE_PARENT_OWNER),
base.PARENT_OWNER_READER),
scope_types=['project'],
description='Get a Local IP port association',
operations=[
@@ -71,7 +71,7 @@ rules = [
name='delete_local_ip_port_association',
check_str=neutron_policy.policy_or(
base.ADMIN_OR_PROJECT_MEMBER,
base.RULE_PARENT_OWNER),
base.PARENT_OWNER_MEMBER),
scope_types=['project'],
description='Delete a Local IP port association',
operations=[

View File

@@ -29,6 +29,9 @@ class LocalIPAssociationAPITestCase(base.PolicyBaseTestCase):
self.local_ip = {
'id': uuidutils.generate_uuid(),
'project_id': self.project_id}
self.alt_local_ip = {
'id': uuidutils.generate_uuid(),
'project_id': self.alt_project_id}
self.target = {
'project_id': self.project_id,
@@ -36,11 +39,19 @@ class LocalIPAssociationAPITestCase(base.PolicyBaseTestCase):
'ext_parent_local_ip_id': self.local_ip['id']}
self.alt_target = {
'project_id': self.alt_project_id,
'local_ip_id': self.local_ip['id'],
'ext_parent_local_ip_id': self.local_ip['id']}
'local_ip_id': self.alt_local_ip['id'],
'ext_parent_local_ip_id': self.alt_local_ip['id']}
local_ips = {
self.local_ip['id']: self.local_ip,
self.alt_local_ip['id']: self.alt_local_ip,
}
def get_local_ip(context, lip_id, fields=None):
return local_ips[lip_id]
self.plugin_mock = mock.Mock()
self.plugin_mock.get_local_ip.return_value = self.local_ip
self.plugin_mock.get_local_ip.side_effect = get_local_ip
mock.patch(
'neutron_lib.plugins.directory.get_plugin',
return_value=self.plugin_mock).start()