Created
October 22, 2014 14:10
-
-
Save fcharlier/773c28d26b6058133e60 to your computer and use it in GitHub Desktop.
Fixing neutron-metering-agent for icehouse
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/neutron/services/metering/drivers/iptables/iptables_driver.py b/neutron/services/metering/drivers/iptables/iptables_driver.py | |
index 6c32905..d0faf52 100644 | |
--- a/neutron/services/metering/drivers/iptables/iptables_driver.py | |
+++ b/neutron/services/metering/drivers/iptables/iptables_driver.py | |
@@ -268,20 +268,26 @@ class IptablesMeteringDriver(abstract_driver.MeteringAbstractDriver): | |
continue | |
for label_id, label in rm.metering_labels.items(): | |
- chain = iptables_manager.get_chain_name(WRAP_NAME + LABEL + | |
- label_id, wrap=False) | |
+ try: | |
+ chain = iptables_manager.get_chain_name(WRAP_NAME + LABEL + | |
+ label_id, wrap=False) | |
- chain_acc = rm.iptables_manager.get_traffic_counters( | |
- chain, wrap=False, zero=True) | |
+ chain_acc = rm.iptables_manager.get_traffic_counters( | |
+ chain, wrap=False, zero=True) | |
- if not chain_acc: | |
- continue | |
+ if not chain_acc: | |
+ continue | |
+ | |
+ acc = accs.get(label_id, {'pkts': 0, 'bytes': 0}) | |
- acc = accs.get(label_id, {'pkts': 0, 'bytes': 0}) | |
+ acc['pkts'] += chain_acc['pkts'] | |
+ acc['bytes'] += chain_acc['bytes'] | |
- acc['pkts'] += chain_acc['pkts'] | |
- acc['bytes'] += chain_acc['bytes'] | |
+ accs[label_id] = acc | |
+ except RuntimeError: | |
+ LOG.exception(_("Driver %(driver)s:%(func)s runtime error"), | |
+ {'driver': self.conf.driver, | |
+ 'func': 'get_traffic_counters'}) | |
- accs[label_id] = acc | |
return accs |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment