36
36
self.addCleanup(self.utils_exec_p.stop)
37
37
self.iptables_cls_p = mock.patch(
38
38
'neutron.agent.linux.iptables_manager.IptablesManager')
39
iptables_cls = self.iptables_cls_p.start()
39
self.iptables_cls = self.iptables_cls_p.start()
40
40
self.addCleanup(self.iptables_cls_p.stop)
41
41
self.iptables_inst = mock.Mock()
42
42
self.v4filter_inst = mock.Mock()
45
45
self.v6filter_inst.chains = []
46
46
self.iptables_inst.ipv4 = {'filter': self.v4filter_inst}
47
47
self.iptables_inst.ipv6 = {'filter': self.v6filter_inst}
48
iptables_cls.return_value = self.iptables_inst
48
self.iptables_cls.return_value = self.iptables_inst
49
49
cfg.CONF.set_override('interface_driver',
50
50
'neutron.agent.linux.interface.NullDriver')
51
self.router_info_inst = mock.Mock()
52
self.router_info_inst.iptables_manager = self.iptables_inst
51
cfg.CONF.set_override('root_helper',
54
54
self.metering = iptables_driver.IptablesMeteringDriver('metering',
57
def test_root_helper(self):
58
routers = [{'_metering_labels': [
59
{'id': 'c5df2fe5-c600-4a2a-b2f4-c0fb6df73c83',
61
'admin_state_up': True,
62
'gw_port_id': '7d411f48-ecc7-45e0-9ece-3b5bdb54fcee',
63
'id': '473ec392-1711-44e3-b008-3251ccfc5099',
66
'tenant_id': '6c5f5d2a1fa2441e88e35422926f48e8'}]
67
self.metering.add_metering_label(None, routers)
69
self.iptables_cls.assert_called_with(root_helper='fake_sudo',
57
73
def test_add_metering_label(self):
58
74
routers = [{'_metering_labels': [
59
75
{'id': 'c5df2fe5-c600-4a2a-b2f4-c0fb6df73c83',
128
144
call.add_rule('neutron-meter-r-eeef45da-c60',
129
'-i qg-7d411f48-ec -d 20.0.0.0/24 -j '
130
'neutron-meter-l-eeef45da-c60',
131
wrap=False, top=False)]
145
'-i qg-7d411f48-ec -d 20.0.0.0/24 -j RETURN',
146
wrap=False, top=True)]
133
148
self.v4filter_inst.assert_has_calls(calls)
178
193
wrap=False, top=False),
179
194
call.empty_chain('neutron-meter-r-c5df2fe5-c60', wrap=False),
180
195
call.add_rule('neutron-meter-r-c5df2fe5-c60',
181
'-o qg-6d411f48-ec -d 10.0.0.0/24 -j '
182
'neutron-meter-l-c5df2fe5-c60',
183
wrap=False, top=False),
196
'-o qg-6d411f48-ec -d 10.0.0.0/24 -j RETURN',
197
wrap=False, top=True),
184
198
call.add_rule('neutron-meter-r-c5df2fe5-c60',
185
199
'-i qg-6d411f48-ec -d 20.0.0.0/24 -j '
186
200
'neutron-meter-l-c5df2fe5-c60',
344
358
call.add_rule('neutron-meter-r-eeef45da-c60',
345
'-i qg-7d411f48-ec -d 20.0.0.0/24 -j '
346
'neutron-meter-l-eeef45da-c60',
347
wrap=False, top=False),
359
'-i qg-7d411f48-ec -d 20.0.0.0/24 -j RETURN',
360
wrap=False, top=True),
348
361
call.remove_chain('neutron-meter-l-c5df2fe5-c60', wrap=False),
349
362
call.remove_chain('neutron-meter-r-c5df2fe5-c60', wrap=False),
350
363
call.add_chain('neutron-meter-l-c5df2fe5-c60', wrap=False),