예제 #1
0
    def setUp(self):
        self._api = MagicMock()
        self._context = MagicMock()
        self._router = MagicMock()
        self._mn_router_port = MagicMock()
        self._router._mn_resource.add_port.return_value = (
            self._mn_router_port)

        self._router_port = RouterPort(
            self._api, self._context, self._router, {
                'id': 2,
                'type': 'interior',
                'ipv4_addr': '172.16.2.254/24',
                'links_to': {
                    'device': 'bridge-000-001',
                    'port_id': 1
                }
            })
        self._router_port.build()
        self._chain = MagicMock()
        self._chain._mn_resource.get_id.return_value = 'chain_0'
예제 #2
0
    def setUp(self):
        self._api = MagicMock()
        self._context = MagicMock()
        self._router = MagicMock()
        self._mn_router_port = MagicMock()
        self._router._mn_resource.add_port.return_value = (
                self._mn_router_port)

        self._router_port = RouterPort(self._api,
                                       self._context,
                                       self._router,
                                       {'id': 2,
                                        'type': 'interior',
                                        'ipv4_addr': '172.16.2.254/24',
                                        'links_to': {'device': 'bridge-000-001',
                                                     'port_id': 1}})
        self._router_port.build()
        self._chain = MagicMock()
        self._chain._mn_resource.get_id.return_value = 'chain_0'
예제 #3
0
 def add_port(self, port):
     """create and add port from dictionary data"""
     port_obj = RouterPort(self._api, self._context, self, port)
     port_obj.build()
     self._ports[port['id']] = port_obj
예제 #4
0
 def add_port(self, port):
     """create and add port from dictionary data"""
     port_obj = RouterPort(self._api, self._context, self, port)
     port_obj.build()
     self._ports[port['id']] = port_obj
예제 #5
0
class RouterPortTest(unittest.TestCase):
    def setUp(self):
        self._api = MagicMock()
        self._context = MagicMock()
        self._router = MagicMock()
        self._mn_router_port = MagicMock()
        self._router._mn_resource.add_port.return_value = (
            self._mn_router_port)

        self._router_port = RouterPort(
            self._api, self._context, self._router, {
                'id': 2,
                'type': 'interior',
                'ipv4_addr': '172.16.2.254/24',
                'links_to': {
                    'device': 'bridge-000-001',
                    'port_id': 1
                }
            })
        self._router_port.build()
        self._chain = MagicMock()
        self._chain._mn_resource.get_id.return_value = 'chain_0'

    def test_router_port_on_build_no_filters(self):
        """Tests that no filters are specified on build."""
        self.assertEqual(None, self._router_port._inbound_filter)
        self.assertEqual(None, self._router_port._outbound_filter)

    def test_set_inbound_filter(self):
        """Tests if setting an in-bound filter to a router port dynamically
        updates the topology data for the router port resource.
        """

        # Sets a new rule chain. The RouterPort resource data must be updated.
        self._router_port.set_inbound_filter(self._chain)
        self.assertEqual(self._chain, self._router_port.get_inbound_filter())
        self._mn_router_port.inbound_filter_id.assert_called_with('chain_0')
        self._mn_router_port.update.assert_called_with()

        # Deletes the rule chain. The router resource data must be updated.
        self._router_port.set_inbound_filter(None)
        self.assertEqual(None, self._router_port.get_inbound_filter())
        self._mn_router_port.inbound_filter_id.assert_called_with(None)
        self._mn_router_port.update.assert_called_with()

    def test_set_outbound_filter(self):
        """Tests if setting an out-bound filter to a router port dynamically
        updates the topology data for the router port resource.
        """

        # Sets a new rule chain. The RouterPort resource data must be updated.
        self._router_port.set_outbound_filter(self._chain)
        self.assertEqual(self._chain, self._router_port.get_outbound_filter())
        self._mn_router_port.outbound_filter_id.assert_called_with('chain_0')
        self._mn_router_port.update.assert_called_with()

        # Deletes the rule chain. The router resource data must be updated.
        self._router_port.set_outbound_filter(None)
        self.assertEqual(None, self._router_port.get_outbound_filter())
        self._mn_router_port.outbound_filter_id.assert_called_with(None)
        self._mn_router_port.update.assert_called_with()

    def test_link(self):
        mock_peer_port = MagicMock()
        mock_peer_port._mn_resource.get_id.return_value = 333

        self._router_port.link(mock_peer_port)
        self._mn_router_port.link.assert_called_with(333)

    def test_links_to_register_link(self):
        self._context.register_link.assert_called_with(self._router_port, {
            'device': 'bridge-000-001',
            'port_id': 1
        })

    def test_get_port_id(self):
        self.assertEqual(2, self._router_port.get_id())

    def test_get_device_name(self):
        self._router._get_name.return_value = 'router-000-001'
        self.assertEqual('router-000-001', self._router_port.get_device_name())
