예제 #1
0
    def test_config_with_vlans(self):
        """Tests the config with tagged and native vlans"""

        vlan100 = MockVLAN('v100')
        vlan200 = MockVLAN('v200')
        vlan300 = MockVLAN('v300')

        tagged_vlans = [vlan200, vlan300]
        native_vlan = vlan100

        port_number = 1
        port_key = 'port_1'

        input_config = {'number': port_number}
        output_config = {
            'description': str(port_key),
            'number': port_number,
            'native_vlan': vlan100.name,
            'tagged_vlans': [vlan200.name, vlan300.name]
        }

        expected_config = self.default_config
        expected_config.update(input_config)
        expected_config.update(output_config)

        port = Port(port_key, 1, input_config)
        port.native_vlan = native_vlan
        port.tagged_vlans = tagged_vlans

        output_config = port.to_conf()

        self.assertEqual(output_config, expected_config)
예제 #2
0
    def _dp_parse_port(dp_id, p_identifier, port_conf, vlans):
        port = Port(p_identifier, dp_id, port_conf)

        if port.native_vlan is not None:
            v_identifier = port.native_vlan
            vlan = _get_vlan_by_identifier(dp_id, v_identifier, vlans)
            port.native_vlan = vlan
            vlan.add_untagged(port)
        port_tagged_vlans = [
            _get_vlan_by_identifier(dp_id, v_identifier, vlans) for v_identifier in port.tagged_vlans]
        port.tagged_vlans = port_tagged_vlans
        for vlan in port.tagged_vlans:
            vlan.add_tagged(port)
        return port
예제 #3
0
    def test_vlans(self):
        """Test that the vlans() method behaves correctly"""

        vlan100 = MockVLAN('v100')
        vlan200 = MockVLAN('v200')
        vlan300 = MockVLAN('v300')

        tagged_vlans = [vlan200, vlan300]
        native_vlan = vlan100

        port = Port(1, 1, {})
        port.native_vlan = native_vlan
        self.assertEqual(port.vlans(), [native_vlan])
        port.tagged_vlans = tagged_vlans
        self.assertEqual(set(port.vlans()), set([native_vlan] + tagged_vlans))
        port.native_vlan = None
        self.assertEqual(set(port.vlans()), set(tagged_vlans))
예제 #4
0
    def test_vlans(self):
        """Test that the vlans() method behaves correctly"""

        vlan100 = MockVLAN('v100')
        vlan200 = MockVLAN('v200')
        vlan300 = MockVLAN('v300')

        tagged_vlans = [vlan200, vlan300]
        native_vlan = vlan100

        port = Port(1, 1, {})
        port.native_vlan = native_vlan
        self.assertIn(native_vlan, port.vlans())
        port.tagged_vlans = tagged_vlans
        self.assertEqual(set(port.vlans()), set([native_vlan] + tagged_vlans))
        port.native_vlan = None
        self.assertEqual(set(port.vlans()), set(tagged_vlans))