Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/lib/disk/blockdevice.py
diff options
context:
space:
mode:
authorWerner Llácer <wllacer@gmail.com>2021-11-08 14:32:47 +0100
committerWerner Llácer <wllacer@gmail.com>2021-11-08 14:32:47 +0100
commit6d0c55e5d610abd199c1dc0430576535dab894b7 (patch)
tree6f36f7166616baaf2f8212ac2bde168c1a91717b /archinstall/lib/disk/blockdevice.py
parent565464c72df713db7df94809a75b313aed3a7621 (diff)
Solves issue #674
We turned the size query of the devices to byte mode in lsblk (lsblk -b) It avoids problems with the localized output of the lsblk utility.
Diffstat (limited to 'archinstall/lib/disk/blockdevice.py')
-rw-r--r--archinstall/lib/disk/blockdevice.py15
1 files changed, 4 insertions, 11 deletions
diff --git a/archinstall/lib/disk/blockdevice.py b/archinstall/lib/disk/blockdevice.py
index f80f57f3..8db52330 100644
--- a/archinstall/lib/disk/blockdevice.py
+++ b/archinstall/lib/disk/blockdevice.py
@@ -5,6 +5,8 @@ from ..exceptions import DiskError
from ..output import log
from ..general import SysCommand
+GIGA=2**30
+
class BlockDevice:
def __init__(self, path, info=None):
if not info:
@@ -152,20 +154,11 @@ class BlockDevice:
return partition.get('uuid', None)
def convert_size_to_gb(self, size):
- units = {
- 'P' : lambda s : float(s) * 2048,
- 'T' : lambda s : float(s) * 1024,
- 'G' : lambda s : float(s),
- 'M' : lambda s : float(s) / 1024,
- 'K' : lambda s : float(s) / 2048,
- 'B' : lambda s : float(s) / 3072,
- }
- unit = size[-1]
- return float(units.get(unit, lambda s : None)(size[:-1]))
+ return size / GIGA
@property
def size(self):
- output = json.loads(SysCommand(f"lsblk --json -o+SIZE {self.path}").decode('UTF-8'))
+ output = json.loads(SysCommand(f"lsblk --json -b -o+SIZE {self.path}").decode('UTF-8'))
for device in output['blockdevices']:
return self.convert_size_to_gb(device['size'])