예제 #6
0
class RouterPortTest(unittest.TestCase):

    def setUp(self):
        self._api = MagicMock()
        self._context = MagicMock()
        self._router = MagicMock()
        self._mn_router_port = MagicMock()
        self._router._mn_resource.add_port.return_value = (
                self._mn_router_port)

        self._router_port = RouterPort(self._api,
                                       self._context,
                                       self._router,
                                       {'id': 2,
                                        'type': 'interior',
                                        'ipv4_addr': '172.16.2.254/24',
                                        'links_to': {'device': 'bridge-000-001',
                                                     'port_id': 1}})
        self._router_port.build()
        self._chain = MagicMock()
        self._chain._mn_resource.get_id.return_value = 'chain_0'

    def test_router_port_on_build_no_filters(self):
        """Tests that no filters are specified on build."""
        self.assertEqual(None, self._router_port._inbound_filter)
        self.assertEqual(None, self._router_port._outbound_filter)

    def test_set_inbound_filter(self):
        """Tests if setting an in-bound filter to a router port dynamically
        updates the topology data for the router port resource.
        """

        # Sets a new rule chain. The RouterPort resource data must be updated.
        self._router_port.set_inbound_filter(self._chain)
        self.assertEqual(self._chain, self._router_port.get_inbound_filter())
        self._mn_router_port.inbound_filter_id.assert_called_with('chain_0')
        self._mn_router_port.update.assert_called_with()

        # Deletes the rule chain. The router resource data must be updated.
        self._router_port.set_inbound_filter(None)
        self.assertEqual(None, self._router_port.get_inbound_filter())
        self._mn_router_port.inbound_filter_id.assert_called_with(None)
        self._mn_router_port.update.assert_called_with()

    def test_set_outbound_filter(self):
        """Tests if setting an out-bound filter to a router port dynamically
        updates the topology data for the router port resource.
        """

        # Sets a new rule chain. The RouterPort resource data must be updated.
        self._router_port.set_outbound_filter(self._chain)
        self.assertEqual(self._chain, self._router_port.get_outbound_filter())
        self._mn_router_port.outbound_filter_id.assert_called_with('chain_0')
        self._mn_router_port.update.assert_called_with()

        # Deletes the rule chain. The router resource data must be updated.
        self._router_port.set_outbound_filter(None)
        self.assertEqual(None, self._router_port.get_outbound_filter())
        self._mn_router_port.outbound_filter_id.assert_called_with(None)
        self._mn_router_port.update.assert_called_with()

    def test_link(self):
        mock_peer_port = MagicMock()
        mock_peer_port._mn_resource.get_id.return_value = 333

        self._router_port.link(mock_peer_port)
        self._mn_router_port.link.assert_called_with(333)

    def test_links_to_register_link(self):
        self._context.register_link.assert_called_with(
                self._router_port, {'device': 'bridge-000-001', 'port_id': 1})

    def test_get_port_id(self):
        self.assertEqual(2, self._router_port.get_id())

    def test_get_device_name(self):
        self._router._get_name.return_value = 'router-000-001'
        self.assertEqual('router-000-001', self._router_port.get_device_name())