diff options
author | Thorsten Behrens <tbehrens@suse.com> | 2014-02-21 11:38:41 +0100 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2014-02-24 21:38:20 -0500 |
commit | b5c3fe1da5f67e0a83a3bc5c9358cbc779157354 (patch) | |
tree | 3cc53dfc67fc006da474684700b630d5df0c15e7 /virtManager | |
parent | 08daebe1aa8490ef8347b35ddb007a35e3aef042 (diff) | |
download | virt-manager-b5c3fe1da5f67e0a83a3bc5c9358cbc779157354.tar.gz |
Attempt empty path on virDomainBlockStats
libvirt for some backends yields summary domain stats for empty
disk path - which saves us the looping on our side.
Diffstat (limited to 'virtManager')
-rw-r--r-- | virtManager/domain.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/virtManager/domain.py b/virtManager/domain.py index 45ab6ee6..db21ae41 100644 --- a/virtManager/domain.py +++ b/virtManager/domain.py @@ -270,6 +270,7 @@ class vmmDomain(vmmLibvirtObject): self._enable_disk_poll = False self._stats_disk_supported = True self._stats_disk_skip = [] + self._summary_disk_stats_skip = False self.inspection = vmmInspectionData() @@ -1789,6 +1790,18 @@ class vmmDomain(vmmLibvirtObject): self._stats_disk_skip = [] return rd, wr + # Some drivers support this method for getting all usage at once + if not self._summary_disk_stats_skip: + try: + io = self._backend.blockStats('') + if io: + rd = io[1] + wr = io[3] + return rd, wr + except libvirt.libvirtError: + self._summary_disk_stats_skip = True + + # did not work, iterate over all disks for disk in self.get_disk_devices(refresh_if_nec=False): dev = disk.target if not dev: |