- def _collect_interface_one_metric(self, metric_name, resource_id, interface_name):
- ports = self.neutron.list_ports(name=interface_name, device_id=resource_id)
- if not ports or not ports['ports']:
- raise Exception(
- 'Port not found for interface %s on instance %s' % (interface_name, resource_id))
- port = ports['ports'][0]
- port_uuid = port['id'][:11]
- tap_name = 'tap' + port_uuid
- interfaces = self.client.resource.search(resource_type='instance_network_interface',
- query={'=': {'name': tap_name}})
- measures = self.client.metric.get_measures(metric_name,
- resource_id=interfaces[0]['id'],
- limit=1)
- return measures[-1][2] if measures else None
-