diff --git a/neutron/services/metering/drivers/iptables/iptables_driver.py b/neutron/services/metering/drivers/iptables/iptables_driver.py index 733e9efb6c2..7a8c8fd0a8c 100644 --- a/neutron/services/metering/drivers/iptables/iptables_driver.py +++ b/neutron/services/metering/drivers/iptables/iptables_driver.py @@ -176,9 +176,9 @@ class IptablesMeteringDriver(abstract_driver.MeteringAbstractDriver): def _prepare_rule(self, ext_dev, rule, label_chain): remote_ip = rule['remote_ip_prefix'] if rule['direction'] == 'egress': - dir_opt = '-o %s -s %s' % (ext_dev, remote_ip) + dir_opt = '-o %s -d %s' % (ext_dev, remote_ip) else: - dir_opt = '-i %s -d %s' % (ext_dev, remote_ip) + dir_opt = '-i %s -s %s' % (ext_dev, remote_ip) if rule['excluded']: ipt_rule = '%s -j RETURN' % dir_opt diff --git a/neutron/tests/unit/services/metering/drivers/test_iptables.py b/neutron/tests/unit/services/metering/drivers/test_iptables.py index 91434653cc4..91858e46417 100644 --- a/neutron/tests/unit/services/metering/drivers/test_iptables.py +++ b/neutron/tests/unit/services/metering/drivers/test_iptables.py @@ -137,7 +137,7 @@ class IptablesDriverTestCase(base.BaseTestCase): '', wrap=False), mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 10.0.0.0/24' + '-i qg-6d411f48-ec -s 10.0.0.0/24' ' -j neutron-meter-l-c5df2fe5-c60', wrap=False, top=False), mock.call.add_chain('neutron-meter-l-eeef45da-c60', @@ -151,7 +151,7 @@ class IptablesDriverTestCase(base.BaseTestCase): '', wrap=False), mock.call.add_rule('neutron-meter-r-eeef45da-c60', - '-o qg-7d411f48-ec -s 20.0.0.0/24' + '-o qg-7d411f48-ec -d 20.0.0.0/24' ' -j neutron-meter-l-eeef45da-c60', wrap=False, top=False)] @@ -176,7 +176,7 @@ class IptablesDriverTestCase(base.BaseTestCase): '', wrap=False), mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 10.0.0.0/24' + '-i qg-6d411f48-ec -s 10.0.0.0/24' ' -j neutron-meter-l-c5df2fe5-c60', wrap=False, top=False), mock.call.add_chain('neutron-meter-l-eeef45da-c60', @@ -190,7 +190,7 @@ class IptablesDriverTestCase(base.BaseTestCase): '', wrap=False), mock.call.add_rule('neutron-meter-r-eeef45da-c60', - '-i qg-7d411f48-ec -d 20.0.0.0/24' + '-i qg-7d411f48-ec -s 20.0.0.0/24' ' -j RETURN', wrap=False, top=True)] @@ -227,17 +227,17 @@ class IptablesDriverTestCase(base.BaseTestCase): '', wrap=False), mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 10.0.0.0/24' + '-i qg-6d411f48-ec -s 10.0.0.0/24' ' -j neutron-meter-l-c5df2fe5-c60', wrap=False, top=False), mock.call.empty_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-o qg-6d411f48-ec -s 10.0.0.0/24' + '-o qg-6d411f48-ec -d 10.0.0.0/24' ' -j RETURN', wrap=False, top=True), mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 20.0.0.0/24 -j ' + '-i qg-6d411f48-ec -s 20.0.0.0/24 -j ' 'neutron-meter-l-c5df2fe5-c60', wrap=False, top=False)] @@ -269,17 +269,17 @@ class IptablesDriverTestCase(base.BaseTestCase): '', wrap=False), mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 10.0.0.0/24' + '-i qg-6d411f48-ec -s 10.0.0.0/24' ' -j neutron-meter-l-c5df2fe5-c60', wrap=False, top=False), mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 20.0.0.0/24' + '-i qg-6d411f48-ec -s 20.0.0.0/24' ' -j neutron-meter-l-c5df2fe5-c60', wrap=False, top=False), mock.call.empty_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 10.0.0.0/24' + '-i qg-6d411f48-ec -s 10.0.0.0/24' ' -j neutron-meter-l-c5df2fe5-c60', wrap=False, top=False)] @@ -291,11 +291,11 @@ class IptablesDriverTestCase(base.BaseTestCase): self.metering.add_metering_label_rule(None, new_routers_rules) calls = [ mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 30.0.0.0/24' + '-i qg-6d411f48-ec -s 30.0.0.0/24' ' -j neutron-meter-l-c5df2fe5-c60', wrap=False, top=False), mock.call.add_rule('neutron-meter-r-eeef45da-c60', - '-o qg-7d411f48-ec -s 40.0.0.0/24' + '-o qg-7d411f48-ec -d 40.0.0.0/24' ' -j neutron-meter-l-eeef45da-c60', wrap=False, top=False), @@ -309,11 +309,11 @@ class IptablesDriverTestCase(base.BaseTestCase): self.metering.remove_metering_label_rule(None, new_routers_rules) calls = [ mock.call.remove_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 30.0.0.0/24' + '-i qg-6d411f48-ec -s 30.0.0.0/24' ' -j neutron-meter-l-c5df2fe5-c60', wrap=False, top=False), mock.call.remove_rule('neutron-meter-r-eeef45da-c60', - '-o qg-7d411f48-ec -s 40.0.0.0/24' + '-o qg-7d411f48-ec -d 40.0.0.0/24' ' -j neutron-meter-l-eeef45da-c60', wrap=False, top=False) ] @@ -335,7 +335,7 @@ class IptablesDriverTestCase(base.BaseTestCase): '', wrap=False), mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 10.0.0.0/24' + '-i qg-6d411f48-ec -s 10.0.0.0/24' ' -j neutron-meter-l-c5df2fe5-c60', wrap=False, top=False), mock.call.remove_chain('neutron-meter-l-c5df2fe5-c60', @@ -369,7 +369,7 @@ class IptablesDriverTestCase(base.BaseTestCase): '', wrap=False), mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 10.0.0.0/24' + '-i qg-6d411f48-ec -s 10.0.0.0/24' ' -j neutron-meter-l-c5df2fe5-c60', wrap=False, top=False), mock.call.add_chain('neutron-meter-l-eeef45da-c60', @@ -383,7 +383,7 @@ class IptablesDriverTestCase(base.BaseTestCase): '', wrap=False), mock.call.add_rule('neutron-meter-r-eeef45da-c60', - '-i qg-7d411f48-ec -d 20.0.0.0/24' + '-i qg-7d411f48-ec -s 20.0.0.0/24' ' -j RETURN', wrap=False, top=True), mock.call.remove_chain('neutron-meter-l-c5df2fe5-c60', @@ -401,7 +401,7 @@ class IptablesDriverTestCase(base.BaseTestCase): '', wrap=False), mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-587b63c1-22 -d 10.0.0.0/24' + '-i qg-587b63c1-22 -s 10.0.0.0/24' ' -j neutron-meter-l-c5df2fe5-c60', wrap=False, top=False)]