Wrong storage size in pod virsh..
Vladimir Burlakov
vvb at fgts.ru
Tue Jun 20 15:41:01 UTC 2017
Hello,
It seems, that while connecting pod with virsh type, we do not take into account that pool-info can return to us capacity not in GiB format only..
f.e in my env:
--
virsh # pool-info default-pool
Name: default-pool
UUID: 5ee26e89-1ff0-4e70-80ac-8181f0cac4d5
State: running
Persistent: yes
Autostart: yes
Capacity: 1.79 TiB
Allocation: 11.97 GiB
Available: 1.78 TiB
—
so when attaching virsh pod, we getting a wrong size of the storage.. just like an idea i brought here part of the changed source of (drivers/pod/virsh.py):
—
def get_pod_pool_size_map(self, key):
"""Return the mapping for a size calculation based on key."""
pools = {}
for pool in self.list_pools():
output = self.run(['pool-info', pool]).replace(' ', '')
if output is None:
continue
#here we getting capacity string in 1234TiB format
capacity_str = self.get_key_value(output, key)
pools[pool] = self.convert_pod_storage_size_to_Bytes(capacity_str)
return pools
def convert_pod_storage_size_to_GiB(self, cap):
capacity = float(cap[:-3])
binary_pref = cap[-3:]
unit_to_multiplier = {
'KiB': 2**10,
'MiB': 2**20,
'GiB': 2**30,
'TiB': 2**40,
'PiB': 2**50
}
return int(capacity * unit_to_multiplier[binary_pref])
—
Hope, it will be helpful.
Thanks,
Vladimir
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/maas-devel/attachments/20170620/0a7c2ddc/attachment.html>
More information about the Maas-devel
mailing list