示例#1
0
    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))
示例#2
0
    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)
示例#3
0
 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)
示例#4
0
 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
示例#5
0
    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)
示例#6
0
    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)
示例#7
0
    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
示例#8
0
    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'])
示例#9
0
 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)