From ca8df08bb8ed03981b7a0f9d6fedb3418b061804 Mon Sep 17 00:00:00 2001 From: Zhang Hua Date: Tue, 3 Feb 2015 14:39:20 +0800 Subject: [PATCH] Fix shared firewall policy can not be displayed in horizon When firewall policy is set to shared, it should be seen by any users just like public images. _model_query function of common_db_minxin.py in neutron has used shared and tenant_id fields restored from token to construct the query condition, so continuing to pass tenant_id as filters condition will cause sql confusion, just delete them to keep consistent with the approach python-neutronclient did. Change-Id: Id891f735509275bd79eff52385ffce40069fc460 Closes-bug: 1294541 --- .../dashboards/project/firewalls/forms.py | 9 +-- .../dashboards/project/firewalls/tabs.py | 12 +--- .../dashboards/project/firewalls/tests.py | 71 ++++++------------- .../dashboards/project/firewalls/workflows.py | 6 +- 4 files changed, 28 insertions(+), 70 deletions(-) diff --git a/openstack_dashboard/dashboards/project/firewalls/forms.py b/openstack_dashboard/dashboards/project/firewalls/forms.py index 3d84135c3c..a63d64aef7 100644 --- a/openstack_dashboard/dashboards/project/firewalls/forms.py +++ b/openstack_dashboard/dashboards/project/firewalls/forms.py @@ -138,8 +138,7 @@ class UpdateFirewall(forms.SelfHandlingForm): super(UpdateFirewall, self).__init__(request, *args, **kwargs) try: - tenant_id = self.request.user.tenant_id - policies = api.fwaas.policy_list(request, tenant_id=tenant_id) + policies = api.fwaas.policy_list(request) policies = sorted(policies, key=lambda policy: policy.name) except Exception: exceptions.handle(request, @@ -187,9 +186,8 @@ class InsertRuleToPolicy(forms.SelfHandlingForm): def __init__(self, request, *args, **kwargs): super(InsertRuleToPolicy, self).__init__(request, *args, **kwargs) - tenant_id = self.request.user.tenant_id try: - all_rules = api.fwaas.rule_list(request, tenant_id=tenant_id) + all_rules = api.fwaas.rule_list(request) all_rules = sorted(all_rules, key=lambda rule: rule.name_or_id) available_rules = [r for r in all_rules @@ -246,9 +244,8 @@ class RemoveRuleFromPolicy(forms.SelfHandlingForm): def __init__(self, request, *args, **kwargs): super(RemoveRuleFromPolicy, self).__init__(request, *args, **kwargs) - tenant_id = request.user.tenant_id try: - all_rules = api.fwaas.rule_list(request, tenant_id=tenant_id) + all_rules = api.fwaas.rule_list(request) current_rules = [] for r in kwargs['initial']['firewall_rules']: diff --git a/openstack_dashboard/dashboards/project/firewalls/tabs.py b/openstack_dashboard/dashboards/project/firewalls/tabs.py index 98983cedbf..0fb1190727 100644 --- a/openstack_dashboard/dashboards/project/firewalls/tabs.py +++ b/openstack_dashboard/dashboards/project/firewalls/tabs.py @@ -34,9 +34,7 @@ class RulesTab(tabs.TableTab): def get_rulestable_data(self): try: - tenant_id = self.request.user.tenant_id - rules = api.fwaas.rule_list(self.tab_group.request, - tenant_id=tenant_id) + rules = api.fwaas.rule_list(self.tab_group.request) except Exception: rules = [] exceptions.handle(self.tab_group.request, @@ -53,9 +51,7 @@ class PoliciesTab(tabs.TableTab): def get_policiestable_data(self): try: - tenant_id = self.request.user.tenant_id - policies = api.fwaas.policy_list(self.tab_group.request, - tenant_id=tenant_id) + policies = api.fwaas.policy_list(self.tab_group.request) except Exception: policies = [] exceptions.handle(self.tab_group.request, @@ -72,9 +68,7 @@ class FirewallsTab(tabs.TableTab): def get_firewallstable_data(self): try: - tenant_id = self.request.user.tenant_id - firewalls = api.fwaas.firewall_list(self.tab_group.request, - tenant_id=tenant_id) + firewalls = api.fwaas.firewall_list(self.tab_group.request) except Exception: firewalls = [] exceptions.handle(self.tab_group.request, diff --git a/openstack_dashboard/dashboards/project/firewalls/tests.py b/openstack_dashboard/dashboards/project/firewalls/tests.py index 6ff37ae4c7..bd0011f90d 100644 --- a/openstack_dashboard/dashboards/project/firewalls/tests.py +++ b/openstack_dashboard/dashboards/project/firewalls/tests.py @@ -50,35 +50,28 @@ class FirewallTests(test.TestCase): REMOVERULE_PATH = 'horizon:%s:firewalls:removerule' % DASHBOARD def set_up_expect(self): - # retrieve rules - tenant_id = self.tenant.id api.fwaas.rule_list( - IsA(http.HttpRequest), - tenant_id=tenant_id).AndReturn(self.fw_rules.list()) + IsA(http.HttpRequest)).AndReturn(self.fw_rules.list()) # retrieves policies policies = self.fw_policies.list() api.fwaas.policy_list( - IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(policies) + IsA(http.HttpRequest)).AndReturn(policies) # retrieves firewalls firewalls = self.firewalls.list() api.fwaas.firewall_list( - IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(firewalls) + IsA(http.HttpRequest)).AndReturn(firewalls) def set_up_expect_with_exception(self): - tenant_id = self.tenant.id api.fwaas.rule_list( - IsA(http.HttpRequest), - tenant_id=tenant_id).AndRaise(self.exceptions.neutron) + IsA(http.HttpRequest)).AndRaise(self.exceptions.neutron) api.fwaas.policy_list( - IsA(http.HttpRequest), - tenant_id=tenant_id).AndRaise(self.exceptions.neutron) + IsA(http.HttpRequest)).AndRaise(self.exceptions.neutron) api.fwaas.firewall_list( - IsA(http.HttpRequest), - tenant_id=tenant_id).AndRaise(self.exceptions.neutron) + IsA(http.HttpRequest)).AndRaise(self.exceptions.neutron) @test.create_stubs({api.fwaas: ('firewall_list', 'policy_list', @@ -88,9 +81,7 @@ class FirewallTests(test.TestCase): self.mox.ReplayAll() - tenant_id = self.tenant.id - - res = self.client.get(self.INDEX_URL, tenant_id=tenant_id) + res = self.client.get(self.INDEX_URL) self.assertTemplateUsed(res, '%s/firewalls/details_tabs.html' % self.DASHBOARD) @@ -106,10 +97,7 @@ class FirewallTests(test.TestCase): self.mox.ReplayAll() - tenant_id = self.tenant.id - - res = self.client.get(self.INDEX_URL + '?tab=fwtabs__policies', - tenant_id=tenant_id) + res = self.client.get(self.INDEX_URL + '?tab=fwtabs__policies') self.assertTemplateUsed(res, '%s/firewalls/details_tabs.html' % self.DASHBOARD) @@ -125,10 +113,7 @@ class FirewallTests(test.TestCase): self.mox.ReplayAll() - tenant_id = self.tenant.id - - res = self.client.get(self.INDEX_URL + '?tab=fwtabs__rules', - tenant_id=tenant_id) + res = self.client.get(self.INDEX_URL + '?tab=fwtabs__rules') self.assertTemplateUsed(res, '%s/firewalls/details_tabs.html' % self.DASHBOARD) @@ -144,9 +129,7 @@ class FirewallTests(test.TestCase): self.mox.ReplayAll() - tenant_id = self.tenant.id - - res = self.client.get(self.INDEX_URL, tenant_id=tenant_id) + res = self.client.get(self.INDEX_URL) self.assertTemplateUsed(res, '%s/firewalls/details_tabs.html' @@ -163,10 +146,7 @@ class FirewallTests(test.TestCase): self.mox.ReplayAll() - tenant_id = self.tenant.id - - res = self.client.get(self.INDEX_URL + '?tab=fwtabs__policies', - tenant_id=tenant_id) + res = self.client.get(self.INDEX_URL + '?tab=fwtabs__policies') self.assertTemplateUsed(res, '%s/firewalls/details_tabs.html' @@ -183,10 +163,7 @@ class FirewallTests(test.TestCase): self.mox.ReplayAll() - tenant_id = self.tenant.id - - res = self.client.get(self.INDEX_URL + '?tab=fwtabs__rules', - tenant_id=tenant_id) + res = self.client.get(self.INDEX_URL + '?tab=fwtabs__rules') self.assertTemplateUsed(res, '%s/firewalls/details_tabs.html' @@ -246,7 +223,6 @@ class FirewallTests(test.TestCase): def test_add_policy_post(self): policy = self.fw_policies.first() rules = self.fw_rules.list() - tenant_id = self.tenant.id form_data = {'name': policy.name, 'description': policy.description, 'firewall_rules': policy.firewall_rules, @@ -269,7 +245,7 @@ class FirewallTests(test.TestCase): if rule.id in policy.firewall_rules: rule.firewall_policy_id = rule.policy = None api.fwaas.rule_list( - IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(rules) + IsA(http.HttpRequest)).AndReturn(rules) api.fwaas.policy_create( IsA(http.HttpRequest), **form_data).AndReturn(policy) @@ -284,14 +260,13 @@ class FirewallTests(test.TestCase): def test_add_policy_post_with_error(self): policy = self.fw_policies.first() rules = self.fw_rules.list() - tenant_id = self.tenant.id form_data = {'description': policy.description, 'firewall_rules': None, 'shared': policy.shared, 'audited': policy.audited } api.fwaas.rule_list( - IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(rules) + IsA(http.HttpRequest)).AndReturn(rules) self.mox.ReplayAll() @@ -303,7 +278,6 @@ class FirewallTests(test.TestCase): def test_add_firewall_post(self): firewall = self.firewalls.first() policies = self.fw_policies.list() - tenant_id = self.tenant.id form_data = {'name': firewall.name, 'description': firewall.description, 'firewall_policy_id': firewall.firewall_policy_id, @@ -311,7 +285,7 @@ class FirewallTests(test.TestCase): 'admin_state_up': firewall.admin_state_up } api.fwaas.policy_list( - IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(policies) + IsA(http.HttpRequest)).AndReturn(policies) api.fwaas.firewall_create( IsA(http.HttpRequest), **form_data).AndReturn(firewall) @@ -326,7 +300,6 @@ class FirewallTests(test.TestCase): def test_add_firewall_post_with_error(self): firewall = self.firewalls.first() policies = self.fw_policies.list() - tenant_id = self.tenant.id form_data = {'name': firewall.name, 'description': firewall.description, 'firewall_policy_id': None, @@ -334,7 +307,7 @@ class FirewallTests(test.TestCase): 'admin_state_up': firewall.admin_state_up } api.fwaas.policy_list( - IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(policies) + IsA(http.HttpRequest)).AndReturn(policies) self.mox.ReplayAll() @@ -497,10 +470,9 @@ class FirewallTests(test.TestCase): def test_update_firewall_get(self): firewall = self.firewalls.first() policies = self.fw_policies.list() - tenant_id = self.tenant.id api.fwaas.policy_list( - IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(policies) + IsA(http.HttpRequest)).AndReturn(policies) api.fwaas.firewall_get(IsA(http.HttpRequest), firewall.id).AndReturn(firewall) @@ -516,7 +488,6 @@ class FirewallTests(test.TestCase): 'firewall_update')}) def test_update_firewall_post(self): firewall = self.firewalls.first() - tenant_id = self.tenant.id api.fwaas.firewall_get(IsA(http.HttpRequest), firewall.id).AndReturn(firewall) @@ -528,7 +499,7 @@ class FirewallTests(test.TestCase): policies = self.fw_policies.list() api.fwaas.policy_list( - IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(policies) + IsA(http.HttpRequest)).AndReturn(policies) api.fwaas.firewall_update(IsA(http.HttpRequest), firewall.id, **data)\ .AndReturn(firewall) @@ -545,7 +516,6 @@ class FirewallTests(test.TestCase): 'rule_list', 'rule_get')}) def test_policy_insert_rule(self): policy = self.fw_policies.first() - tenant_id = self.tenant.id rules = self.fw_rules.list() new_rule_id = rules[2].id @@ -562,7 +532,7 @@ class FirewallTests(test.TestCase): rules[1].id] api.fwaas.rule_list( - IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(rules) + IsA(http.HttpRequest)).AndReturn(rules) api.fwaas.rule_get( IsA(http.HttpRequest), new_rule_id).AndReturn(rules[2]) api.fwaas.policy_insert_rule(IsA(http.HttpRequest), policy.id, **data)\ @@ -580,7 +550,6 @@ class FirewallTests(test.TestCase): 'rule_list', 'rule_get')}) def test_policy_remove_rule(self): policy = self.fw_policies.first() - tenant_id = self.tenant.id rules = self.fw_rules.list() remove_rule_id = policy.firewall_rules[0] @@ -600,7 +569,7 @@ class FirewallTests(test.TestCase): api.fwaas.policy_get(IsA(http.HttpRequest), policy.id).AndReturn(policy) api.fwaas.rule_list( - IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(rules) + IsA(http.HttpRequest)).AndReturn(rules) api.fwaas.rule_get( IsA(http.HttpRequest), remove_rule_id).AndReturn(rules[0]) api.fwaas.policy_remove_rule(IsA(http.HttpRequest), policy.id, **data)\ diff --git a/openstack_dashboard/dashboards/project/firewalls/workflows.py b/openstack_dashboard/dashboards/project/firewalls/workflows.py index c3aeb8e868..b592dc157f 100644 --- a/openstack_dashboard/dashboards/project/firewalls/workflows.py +++ b/openstack_dashboard/dashboards/project/firewalls/workflows.py @@ -140,8 +140,7 @@ class SelectRulesAction(workflows.Action): def populate_rule_choices(self, request, context): try: - tenant_id = self.request.user.tenant_id - rules = api.fwaas.rule_list(request, tenant_id=tenant_id) + rules = api.fwaas.rule_list(request) rules = sorted(rules, key=lambda rule: rule.name_or_id) rule_list = [(rule.id, rule.name_or_id) for rule in rules @@ -245,8 +244,7 @@ class AddFirewallAction(workflows.Action): firewall_policy_id_choices = [('', _("Select a Policy"))] try: - tenant_id = self.request.user.tenant_id - policies = api.fwaas.policy_list(request, tenant_id=tenant_id) + policies = api.fwaas.policy_list(request) policies = sorted(policies, key=lambda policy: policy.name) except Exception as e: exceptions.handle(