Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save fcharlier/773c28d26b6058133e60 to your computer and use it in GitHub Desktop.
Save fcharlier/773c28d26b6058133e60 to your computer and use it in GitHub Desktop.
Fixing neutron-metering-agent for icehouse
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