Exemplo n.º 1
0
 def test_apply_on_exit_with_errors(self):
     try:
         with ovs_lib.DeferredOVSBridge(self.br) as deferred_br:
             deferred_br.add_flow(**self.add_flow_dict1)
             deferred_br.mod_flow(**self.mod_flow_dict1)
             deferred_br.delete_flows(**self.del_flow_dict1)
             raise Exception()
     except Exception:
         self._verify_mock_call([])
     else:
         self.fail('Exception would be reraised')
Exemplo n.º 2
0
 def setUp(self, mock_get_port_ofport, mock_set_secure_mode,
           mock_create_ovs_bridge, mock_setup_base_flows,
           mock_check_ovs_firewall_restart,):
     super(TestOVSFirewallDriver, self).setUp()
     config.register_root_helper(cfg.CONF)
     cfg.CONF.set_override('security_bridge_mapping',
                           "fake_sec_br:fake_if", 'SECURITYGROUP')
     mock_get_port_ofport.return_value = 5
     self.ovs_firewall = ovs_fw.OVSFirewallDriver()
     self.ovs_firewall.sg_br = mock.Mock()
     self.mock_br = ovs_lib.DeferredOVSBridge(self.ovs_firewall.sg_br)
     self.LOG = ovs_fw.LOG
Exemplo n.º 3
0
    def test_apply_on_exit(self):
        expected_calls = [
            mock.call('add', [self.add_flow_dict1]),
            mock.call('mod', [self.mod_flow_dict1]),
            mock.call('del', [self.del_flow_dict1]),
        ]

        with ovs_lib.DeferredOVSBridge(self.br) as deferred_br:
            deferred_br.add_flow(**self.add_flow_dict1)
            deferred_br.mod_flow(**self.mod_flow_dict1)
            deferred_br.delete_flows(**self.del_flow_dict1)
            self._verify_mock_call([])
        self._verify_mock_call(expected_calls)
Exemplo n.º 4
0
 def test_cookie_passed_to_addmod(self):
     self.br = ovs_lib.OVSBridge("br-tun")
     stamp = str(self.br.default_cookie)
     expected_calls = [
         mock.call(
             'add-flows', ['-'], 'hard_timeout=0,idle_timeout=0,priority=1,'
             'cookie=' + stamp + ',actions=drop'),
         mock.call('mod-flows', ['-'], 'cookie=' + stamp + ',actions=drop')
     ]
     with mock.patch.object(self.br, 'run_ofctl') as f:
         with ovs_lib.DeferredOVSBridge(self.br) as deferred_br:
             deferred_br.add_flow(actions='drop')
             deferred_br.mod_flow(actions='drop')
         f.assert_has_calls(expected_calls)
Exemplo n.º 5
0
    def test_apply_order(self):
        expected_calls = [
            mock.call('del', [self.del_flow_dict1, self.del_flow_dict2]),
            mock.call('mod', [self.mod_flow_dict1, self.mod_flow_dict2]),
            mock.call('add', [self.add_flow_dict1, self.add_flow_dict2]),
        ]

        order = 'del', 'mod', 'add'
        with ovs_lib.DeferredOVSBridge(self.br, order=order) as deferred_br:
            deferred_br.add_flow(**self.add_flow_dict1)
            deferred_br.mod_flow(**self.mod_flow_dict1)
            deferred_br.delete_flows(**self.del_flow_dict1)
            deferred_br.delete_flows(**self.del_flow_dict2)
            deferred_br.add_flow(**self.add_flow_dict2)
            deferred_br.mod_flow(**self.mod_flow_dict2)
        self._verify_mock_call(expected_calls)
