def test_add_firewall_group_post(self): firewall_group = self.firewall_groups_v2.first() policies = self.fw_policies_v2.list() tenant_id = self.tenant.id form_data = { 'name': firewall_group.name, 'description': firewall_group.description, 'ingress_firewall_policy_id': firewall_group.ingress_firewall_policy_id, 'egress_firewall_policy_id': firewall_group.egress_firewall_policy_id, 'admin_state_up': firewall_group.admin_state_up } api_fwaas_v2.policy_list_for_tenant(IsA(http.HttpRequest), tenant_id).AndReturn(policies) api_fwaas_v2.fwg_port_list_for_tenant(IsA(http.HttpRequest), tenant_id).AndReturn([]) api_fwaas_v2.firewall_group_create(IsA( http.HttpRequest), **form_data).AndReturn(firewall_group) self.mox.ReplayAll() res = self.client.post(reverse(self.ADDFIREWALLGROUP_PATH), form_data) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, str(self.INDEX_URL))
def test_fwg_port_list_for_tenant_no_match(self): tenant_id = self.request.user.project_id dummy_ports = { 'ports': [ { 'name': 'port-3', 'device_owner': 'network:router_gateway' }, { 'name': 'port-4', 'device_owner': 'network:dhcp' }, ] } self.mock_list_ports.return_value = dummy_ports self.mock_list_fwaas_firewall_groups.return_value = \ {'firewall_groups': []} ports = api_fwaas_v2.fwg_port_list_for_tenant(self.request, tenant_id) self.assertEqual([], ports) self.mock_list_ports.assert_called_once_with(tenant_id=tenant_id) self.mock_list_fwaas_firewall_groups.assert_called_once_with( tenant_id=tenant_id)
def test_fwg_port_list_for_tenant_no_ports(self): tenant_id = self.request.user.project_id neutronclient.list_ports(tenant_id=tenant_id).AndReturn({'ports': []}) neutronclient.list_fwaas_firewall_groups( tenant_id=tenant_id).AndReturn({'firewall_groups': []}) self.mox.ReplayAll() ports = api_fwaas_v2.fwg_port_list_for_tenant(self.request, tenant_id) self.assertEqual([], ports)
def populate_port_choices(self, request, context): try: tenant_id = self.request.user.tenant_id ports = api_fwaas_v2.fwg_port_list_for_tenant(request, tenant_id) ports = sorted(ports, key=attrgetter('name_or_id')) port_list = [(port.id, port.name_or_id) for port in ports] except Exception as e: port_list = [] exceptions.handle(request, _('Unable to retrieve ports (%s).') % e) return port_list
def test_fwg_port_list_for_tenant_no_ports(self): tenant_id = self.request.user.project_id self.mock_list_ports.return_value = {'ports': []} self.mock_list_fwaas_firewall_groups.return_value = \ {'firewall_groups': []} ports = api_fwaas_v2.fwg_port_list_for_tenant(self.request, tenant_id) self.assertEqual([], ports) self.mock_list_ports.assert_called_once_with(tenant_id=tenant_id) self.mock_list_fwaas_firewall_groups.assert_called_once_with( tenant_id=tenant_id)
def test_fwg_port_list_for_tenant(self): tenant_id = self.request.user.project_id router_port = { 'id': 'id-1', 'name': 'port-1', 'device_owner': 'network:router_interface' } vm_port1 = { 'id': 'id-vm_port-1', 'name': 'port-2', 'device_owner': 'compute:nova' } vm_port2 = { 'id': 'id-vm_port-2', 'name': 'port-2', 'device_owner': 'compute:nova' } gateway_port = { 'id': 'id-3', 'name': 'port-3', 'device_owner': 'network:router_gateway' } dhcp_port = { 'id': 'id-4', 'name': 'port-4', 'device_owner': 'network:dhcp' } dummy_ports = { 'ports': [ router_port, vm_port1, vm_port2, gateway_port, dhcp_port, ] } self.mock_list_ports.return_value = dummy_ports self.mock_list_fwaas_firewall_groups.return_value = \ {'firewall_groups': []} ports = api_fwaas_v2.fwg_port_list_for_tenant(self.request, tenant_id) self.assertEqual(router_port['id'], ports[0]['id']) self.assertEqual(vm_port1['id'], ports[1]['id']) self.assertEqual(vm_port2['id'], ports[2]['id']) self.mock_list_ports.assert_called_once_with(tenant_id=tenant_id) self.mock_list_fwaas_firewall_groups.assert_called_once_with( tenant_id=tenant_id)
def __init__(self, request, *args, **kwargs): super(AddPort, self).__init__(request, *args, **kwargs) try: tenant_id = self.request.user.tenant_id ports = api_fwaas_v2.fwg_port_list_for_tenant(request, tenant_id) initial_ports = self.initial['ports'] filtered_ports = [port for port in ports if port.id not in initial_ports] filtered_ports = sorted(filtered_ports, key=attrgetter('name')) except Exception: exceptions.handle(request, _('Unable to retrieve port list.')) ports = [] current_choices = [(p.id, p.name_or_id) for p in filtered_ports] self.fields['port_id'].choices = current_choices
def test_fwg_port_list_for_tenant(self): tenant_id = self.request.user.project_id router_port = { 'id': 'id-1', 'name': 'port-1', 'device_owner': 'network:router_interface' } vm_port1 = { 'id': 'id-vm_port-1', 'name': 'port-2', 'device_owner': 'compute:nova' } vm_port2 = { 'id': 'id-vm_port-2', 'name': 'port-2', 'device_owner': 'compute:nova' } gateway_port = { 'id': 'id-3', 'name': 'port-3', 'device_owner': 'network:router_gateway' } dhcp_port = { 'id': 'id-4', 'name': 'port-4', 'device_owner': 'network:dhcp' } dummy_ports = { 'ports': [ router_port, vm_port1, vm_port2, gateway_port, dhcp_port, ] } neutronclient.list_ports(tenant_id=tenant_id).AndReturn(dummy_ports) neutronclient.list_fwaas_firewall_groups( tenant_id=tenant_id).AndReturn({'firewall_groups': []}) self.mox.ReplayAll() ports = api_fwaas_v2.fwg_port_list_for_tenant(self.request, tenant_id) self.assertEqual(router_port['id'], ports[0]['id']) self.assertEqual(vm_port1['id'], ports[1]['id']) self.assertEqual(vm_port2['id'], ports[2]['id'])
def test_fwg_port_list_for_tenant_no_match(self): tenant_id = self.request.user.project_id dummy_ports = { 'ports': [ { 'name': 'port-3', 'device_owner': 'network:router_gateway' }, { 'name': 'port-4', 'device_owner': 'network:dhcp' }, ] } neutronclient.list_ports(tenant_id=tenant_id).AndReturn(dummy_ports) neutronclient.list_fwaas_firewall_groups( tenant_id=tenant_id).AndReturn({'firewall_groups': []}) self.mox.ReplayAll() ports = api_fwaas_v2.fwg_port_list_for_tenant(self.request, tenant_id) self.assertEqual([], ports)