diff --git a/ceilometer/compute/virt/libvirt/inspector.py b/ceilometer/compute/virt/libvirt/inspector.py index 80fc29e15c..1ef5b58ac9 100755 --- a/ceilometer/compute/virt/libvirt/inspector.py +++ b/ceilometer/compute/virt/libvirt/inspector.py @@ -97,6 +97,23 @@ class LibvirtInspector(virt_inspector.Inspector): params = dict((p.get('name').lower(), p.get('value')) for p in iface.findall('filterref/parameter')) + + # Extract interface ID + try: + interfaceid = iface.find('virtualport').find( + 'parameters').get('interfaceid') + except AttributeError: + interfaceid = None + + # Extract source bridge + try: + bridge = iface.find('source').get('bridge') + except AttributeError: + bridge = None + + params['interfaceid'] = interfaceid + params['bridge'] = bridge + dom_stats = domain.interfaceStats(name) yield virt_inspector.InterfaceStats(name=name, mac=mac_address, diff --git a/ceilometer/tests/unit/compute/virt/libvirt/test_inspector.py b/ceilometer/tests/unit/compute/virt/libvirt/test_inspector.py index ed30732c28..e69d89eb9f 100755 --- a/ceilometer/tests/unit/compute/virt/libvirt/test_inspector.py +++ b/ceilometer/tests/unit/compute/virt/libvirt/test_inspector.py @@ -242,7 +242,9 @@ class TestLibvirtInspection(base.BaseTestCase): self.assertEqual('vnet2', vnic2.name) self.assertEqual('fa:16:3e:96:33:f0', vnic2.mac) self.assertIsNone(vnic2.fref) - self.assertEqual(dict(), vnic2.parameters) + self.assertEqual( + {'interfaceid': None, 'bridge': 'qbr420008b3-7c'}, + vnic2.parameters) self.assertEqual(9, vnic2.rx_bytes) self.assertEqual(10, vnic2.rx_packets) self.assertEqual(11, vnic2.tx_bytes)