Exemplo n.º 6
0
    def test_apply_full_ordered(self):
        expected_calls = [
            mock.call('add', [self.add_flow_dict1], False),
            mock.call('mod', [self.mod_flow_dict1], False),
            mock.call('del', [self.del_flow_dict1, self.del_flow_dict2],
                      False),
            mock.call('add', [self.add_flow_dict2], False),
            mock.call('mod', [self.mod_flow_dict2], False),
        ]

        with ovs_lib.DeferredOVSBridge(self.br,
                                       full_ordered=True) as deferred_br:
            deferred_br.add_flow(**self.add_flow_dict1)
            deferred_br.mod_flow(**self.mod_flow_dict1)
            deferred_br.delete_flows(**self.del_flow_dict1)
            deferred_br.delete_flows(**self.del_flow_dict2)
            deferred_br.add_flow(**self.add_flow_dict2)
            deferred_br.mod_flow(**self.mod_flow_dict2)
        self._verify_mock_call(expected_calls)
Exemplo n.º 7
0
    def test_apply(self):
        expected_calls = [
            mock.call('add', {
                11: [self.add_flow_dict1],
                12: [self.add_flow_dict2]
            }, False),
            mock.call('mod', {None: [self.mod_flow_dict1]}, False),
            mock.call('del', {None: [self.del_flow_dict1]}, False),
        ]

        with ovs_lib.DeferredOVSBridge(self.br) as deferred_br:
            deferred_br.add_flow(flow_group_id=11, **self.add_flow_dict1)
            deferred_br.add_flow(flow_group_id=12, **self.add_flow_dict2)
            deferred_br.mod_flow(**self.mod_flow_dict1)
            deferred_br.delete_flows(**self.del_flow_dict1)
            self._verify_mock_call([])
            deferred_br.apply_flows()
            self._verify_mock_call(expected_calls)
        self._verify_mock_call(expected_calls)
Exemplo n.º 8
0
 def setUp(self):
     super(TestOVSFirewallDriver, self).setUp()
     config.register_root_helper(cfg.CONF)
     cfg.CONF.set_override('security_bridge_mapping', "br-fake:fake_if",
                           'SECURITYGROUP')
     with contextlib.nested(
             mock.patch('networking_vsphere.drivers.'
                        'ovs_firewall.OVSFirewallDriver.'
                        'setup_base_flows'),
             mock.patch('neutron.agent.common.ovs_lib.OVSBridge.'
                        'create'),
             mock.patch('neutron.agent.common.ovs_lib.OVSBridge.'
                        'set_secure_mode'),
             mock.patch(
                 'neutron.agent.common.ovs_lib.OVSBridge.'
                 'get_port_ofport',
                 return_value=5)):
         self.ovs_firewall = ovs_fw.OVSFirewallDriver()
         self.ovs_firewall.sg_br = mock.Mock()
         self.mock_br = ovs_lib.DeferredOVSBridge(self.ovs_firewall.sg_br)
         self.LOG = ovs_fw.LOG
Exemplo n.º 9
0
 def test_getattr_unallowed_attr_failure(self):
     with ovs_lib.DeferredOVSBridge(self.br) as deferred_br:
         self.assertRaises(AttributeError, getattr, deferred_br, 'failure')
Exemplo n.º 10
0
 def test_getattr_unallowed_attr(self):
     with ovs_lib.DeferredOVSBridge(self.br) as deferred_br:
         self.assertEqual(self.br.add_port, deferred_br.add_port)
Exemplo n.º 11
0
 def filter_defer_apply_on(self):
     LOG.debug("OFW defer_apply_on")
     if not self._deferred:
         self._int_br = ovs_lib.DeferredOVSBridge(self._int_br_not_deferred,
                                                  full_ordered=True)
         self._deferred = True
Exemplo n.º 12
0
 def deferred(self, **kwargs):
     # NOTE(tmorin): we can't passthrough for deferred() or else the
     # resulting DeferredOVSBridge apply_flows method would call
     # the (non-cookie-filtered) do_action_flow of the underlying bridge
     return ovs_lib.DeferredOVSBridge(self, **kwargs)