From e33cbd6d6cfcdfe893a1d1e4ddf3bef7b8c929c2 Mon Sep 17 00:00:00 2001 From: Yosef Hoffman Date: Mon, 16 May 2016 10:12:10 -0400 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20error=20if=20dhcp=5Fagent=5Fsch?= =?UTF-8?q?eduler=20not=20enabled?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit First check to see if dhcp_agent_scheduler is enabled before attempting to list dhcp agents hosting network. If it is not enabled, just return an empty list. Also updated tests as necessary. Change-Id: I5f14a5c364f8f1f362f788fb005fb773cae7b9f4 Closes-Bug: #1498277 --- .../dashboards/admin/networks/agents/tests.py | 6 ++++++ .../dashboards/admin/networks/ports/tests.py | 6 ++++++ .../dashboards/admin/networks/subnets/tests.py | 6 ++++++ .../dashboards/admin/networks/tests.py | 12 ++++++++++++ .../dashboards/admin/networks/views.py | 17 ++++++++++------- 5 files changed, 40 insertions(+), 7 deletions(-) diff --git a/openstack_dashboard/dashboards/admin/networks/agents/tests.py b/openstack_dashboard/dashboards/admin/networks/agents/tests.py index 7ff612f6f6..ef088c2e17 100644 --- a/openstack_dashboard/dashboards/admin/networks/agents/tests.py +++ b/openstack_dashboard/dashboards/admin/networks/agents/tests.py @@ -126,6 +126,9 @@ class NetworkAgentTests(test.BaseAdminViewTests): api.neutron.is_extension_supported(IsA(http.HttpRequest), 'mac-learning')\ .AndReturn(False) + api.neutron.is_extension_supported(IsA(http.HttpRequest), + 'dhcp_agent_scheduler')\ + .AndReturn(True) self.mox.ReplayAll() form_data = {'action': 'agents__delete__%s' % agent_id} @@ -155,6 +158,9 @@ class NetworkAgentTests(test.BaseAdminViewTests): api.neutron.is_extension_supported(IsA(http.HttpRequest), 'mac-learning')\ .AndReturn(False) + api.neutron.is_extension_supported(IsA(http.HttpRequest), + 'dhcp_agent_scheduler')\ + .AndReturn(True) self.mox.ReplayAll() form_data = {'action': 'agents__delete__%s' % agent_id} diff --git a/openstack_dashboard/dashboards/admin/networks/ports/tests.py b/openstack_dashboard/dashboards/admin/networks/ports/tests.py index e4d185a15d..8e1ee2fe4b 100644 --- a/openstack_dashboard/dashboards/admin/networks/ports/tests.py +++ b/openstack_dashboard/dashboards/admin/networks/ports/tests.py @@ -403,6 +403,9 @@ class NetworkPortTests(test.BaseAdminViewTests): api.neutron.is_extension_supported(IsA(http.HttpRequest), 'mac-learning')\ .AndReturn(mac_learning) + api.neutron.is_extension_supported(IsA(http.HttpRequest), + 'dhcp_agent_scheduler')\ + .AndReturn(True) self.mox.ReplayAll() form_data = {'action': 'ports__delete__%s' % port.id} @@ -442,6 +445,9 @@ class NetworkPortTests(test.BaseAdminViewTests): api.neutron.is_extension_supported(IsA(http.HttpRequest), 'mac-learning')\ .AndReturn(mac_learning) + api.neutron.is_extension_supported(IsA(http.HttpRequest), + 'dhcp_agent_scheduler')\ + .AndReturn(True) self.mox.ReplayAll() form_data = {'action': 'ports__delete__%s' % port.id} diff --git a/openstack_dashboard/dashboards/admin/networks/subnets/tests.py b/openstack_dashboard/dashboards/admin/networks/subnets/tests.py index 1a2295d7d4..43d97945cc 100644 --- a/openstack_dashboard/dashboards/admin/networks/subnets/tests.py +++ b/openstack_dashboard/dashboards/admin/networks/subnets/tests.py @@ -318,6 +318,9 @@ class NetworkSubnetTests(test.BaseAdminViewTests): api.neutron.is_extension_supported(IsA(http.HttpRequest), 'mac-learning')\ .AndReturn(mac_learning) + api.neutron.is_extension_supported(IsA(http.HttpRequest), + 'dhcp_agent_scheduler')\ + .AndReturn(True) self.mox.ReplayAll() form_data = {'action': 'subnets__delete__%s' % subnet.id} @@ -357,6 +360,9 @@ class NetworkSubnetTests(test.BaseAdminViewTests): api.neutron.is_extension_supported(IsA(http.HttpRequest), 'mac-learning')\ .AndReturn(mac_learning) + api.neutron.is_extension_supported(IsA(http.HttpRequest), + 'dhcp_agent_scheduler')\ + .AndReturn(True) self.mox.ReplayAll() form_data = {'action': 'subnets__delete__%s' % subnet.id} diff --git a/openstack_dashboard/dashboards/admin/networks/tests.py b/openstack_dashboard/dashboards/admin/networks/tests.py index c2358dc3d3..c316e79be0 100644 --- a/openstack_dashboard/dashboards/admin/networks/tests.py +++ b/openstack_dashboard/dashboards/admin/networks/tests.py @@ -107,6 +107,9 @@ class NetworkTests(test.BaseAdminViewTests): api.neutron.is_extension_supported( IsA(http.HttpRequest), 'dhcp_agent_scheduler').AndReturn(True) + api.neutron.is_extension_supported( + IsA(http.HttpRequest), + 'dhcp_agent_scheduler').AndReturn(True) self.mox.ReplayAll() @@ -149,6 +152,9 @@ class NetworkTests(test.BaseAdminViewTests): api.neutron.is_extension_supported(IsA(http.HttpRequest), 'mac-learning')\ .AndReturn(mac_learning) + api.neutron.is_extension_supported( + IsA(http.HttpRequest), + 'dhcp_agent_scheduler').AndReturn(True) self.mox.ReplayAll() @@ -194,6 +200,9 @@ class NetworkTests(test.BaseAdminViewTests): api.neutron.is_extension_supported( IsA(http.HttpRequest), 'dhcp_agent_scheduler').AndReturn(True) + api.neutron.is_extension_supported( + IsA(http.HttpRequest), + 'dhcp_agent_scheduler').AndReturn(True) self.mox.ReplayAll() @@ -242,6 +251,9 @@ class NetworkTests(test.BaseAdminViewTests): api.neutron.is_extension_supported(IsA(http.HttpRequest), 'dhcp_agent_scheduler')\ .AndReturn(True) + api.neutron.is_extension_supported(IsA(http.HttpRequest), + 'dhcp_agent_scheduler')\ + .AndReturn(True) self.mox.ReplayAll() diff --git a/openstack_dashboard/dashboards/admin/networks/views.py b/openstack_dashboard/dashboards/admin/networks/views.py index 4f70dd9d92..f11c739a34 100644 --- a/openstack_dashboard/dashboards/admin/networks/views.py +++ b/openstack_dashboard/dashboards/admin/networks/views.py @@ -131,13 +131,16 @@ class DetailView(tables.MultiTableView): def get_agents_data(self): agents = [] - try: - network_id = self.kwargs['network_id'] - agents = api.neutron.list_dhcp_agent_hosting_networks(self.request, - network_id) - except Exception: - msg = _('Unable to list dhcp agents hosting network.') - exceptions.handle(self.request, msg) + if api.neutron.is_extension_supported(self.request, + 'dhcp_agent_scheduler'): + try: + network_id = self.kwargs['network_id'] + agents = api.neutron.list_dhcp_agent_hosting_networks( + self.request, + network_id) + except Exception: + msg = _('Unable to list dhcp agents hosting network.') + exceptions.handle(self.request, msg) return agents @memoized.memoized_method