def test_firewall_add_router(self): tenant_id = self.tenant.id firewall = self.firewalls.first() routers = self.routers.list() existing_router_ids = firewall.router_ids add_router_ids = [routers[1].id] form_data = {'router_ids': add_router_ids} post_data = {'router_ids': add_router_ids + existing_router_ids} api_fwaas.firewall_get( IsA(http.HttpRequest), firewall.id).AndReturn(firewall) api_fwaas.firewall_unassociated_routers_list( IsA(http.HttpRequest), tenant_id).AndReturn(routers) firewall.router_ids = [add_router_ids, existing_router_ids] api_fwaas.firewall_update( IsA(http.HttpRequest), firewall.id, **post_data).AndReturn(firewall) self.mox.ReplayAll() res = self.client.post( reverse(self.ADDROUTER_PATH, args=(firewall.id,)), form_data) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, str(self.INDEX_URL))
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) data = {'name': 'new name', 'description': 'new desc', 'firewall_policy_id': firewall.firewall_policy_id, 'admin_state_up': False } policies = self.fw_policies.list() api_fwaas.policy_list_for_tenant( IsA(http.HttpRequest), tenant_id).AndReturn(policies) api_fwaas.firewall_update(IsA(http.HttpRequest), firewall.id, **data)\ .AndReturn(firewall) self.mox.ReplayAll() res = self.client.post( reverse(self.UPDATEFIREWALL_PATH, args=(firewall.id,)), data) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, str(self.INDEX_URL))
def test_firewall_update(self): firewall = self.firewalls.first() firewall_dict = self.api_firewalls.first() firewall.name = 'new name' firewall.description = 'new desc' firewall.admin_state_up = False firewall_dict['name'] = 'new name' firewall_dict['description'] = 'new desc' firewall_dict['admin_state_up'] = False form_data = { 'name': firewall.name, 'description': firewall.description, 'admin_state_up': firewall.admin_state_up } form_dict = {'firewall': form_data} ret_dict = {'firewall': firewall_dict} neutronclient.update_firewall(firewall.id, form_dict).AndReturn(ret_dict) self.mox.ReplayAll() ret_val = api_fwaas.firewall_update(self.request, firewall.id, **form_data) self.assertIsInstance(ret_val, api_fwaas.Firewall) self.assertEqual(firewall.name, ret_val.name) self.assertTrue(ret_val.id)
def handle(self, request, context): firewall_id = self.initial['firewall_id'] firewall_name_or_id = self.initial['name'] or firewall_id try: body = {'router_ids': self.get_new_router_ids(context)} firewall = api_fwaas.firewall_update(request, firewall_id, **body) msg = (_('Router(s) was successfully removed from firewall ' '%(firewall)s.') % { 'firewall': firewall_name_or_id }) messages.success(request, msg) return firewall except Exception as e: LOG.error( 'Failed to remove router(s) from firewall %(id)s: ' '%(reason)s', { 'id': firewall_id, 'reason': e }) msg = (_('Failed to remove router(s) from firewall %(name)s: ' '%(reason)s') % { 'name': firewall_name_or_id, 'reason': e }) redirect = reverse(self.failure_url) exceptions.handle(request, msg, redirect=redirect)
def test_firewall_update(self): firewall = self.firewalls.first() firewall_dict = self.api_firewalls.first() firewall.name = 'new name' firewall.description = 'new desc' firewall.admin_state_up = False firewall_dict['name'] = 'new name' firewall_dict['description'] = 'new desc' firewall_dict['admin_state_up'] = False form_data = {'name': firewall.name, 'description': firewall.description, 'admin_state_up': firewall.admin_state_up } form_dict = {'firewall': form_data} ret_dict = {'firewall': firewall_dict} self.mock_update_firewall.return_value = ret_dict ret_val = api_fwaas.firewall_update(self.request, firewall.id, **form_data) self.assertIsInstance(ret_val, api_fwaas.Firewall) self.assertEqual(firewall.name, ret_val.name) self.assertTrue(ret_val.id) self.mock_update_firewall.assert_called_once_with(firewall.id, form_dict)
def test_firewall_remove_router(self): firewall = self.firewalls.first() tenant_id = self.tenant.id routers = self.routers.list() existing_router_ids = firewall.router_ids form_data = {'router_ids': existing_router_ids} api_fwaas.firewall_get(IsA(http.HttpRequest), firewall.id).AndReturn(firewall) api.neutron.router_list(IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(routers) firewall.router_ids = [] api_fwaas.firewall_update(IsA(http.HttpRequest), firewall.id, **form_data).AndReturn(firewall) self.mox.ReplayAll() res = self.client.post( reverse(self.REMOVEROUTER_PATH, args=(firewall.id, )), form_data) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, str(self.INDEX_URL))
def handle(self, request, context): firewall_id = self.initial['firewall_id'] name_or_id = context.get('name') or firewall_id try: firewall = api_fwaas.firewall_update(request, firewall_id, **context) msg = _('Firewall %s was successfully updated.') % name_or_id messages.success(request, msg) return firewall except Exception as e: LOG.error('Failed to update firewall %(id)s: %(reason)s', { 'id': firewall_id, 'reason': e }) msg = (_('Failed to update firewall %(name)s: %(reason)s') % { 'name': name_or_id, 'reason': e }) redirect = reverse(self.failure_url) exceptions.handle(request, msg, redirect=redirect)