From f6113107d6c7df763301de0816dcd1ae1d4ace4d Mon Sep 17 00:00:00 2001 From: codefiles <11915375+codefiles@users.noreply.github.com> Date: Sun, 26 Mar 2023 15:40:08 -0400 Subject: Change exit status indications to exit codes (#1685) --- archinstall/lib/disk/helpers.py | 2 +- archinstall/lib/disk/partition.py | 12 ++---------- archinstall/lib/luks.py | 2 +- archinstall/lib/systemd.py | 2 -- 4 files changed, 4 insertions(+), 14 deletions(-) diff --git a/archinstall/lib/disk/helpers.py b/archinstall/lib/disk/helpers.py index aea794f5..80d0cb53 100644 --- a/archinstall/lib/disk/helpers.py +++ b/archinstall/lib/disk/helpers.py @@ -233,7 +233,7 @@ def get_blockdevice_info(device_path, exclude_iso_dev :bool = True) -> Dict[str, information = blkid(f'blkid -p -o export {device_path}') return enrich_blockdevice_information(information) except SysCallError as ex: - if ex.exit_code in (512, 2): + if ex.exit_code == 2: # Assume that it's a loop device, and try to get info on it try: resolved_device_name = device_path.readlink().name diff --git a/archinstall/lib/disk/partition.py b/archinstall/lib/disk/partition.py index 12b1a9a6..87eaa6a7 100644 --- a/archinstall/lib/disk/partition.py +++ b/archinstall/lib/disk/partition.py @@ -186,8 +186,7 @@ class Partition: try: output = SysCommand(f"lsblk --json -b -o+LOG-SEC,SIZE,PTTYPE,PARTUUID,UUID,FSTYPE {self.device_path}").decode('UTF-8') except SysCallError as error: - # It appears as if lsblk can return exit codes like 8192 to indicate something. - # But it does return output in stderr so we'll try to catch it minus the message/info. + # Get the output minus the message/info from lsblk if it returns a non-zero exit code. output = error.worker.decode('UTF-8') if '{' in output: output = output[output.find('{'):] @@ -632,14 +631,7 @@ class Partition: return False def unmount(self) -> bool: - worker = SysCommand(f"/usr/bin/umount {self._path}") - exit_code = worker.exit_code - - # Without to much research, it seams that low error codes are errors. - # And above 8k is indicators such as "/dev/x not mounted.". - # So anything in between 0 and 8k are errors (?). - if exit_code and 0 < exit_code < 8000: - raise SysCallError(f"Could not unmount {self._path} properly: {worker}", exit_code=exit_code) + SysCommand(f"/usr/bin/umount {self._path}") # Update the partition info since the mount info has changed after this call. self._partition_info = self._fetch_information() diff --git a/archinstall/lib/luks.py b/archinstall/lib/luks.py index 7e4534d8..ad6bf093 100644 --- a/archinstall/lib/luks.py +++ b/archinstall/lib/luks.py @@ -115,7 +115,7 @@ class luks2: if cmd_handle.exit_code != 0: raise DiskError(f'Could not encrypt volume "{partition.path}": {b"".join(cmd_handle)}') except SysCallError as err: - if err.exit_code == 256: + if err.exit_code == 1: log(f'{partition} is being used, trying to unmount and crypt-close the device and running one more attempt at encrypting the device.', level=logging.DEBUG) # Partition was in use, unmount it and try again partition.unmount() diff --git a/archinstall/lib/systemd.py b/archinstall/lib/systemd.py index f459f94b..64ffcae4 100644 --- a/archinstall/lib/systemd.py +++ b/archinstall/lib/systemd.py @@ -97,8 +97,6 @@ class Boot: shutdown = SysCommand(f'systemd-run --machine={self.container_name} --pty shutdown now') except SysCallError as error: shutdown_exit_code = error.exit_code - # if error.exit_code == 256: - # pass while self.session.is_alive(): time.sleep(0.25) -- cgit v1.2.3-54-g00ecf