Show all SG rules belong to SG in group's details

If security group contains rule(s) which were created by different
user (admin), owner of this security group should see such rules
even if those rules don't belong to him.

This patch changes to use admin_context to get security group rules
in get_security_group() method to achieve that.

Test to cover such case is added in neutron-tempest-plugin repo.

Conflicts:
    neutron/db/securitygroups_db.py

Change-Id: I890c81bb6eabc5caa620ed4fcc4dc88ebfa6e1b0
Closes-Bug: #1824248
(cherry picked from commit 1920a37a94)
(cherry picked from commit 252d80058c)
This commit is contained in:
Slawek Kaplonski 2019-05-20 18:47:18 +02:00
parent 5505517295
commit e02b66a858
1 changed files with 3 additions and 1 deletions

View File

@ -20,6 +20,7 @@ from neutron_lib.callbacks import exceptions
from neutron_lib.callbacks import registry from neutron_lib.callbacks import registry
from neutron_lib.callbacks import resources from neutron_lib.callbacks import resources
from neutron_lib import constants from neutron_lib import constants
from neutron_lib import context as context_lib
from neutron_lib import exceptions as n_exc from neutron_lib import exceptions as n_exc
from neutron_lib.utils import helpers from neutron_lib.utils import helpers
from neutron_lib.utils import net from neutron_lib.utils import net
@ -189,7 +190,8 @@ class SecurityGroupDbMixin(ext_sg.SecurityGroupPluginBase):
fields) fields)
if (fields is None or len(fields) == 0 or if (fields is None or len(fields) == 0 or
'security_group_rules' in fields): 'security_group_rules' in fields):
rules = self.get_security_group_rules(context, rules = self.get_security_group_rules(
context_lib.get_admin_context(),
{'security_group_id': [id]}) {'security_group_id': [id]})
ret['security_group_rules'] = rules ret['security_group_rules'] = rules