def _test_add_firewall_post(self, router_extension=False): firewall = self.firewalls.first() policies = self.fw_policies.list() tenant_id = self.tenant.id if router_extension: routers = self.routers.list() firewalls = self.firewalls.list() form_data = {'name': firewall.name, 'description': firewall.description, 'firewall_policy_id': firewall.firewall_policy_id, 'admin_state_up': firewall.admin_state_up } if router_extension: form_data['router_ids'] = firewall.router_ids api.neutron.router_list( IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(routers) api_fwaas.firewall_list_for_tenant( IsA(http.HttpRequest), tenant_id=tenant_id).AndReturn(firewalls) api.neutron.is_extension_supported( IsA(http.HttpRequest), 'fwaasrouterinsertion').AndReturn(router_extension) api_fwaas.policy_list_for_tenant( IsA(http.HttpRequest), tenant_id).AndReturn(policies) api_fwaas.firewall_create( IsA(http.HttpRequest), **form_data).AndReturn(firewall) self.mox.ReplayAll() res = self.client.post(reverse(self.ADDFIREWALL_PATH), 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 set_up_expect(self, fwaas_router_extension=True): # retrieve rules tenant_id = self.tenant.id api.neutron.is_extension_supported( IsA(http.HttpRequest), 'fwaasrouterinsertion' ).MultipleTimes().AndReturn(fwaas_router_extension) api_fwaas.rule_list_for_tenant( IsA(http.HttpRequest), tenant_id).AndReturn(self.fw_rules.list()) # retrieves policies policies = self.fw_policies.list() api_fwaas.policy_list_for_tenant( IsA(http.HttpRequest), tenant_id).AndReturn(policies) # retrieves firewalls firewalls = self.firewalls.list() api_fwaas.firewall_list_for_tenant( 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)
def set_up_expect_with_exception(self): tenant_id = self.tenant.id api.neutron.is_extension_supported(IsA( http.HttpRequest), 'fwaasrouterinsertion').AndReturn(True) api_fwaas.rule_list_for_tenant(IsA( http.HttpRequest), tenant_id).AndRaise(self.exceptions.neutron) api_fwaas.policy_list_for_tenant(IsA( http.HttpRequest), tenant_id).AndRaise(self.exceptions.neutron) api_fwaas.firewall_list_for_tenant(IsA( http.HttpRequest), tenant_id).AndRaise(self.exceptions.neutron)
def test_delete_policy(self): api.neutron.is_extension_supported( IsA(http.HttpRequest), 'fwaasrouterinsertion').AndReturn(True) policy = self.fw_policies.first() api_fwaas.policy_list_for_tenant( IsA(http.HttpRequest), self.tenant.id).AndReturn(self.fw_policies.list()) api_fwaas.policy_delete(IsA(http.HttpRequest), policy.id) self.mox.ReplayAll() form_data = {"action": "policiestable__deletepolicy__%s" % policy.id} res = self.client.post(self.INDEX_URL, form_data) self.assertNoFormErrors(res)
def test_update_firewall_get(self): firewall = self.firewalls.first() policies = self.fw_policies.list() tenant_id = self.tenant.id api_fwaas.policy_list_for_tenant( IsA(http.HttpRequest), tenant_id).AndReturn(policies) api_fwaas.firewall_get(IsA(http.HttpRequest), firewall.id).AndReturn(firewall) self.mox.ReplayAll() res = self.client.get( reverse(self.UPDATEFIREWALL_PATH, args=(firewall.id,))) self.assertTemplateUsed(res, 'project/firewalls/updatefirewall.html')
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, 'admin_state_up': firewall.admin_state_up } api.neutron.is_extension_supported( IsA(http.HttpRequest), 'fwaasrouterinsertion').AndReturn(False) api_fwaas.policy_list_for_tenant( IsA(http.HttpRequest), tenant_id).AndReturn(policies) self.mox.ReplayAll() res = self.client.post(reverse(self.ADDFIREWALL_PATH), form_data) self.assertFormErrors(res, 1)
def get_policiestable_data(self): try: tenant_id = self.request.user.tenant_id request = self.tab_group.request policies = api_fwaas.policy_list_for_tenant(request, tenant_id) except Exception: policies = [] exceptions.handle(self.tab_group.request, _('Unable to retrieve policies list.')) return policies
def test_policy_list_for_tenant(self): tenant_id = self.request.user.project_id exp_policies = self.fw_policies.list() policies_dict = {'firewall_policies': self.api_fw_policies.list()} rules_dict = {'firewall_rules': self.api_fw_rules.list()} neutronclient.list_firewall_policies(tenant_id=tenant_id, shared=False).AndReturn( {'firewall_policies': []}) neutronclient.list_firewall_policies( shared=True).AndReturn(policies_dict) neutronclient.list_firewall_rules().AndReturn(rules_dict) self.mox.ReplayAll() ret_val = api_fwaas.policy_list_for_tenant(self.request, tenant_id) for (v, d) in zip(ret_val, exp_policies): self._assert_policy_return_value(v, d)
def __init__(self, request, *args, **kwargs): super(AddFirewallAction, self).__init__(request, *args, **kwargs) firewall_policy_id_choices = [('', _("Select a policy"))] try: tenant_id = self.request.user.tenant_id policies = api_fwaas.policy_list_for_tenant(request, tenant_id) policies = sorted(policies, key=lambda policy: policy.name) except Exception as e: exceptions.handle( request, _('Unable to retrieve policy list (%(error)s).') % {'error': str(e)}) policies = [] for p in policies: firewall_policy_id_choices.append((p.id, p.name_or_id)) self.fields['firewall_policy_id'].choices = firewall_policy_id_choices
def __init__(self, request, *args, **kwargs): super(UpdateFirewall, self).__init__(request, *args, **kwargs) try: tenant_id = self.request.user.tenant_id policies = api_fwaas.policy_list_for_tenant(request, tenant_id) policies = sorted(policies, key=lambda policy: policy.name) except Exception: exceptions.handle(request, _('Unable to retrieve policy list.')) policies = [] policy_id = kwargs['initial']['firewall_policy_id'] policy_name = [p.name for p in policies if p.id == policy_id][0] firewall_policy_id_choices = [(policy_id, policy_name)] for p in policies: if p.id != policy_id: firewall_policy_id_choices.append((p.id, p.name_or_id)) self.fields['firewall_policy_id'].choices = firewall_policy_id_choices
def test_policy_list_for_tenant(self): tenant_id = self.request.user.project_id exp_policies = self.fw_policies.list() policies_dict = {'firewall_policies': self.api_fw_policies.list()} rules_dict = {'firewall_rules': self.api_fw_rules.list()} self.mock_list_firewall_policies.side_effect = [ {'firewall_policies': []}, policies_dict, ] self.mock_list_firewall_rules.return_value = rules_dict ret_val = api_fwaas.policy_list_for_tenant(self.request, tenant_id) for (v, d) in zip(ret_val, exp_policies): self._assert_policy_return_value(v, d) self.assertEqual(2, self.mock_list_firewall_policies.call_count) self.mock_list_firewall_policies.assert_has_calls([ mock.call(tenant_id=tenant_id, shared=False), mock.call(shared=True), ]) self.mock_list_firewall_rules.assert_called_once_with()