v1 dashboard: Move API wrapper related stuff to API layer
Change-Id: I1204120ec84527035a556b4d69e712ed60038f35
This commit is contained in:
parent
6de122d475
commit
ee641e6d1b
|
@ -231,7 +231,8 @@ def firewall_create(request, **kwargs):
|
|||
|
||||
@profiler.trace
|
||||
def firewall_list(request, **kwargs):
|
||||
return _firewall_list(request, expand_policy=True, **kwargs)
|
||||
return _firewall_list(request, expand_policy=True, expand_router=True,
|
||||
**kwargs)
|
||||
|
||||
|
||||
@profiler.trace
|
||||
|
@ -250,14 +251,37 @@ def firewall_list_for_tenant(request, tenant_id, **kwargs):
|
|||
return firewall_list(request, tenant_id=tenant_id, **kwargs)
|
||||
|
||||
|
||||
def _firewall_list(request, expand_policy, **kwargs):
|
||||
def _firewall_list(request, expand_policy, expand_router, **kwargs):
|
||||
firewalls = neutronclient(request).list_firewalls(
|
||||
**kwargs).get('firewalls')
|
||||
|
||||
if expand_policy and firewalls:
|
||||
policies = _policy_list(request, expand_rule=False)
|
||||
policy_dict = OrderedDict((p.id, p) for p in policies)
|
||||
for fw in firewalls:
|
||||
fw['policy'] = policy_dict.get(fw['firewall_policy_id'])
|
||||
|
||||
if expand_router and firewalls:
|
||||
if neutron.is_extension_supported(request, 'fwaasrouterinsertion'):
|
||||
filter_params = {}
|
||||
if 'tenant_id' in kwargs:
|
||||
filter_params['tenant_id'] = kwargs['tenant_id']
|
||||
routers = neutron.router_list(request, **filter_params)
|
||||
router_dict = dict((r.id, r) for r in routers)
|
||||
|
||||
def _get_router(router_id):
|
||||
try:
|
||||
return router_dict[router_id]
|
||||
except KeyError:
|
||||
return neutron.Router({'id': router_id, 'name': ''})
|
||||
|
||||
for fw in firewalls:
|
||||
fw['routers'] = [_get_router(router_id)
|
||||
for router_id in fw['router_ids']]
|
||||
else:
|
||||
for fw in firewalls:
|
||||
fw['routers'] = fw['router_ids']
|
||||
|
||||
return [Firewall(f) for f in firewalls]
|
||||
|
||||
|
||||
|
|
|
@ -17,8 +17,6 @@ from django.utils.translation import ugettext_lazy as _
|
|||
from horizon import exceptions
|
||||
from horizon import tabs
|
||||
|
||||
from openstack_dashboard import api
|
||||
|
||||
from neutron_fwaas_dashboard.api import fwaas as api_fwaas
|
||||
from neutron_fwaas_dashboard.dashboards.project.firewalls import tables
|
||||
|
||||
|
@ -76,20 +74,10 @@ class FirewallsTab(tabs.TableTab):
|
|||
tenant_id = self.request.user.tenant_id
|
||||
request = self.tab_group.request
|
||||
firewalls = api_fwaas.firewall_list_for_tenant(request, tenant_id)
|
||||
|
||||
if api.neutron.is_extension_supported(request,
|
||||
'fwaasrouterinsertion'):
|
||||
routers = api.neutron.router_list(request, tenant_id=tenant_id)
|
||||
|
||||
for fw in firewalls:
|
||||
fw.routers = [r for r in routers
|
||||
if r['id'] in fw['router_ids']]
|
||||
|
||||
except Exception:
|
||||
firewalls = []
|
||||
exceptions.handle(self.tab_group.request,
|
||||
_('Unable to retrieve firewall list.'))
|
||||
|
||||
return firewalls
|
||||
|
||||
|
||||
|
|
|
@ -75,8 +75,6 @@ class FirewallTests(test.TestCase):
|
|||
IsA(http.HttpRequest), tenant_id).AndReturn(firewalls)
|
||||
|
||||
routers = self.routers.list()
|
||||
api.neutron.router_list(
|
||||
IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(routers)
|
||||
api_fwaas.firewall_unassociated_routers_list(
|
||||
IsA(http.HttpRequest), tenant_id).\
|
||||
MultipleTimes().AndReturn(routers)
|
||||
|
@ -101,8 +99,7 @@ class FirewallTests(test.TestCase):
|
|||
'policy_list_for_tenant',
|
||||
'rule_list_for_tenant',
|
||||
'firewall_unassociated_routers_list',),
|
||||
api.neutron: ('is_extension_supported',
|
||||
'router_list',), })
|
||||
api.neutron: ('is_extension_supported',), })
|
||||
def test_index_firewalls(self):
|
||||
self.set_up_expect()
|
||||
|
||||
|
@ -125,8 +122,7 @@ class FirewallTests(test.TestCase):
|
|||
'policy_list_for_tenant',
|
||||
'rule_list_for_tenant',
|
||||
'firewall_unassociated_routers_list',),
|
||||
api.neutron: ('is_extension_supported',
|
||||
'router_list',), })
|
||||
api.neutron: ('is_extension_supported',), })
|
||||
def test_index_policies(self):
|
||||
self.set_up_expect()
|
||||
|
||||
|
@ -147,8 +143,7 @@ class FirewallTests(test.TestCase):
|
|||
'policy_list_for_tenant',
|
||||
'rule_list_for_tenant',
|
||||
'firewall_unassociated_routers_list',),
|
||||
api.neutron: ('is_extension_supported',
|
||||
'router_list',), })
|
||||
api.neutron: ('is_extension_supported',), })
|
||||
def test_index_rules(self):
|
||||
self.set_up_expect()
|
||||
|
||||
|
@ -840,14 +835,6 @@ class FirewallTests(test.TestCase):
|
|||
api.neutron: ('is_extension_supported',
|
||||
'router_list',)})
|
||||
def test_delete_firewall(self):
|
||||
api.neutron.is_extension_supported(
|
||||
IsA(http.HttpRequest), 'fwaasrouterinsertion'
|
||||
).MultipleTimes().AndReturn(True)
|
||||
|
||||
routers = self.routers.list()
|
||||
api.neutron.router_list(
|
||||
IsA(http.HttpRequest), tenant_id=self.tenant.id).AndReturn(routers)
|
||||
|
||||
fwl = self.firewalls.first()
|
||||
api_fwaas.firewall_list_for_tenant(
|
||||
IsA(http.HttpRequest), self.tenant.id).AndReturn([fwl])
|
||||
|
|
|
@ -352,7 +352,9 @@ class FwaasApiTests(test.APITestCase):
|
|||
# add router to firewall and remove router from fw.
|
||||
|
||||
@test.create_stubs({neutronclient: ('list_firewalls',
|
||||
'list_firewall_policies')})
|
||||
'list_firewall_policies'),
|
||||
api_neutron: ('is_extension_supported',
|
||||
'router_list')})
|
||||
def test_firewall_list(self):
|
||||
exp_firewalls = self.firewalls.list()
|
||||
firewalls_dict = {'firewalls': self.api_firewalls.list()}
|
||||
|
@ -360,6 +362,10 @@ class FwaasApiTests(test.APITestCase):
|
|||
|
||||
neutronclient.list_firewalls().AndReturn(firewalls_dict)
|
||||
neutronclient.list_firewall_policies().AndReturn(policies_dict)
|
||||
api_neutron.is_extension_supported(
|
||||
mox.IsA(http.HttpRequest), 'fwaasrouterinsertion').AndReturn(True)
|
||||
api_neutron.router_list(mox.IsA(http.HttpRequest)) \
|
||||
.AndReturn(self.routers.list())
|
||||
self.mox.ReplayAll()
|
||||
|
||||
ret_val = api_fwaas.firewall_list(self.request)
|
||||
|
@ -367,7 +373,9 @@ class FwaasApiTests(test.APITestCase):
|
|||
self._assert_firewall_return_value(v, d)
|
||||
|
||||
@test.create_stubs({neutronclient: ('list_firewalls',
|
||||
'list_firewall_policies')})
|
||||
'list_firewall_policies'),
|
||||
api_neutron: ('is_extension_supported',
|
||||
'router_list')})
|
||||
def test_firewall_list_for_tenant(self):
|
||||
tenant_id = self.request.user.project_id
|
||||
exp_firewalls = self.firewalls.list()
|
||||
|
@ -377,6 +385,11 @@ class FwaasApiTests(test.APITestCase):
|
|||
neutronclient.list_firewalls(tenant_id=tenant_id) \
|
||||
.AndReturn(firewalls_dict)
|
||||
neutronclient.list_firewall_policies().AndReturn(policies_dict)
|
||||
api_neutron.is_extension_supported(
|
||||
mox.IsA(http.HttpRequest), 'fwaasrouterinsertion').AndReturn(True)
|
||||
api_neutron.router_list(mox.IsA(http.HttpRequest),
|
||||
tenant_id=self.request.user.project_id) \
|
||||
.AndReturn(self.routers.list())
|
||||
self.mox.ReplayAll()
|
||||
|
||||
ret_val = api_fwaas.firewall_list_for_tenant(self.request, tenant_id)
|
||||
|
|
Loading…
Reference in New Issue