]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Fix meter label rule creation
authorYu Fukuyama <fukuyama-yu@njk.co.jp>
Tue, 22 Dec 2015 05:17:30 +0000 (05:17 +0000)
committerAkihiro Motoki <amotoki@gmail.com>
Wed, 6 Jan 2016 14:08:07 +0000 (14:08 +0000)
In the case of outbound traffic, set remote_ip to dst.
In the case of inbound traffic, set remote_ip to src.

Change-Id: I7f27b93efa67baf3efccaa94f6a1337d6886e230
Closes-Bug: #1528137
DocImpact: Clarify remote_ip_prefix description of metering label rule in API site

neutron/services/metering/drivers/iptables/iptables_driver.py
neutron/tests/unit/services/metering/drivers/test_iptables.py

index 733e9efb6c2303b07d7b5b3cce56f17c13bf015e..7a8c8fd0a8cb241ab60999efdec7270f8517cbd5 100644 (file)
@@ -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
index 91434653cc4528e1e07958021ec4e3f6acc8e774..91858e464178babad732031de0c8a9b50c6b54f6 100644 (file)
@@ -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)]