Fixes Hyper-V Inspector disk metrics cache issue

Hyper-V Inspector yields a Disk with the property
'device' containing a dictionary. This causes an
exception when the values are cached in a dictionary
using the said 'device' as a key.

Closes-Bug: #1395807

Change-Id: I09b4ec2a37a6f7e6580a059517ab6e606bfc346f
This commit is contained in:
Claudiu Belu 2014-11-24 19:57:51 +02:00
parent 1c88f83f82
commit a2e11a37ac
2 changed files with 2 additions and 9 deletions

View File

@ -69,11 +69,7 @@ class HyperVInspector(virt_inspector.Inspector):
def inspect_disks(self, instance_name):
for disk_metrics in self._utils.get_disk_metrics(instance_name):
device = dict([(i, disk_metrics[i])
for i in ['instance_id', 'host_resource']
if i in disk_metrics])
disk = virt_inspector.Disk(device=device)
disk = virt_inspector.Disk(device=disk_metrics['instance_id'])
stats = virt_inspector.DiskStats(
read_requests=0,
# Return bytes

View File

@ -102,9 +102,6 @@ class TestHyperVInspection(base.BaseTestCase):
fake_instance_id = "fake_fake_instance_id"
fake_host_resource = "fake_host_resource"
fake_device = {"instance_id": fake_instance_id,
"host_resource": fake_host_resource}
self._inspector._utils.get_disk_metrics.return_value = [{
'read_mb': fake_read_mb,
'write_mb': fake_write_mb,
@ -119,7 +116,7 @@ class TestHyperVInspection(base.BaseTestCase):
inspected_disk, inspected_stats = inspected_disks[0]
self.assertEqual(fake_device, inspected_disk.device)
self.assertEqual(fake_instance_id, inspected_disk.device)
self.assertEqual(fake_read_mb * units.Mi, inspected_stats.read_bytes)
self.assertEqual(fake_write_mb * units.Mi, inspected_stats.write_bytes)