diff --git a/openstack_dashboard/dashboards/project/routers/forms.py b/openstack_dashboard/dashboards/project/routers/forms.py index 159bb7bd96..08c75456b8 100644 --- a/openstack_dashboard/dashboards/project/routers/forms.py +++ b/openstack_dashboard/dashboards/project/routers/forms.py @@ -117,9 +117,8 @@ class CreateForm(forms.SelfHandlingForm): def handle(self, request, data): try: - params = {'name': data['name']} - if 'admin_state_up' in data and data['admin_state_up']: - params['admin_state_up'] = data['admin_state_up'] + params = {'name': data['name'], + 'admin_state_up': data['admin_state_up']} if 'external_network' in data and data['external_network']: params['external_gateway_info'] = {'network_id': data['external_network']} diff --git a/openstack_dashboard/dashboards/project/routers/tests.py b/openstack_dashboard/dashboards/project/routers/tests.py index 62153c5587..dced7861f4 100644 --- a/openstack_dashboard/dashboards/project/routers/tests.py +++ b/openstack_dashboard/dashboards/project/routers/tests.py @@ -432,6 +432,41 @@ class RouterActionTests(RouterMixin, test.TestCase): self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, self.INDEX_URL) + @test.create_stubs({api.neutron: ('router_create', + 'get_feature_permission', + 'network_list', + 'is_extension_supported')}) + def test_router_create_post_with_admin_state_up(self): + router = self.routers.first() + api.neutron.get_feature_permission(IsA(http.HttpRequest), + "ext-gw-mode", + "create_router_enable_snat")\ + .AndReturn(False) + api.neutron.get_feature_permission(IsA(http.HttpRequest), + "dvr", "create")\ + .MultipleTimes().AndReturn(False) + api.neutron.get_feature_permission(IsA(http.HttpRequest), + "l3-ha", "create")\ + .MultipleTimes().AndReturn(False) + api.neutron.network_list(IsA(http.HttpRequest))\ + .AndReturn(self.networks.list()) + api.neutron.is_extension_supported(IsA(http.HttpRequest), + "router_availability_zone")\ + .AndReturn(False) + param = {'name': router.name, + 'admin_state_up': False} + api.neutron.router_create(IsA(http.HttpRequest), **param)\ + .AndReturn(router) + + self.mox.ReplayAll() + form_data = {'name': router.name, + 'admin_state_up': False} + url = reverse('horizon:%s:routers:create' % self.DASHBOARD) + res = self.client.post(url, form_data) + + self.assertNoFormErrors(res) + self.assertRedirectsNoFollow(res, self.INDEX_URL) + @test.create_stubs({api.neutron: ('router_create', 'get_feature_permission', 'network_list',