diff --git a/client/lib/engine/bin/FileSystemLib.py b/client/lib/engine/bin/FileSystemLib.py index 5d9ad14..a843cce 100755 --- a/client/lib/engine/bin/FileSystemLib.py +++ b/client/lib/engine/bin/FileSystemLib.py @@ -9,18 +9,17 @@ import CacheLib import FileSystemLib def ogCheckFs(int_ndisk, int_nfilesys): - # Si se solicita, mostrar ayuda. - if int_ndisk == "help": - ogHelp("ogCheckFs", "ogCheckFs int_ndisk int_nfilesys", "ogCheckFs 1 1") - return - # Error si no se reciben 2 parámetros. if len(sys.argv) != 3: - ogRaiseError(OG_ERR_FORMAT) + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_FORMAT, + "Not enough arguments" + ) return # Obtener partición. - PART = ogDiskToDev(int_ndisk, int_nfilesys) + PART = DiskLib.ogDiskToDev(int_ndisk, int_nfilesys) if not PART: return @@ -73,16 +72,28 @@ def ogCheckFs(int_ndisk, int_nfilesys): elif TYPE == "ZFS": PROG = "fsck.zfs" else: - ogRaiseError(OG_ERR_PARTITION, f"{int_ndisk}, {int_nfilesys}") + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_PARTITION, + f"{int_ndisk}, {int_nfilesys}" + ) return # Error si el sistema de archivos esta montado o bloqueado. ogUnmount(int_ndisk, int_nfilesys) if ogIsMounted(int_ndisk, int_nfilesys): - ogRaiseError(OG_ERR_PARTITION, f"{int_ndisk} {int_nfilesys}") + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_PARTITION, + f"{int_ndisk} {int_nfilesys}" + ) return if ogIsLocked(int_ndisk, int_nfilesys): - ogRaiseError(OG_ERR_LOCKED, f"{int_ndisk} {int_nfilesys}") + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_LOCKED, + f"{int_ndisk} {int_nfilesys}" + ) return # Comprobar en modo uso exclusivo. @@ -91,28 +102,36 @@ def ogCheckFs(int_ndisk, int_nfilesys): result = subprocess.run([PROG, PARAMS, PART], capture_output=True) ERRCODE = result.returncode except FileNotFoundError: - ogRaiseError(OG_ERR_NOTEXEC, PROG) - ERRCODE = OG_ERR_NOTEXEC + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_NOTEXEC, + PROG + ) + ERRCODE = ogGlobals.OG_ERR_NOTEXEC except: - ogRaiseError(OG_ERR_PARTITION, f"{int_ndisk} {int_nfilesys}") - ERRCODE = OG_ERR_PARTITION + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_PARTITION, + f"{int_ndisk} {int_nfilesys}" + ) + ERRCODE = ogGlobals.OG_ERR_PARTITION ogUnlock(int_ndisk, int_nfilesys) return ERRCODE def ogExtendFs(): - # Si se solicita, mostrar ayuda. - if len(sys.argv) == 2 and sys.argv[1] == "help": - ogHelp("ogExtendFs", "ogExtendFs int_ndisk int_nfilesys", "ogExtendFs 1 1") - return # Error si no se reciben 2 parámetros. if len(sys.argv) != 3: - ogRaiseError(OG_ERR_FORMAT) + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_FORMAT, + f"Not enough arguments" + ) return # Obtener partición. - PART = ogDiskToDev(int(sys.argv[1]), int(sys.argv[2])) + PART = DiskLib.ogDiskToDev(int(sys.argv[1]), int(sys.argv[2])) if not PART: return @@ -134,7 +153,11 @@ def ogExtendFs(): PROG = "ntfsresize" PARAMS = "<<<\"y\" -f" else: - ogRaiseError(OG_ERR_PARTITION, f"{int(sys.argv[1])} {int(sys.argv[2])} {TYPE}") + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_PARTITION, + f"{int(sys.argv[1])} {int(sys.argv[2])} {TYPE}" + ) return # Salida normal si no se va a aplicar la operación. @@ -149,12 +172,20 @@ def ogExtendFs(): else: ogUnmount(int(sys.argv[1]), int(sys.argv[2])) if ogIsMounted(int(sys.argv[1]), int(sys.argv[2])): - ogRaiseError(OG_ERR_PARTITION, f"{int(sys.argv[1])} {int(sys.argv[2])}") + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_PARTITION, + f"{int(sys.argv[1])} {int(sys.argv[2])}" + ) return # Error si el sistema de archivos está bloqueado. if ogIsLocked(int(sys.argv[1]), int(sys.argv[2])): - ogRaiseError(OG_ERR_LOCKED, f"{int(sys.argv[1])} {int(sys.argv[2])}") + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_LOCKED, + f"{int(sys.argv[1])} {int(sys.argv[2])}" + ) return # Redimensionar en modo uso exclusivo. @@ -163,11 +194,19 @@ def ogExtendFs(): subprocess.run([PROG, PARAMS, PART], capture_output=True) ERRCODE = 0 except FileNotFoundError: - ogRaiseError(OG_ERR_NOTEXEC, PROG) - ERRCODE = OG_ERR_NOTEXEC + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_NOTEXEC, + PROG + ) + ERRCODE = ogGlobals.OG_ERR_NOTEXEC except: - ogRaiseError(OG_ERR_PARTITION, f"{int(sys.argv[1])} {int(sys.argv[2])}") - ERRCODE = OG_ERR_PARTITION + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_PARTITION, + f"{int(sys.argv[1])} {int(sys.argv[2])}" + ) + ERRCODE = ogGlobals.OG_ERR_PARTITION ogUnlock(int(sys.argv[1]), int(sys.argv[2])) return ERRCODE @@ -205,17 +244,29 @@ def ogFormatFs (disk, par, type=None, label=None): if not PART: return if ogIsMounted (disk, par): - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_DONTFORMAT, f'{ogGlobals.lang.MSG_MOUNT}: {disk} {par}') + SystemLib.ogRaiseError( + [], + ogGlobals.OG_ERR_DONTFORMAT, + f'{ogGlobals.lang.MSG_MOUNT}: {disk} {par}' + ) return None if ogIsLocked (disk, par): - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_LOCKED, f"{disk} {par}") + SystemLib.ogRaiseError( + [], + ogGlobals.OG_ERR_LOCKED, + f"{disk} {par}" + ) return None if not type: type = ogGetFsType (disk, par) if not type: - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, f"{disk} {par} ...") + SystemLib.ogRaiseError( + [], + ogGlobals.OG_ERR_FORMAT, + f"{disk} {par} ..." + ) return None data = { @@ -240,7 +291,11 @@ def ogFormatFs (disk, par, type=None, label=None): 'UFS': { 'PROG': 'mkfs.ufs', 'PARAMS': '-O 2' }, } if type not in data: - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_PARTITION, f"{disk} {par} {type}") + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_PARTITION, + f"{disk} {par} {type}" + ) return d = data[type] @@ -250,7 +305,11 @@ def ogFormatFs (disk, par, type=None, label=None): input = d['INPUT'] if 'INPUT' in d else '' if label == "CACHE": - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, f"{ogGlobals.lang.MSG_RESERVEDVALUE}: CACHE") + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_FORMAT, + f"{ogGlobals.lang.MSG_RESERVEDVALUE}: CACHE" + ) return if label: params = f"{params} {labelparam or '-L'} {label}" @@ -263,10 +322,18 @@ def ogFormatFs (disk, par, type=None, label=None): else: errcode = subprocess.run ([prog, params, PART], input=input, text=True) except FileNotFoundError: - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_NOTEXEC, prog) + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_NOTEXEC, + prog + ) errcode = ogGlobals.OG_ERR_NOTEXEC except: - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_PARTITION, f"{disk} {par}") + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_PARTITION, + f"{disk} {par}" + ) errcode = ogGlobals.OG_ERR_PARTITION ogUnlock (disk, par) @@ -293,7 +360,11 @@ def ogGetFsSize (disk, par, unit='KB'): elif unit.upper() == "TB": factor = 1024 * 1024 * 1024 elif unit.upper() != "KB": - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, f"{unit} != {{ KB, MB, GB, TB }}") + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_FORMAT, + f"{unit} != {{ KB, MB, GB, TB }}" + ) return # Obtener el tamaño del sistema de archivo (si no está formateado; tamaño = 0). @@ -334,7 +405,11 @@ def ogGetFsType(disk, part): try: subprocess.run(["zfs", "mount", PART]) except FileNotFoundError: - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_NOTEXEC, 'zfs') + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_NOTEXEC, + 'zfs' + ) return out = subprocess.run(["mount"], capture_output=True, text=True).stdout.splitlines() for line in out: @@ -343,7 +418,11 @@ def ogGetFsType(disk, part): break if not TYPE: - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_NOTFOUND, f'{disk} {part}') + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_NOTFOUND, + f'{disk} {part}' + ) return # Componer valores correctos. @@ -474,18 +553,17 @@ def ogIsReadonly(disk, par): return "ro" in options def ogIsWritable(int_ndisk, int_nfilesys): - # Si se solicita, mostrar ayuda. - if len(sys.argv) == 3 and sys.argv[2] == "help": - ogHelp("ogIsWritable", "ogIsWritable int_ndisk int_nfilesys", "ogIsWritable 1 1") - return - # Error si no se reciben 2 parámetros. if len(sys.argv) != 3: - ogRaiseError(OG_ERR_FORMAT) + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_FORMAT, + f"Not enough arguments" + ) return # Obtener partición. - PART = ogDiskToDev(int_ndisk, int_nfilesys) + PART = DiskLib.ogDiskToDev(int_ndisk, int_nfilesys) if not PART: return @@ -528,7 +606,7 @@ def ogLockPartition (disk, par): def ogMount(*args): if 1 == len (args): if 'cache' == args[0].lower(): - return ogMountCache() + return DiskLib.ogMountCache() elif 'cdrom' == args[0].lower(): return ogMountCdrom() elif 2 == len (args): @@ -536,13 +614,17 @@ def ogMount(*args): def ogMountFirstFs(int_ndisk): # Obtener número de particiones del disco. - NPARTS = ogGetPartitionsNumber(int_ndisk) + NPARTS = DiskLib.ogGetPartitionsNumber(int_ndisk) for PART in range(1, NPARTS + 1): MNTDIR = ogMount(int_ndisk, PART) if MNTDIR: return MNTDIR - ogRaiseError(OG_ERR_NOTFOUND, int_ndisk) - return OG_ERR_NOTFOUND + SystemLib.ogRaiseError( + "session", + ogGlobals.OG_ERR_NOTFOUND, + f"{int_ndisk}" + ) + return ogGlobals.OG_ERR_NOTFOUND #/** # ogMountFs int_ndisk int_nfilesys @@ -563,7 +645,11 @@ def ogMountFs (disk, par): if ogIsLocked (disk, par): print (f'nati: ogMountFs: is locked disk ({disk}) par ({par})') - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_LOCKED, f"{ogGlobals.lang.MSG_PARTITION}, {disk} {par}") + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_LOCKED, + f"{ogGlobals.lang.MSG_PARTITION}, {disk} {par}" + ) return # El camino de un dispositivo normal comienza por el carácter "/". @@ -586,7 +672,11 @@ def ogMountFs (disk, par): try: rc = subprocess.run(['mount', dev, mntdir, '-o', 'force,remove_hiberfile'], check=True).returncode except subprocess.CalledProcessError: - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_PARTITION, f"{disk}, {par}") + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_PARTITION, + f"{disk}, {par}" + ) return if 0 == rc: @@ -595,13 +685,21 @@ def ogMountFs (disk, par): try: subprocess.run (['ntfsfix', '-d', par], check=True) except subprocess.CalledProcessError: - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_PARTITION, f"{disk, par}") + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_PARTITION, + f"{disk, par}" + ) #return else: try: subprocess.run (['mount', par, mntdir, '-o', 'ro'], check=True) except subprocess.CalledProcessError: - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_PARTITION, f"{disk, par}") + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_PARTITION, + f"{disk, par}" + ) #return # Aviso de montaje de solo lectura. @@ -635,23 +733,27 @@ def ogMountCdrom(): try: subprocess.run(["mount", "-t", "iso9660", DEV, MNTDIR], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) except subprocess.CalledProcessError: - SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_PARTITION, "cdrom") + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_PARTITION, + "cdrom" + ) return return MNTDIR def ogReduceFs(int_ndisk, int_nfilesys): - # Si se solicita, mostrar ayuda. - if len(sys.argv) == 3 and sys.argv[2] == "help": - ogHelp("ogReduceFs", "ogReduceFs int_ndisk int_nfilesys", "ogReduceFs 1 1") - return # Error si no se reciben 2 parámetros. if len(sys.argv) != 3: - ogRaiseError(OG_ERR_FORMAT) + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_FORMAT, + "Not enough arguments" + ) return # Obtener partición. - PART = ogDiskToDev(int_ndisk, int_nfilesys) + PART = DiskLib.ogDiskToDev(int_ndisk, int_nfilesys) if not PART: return @@ -696,7 +798,11 @@ def ogReduceFs(int_ndisk, int_nfilesys): # No se reduce (por el momento). pass else: - ogRaiseError(OG_ERR_PARTITION, f"{int_ndisk}, {int_nfilesys}") + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_PARTITION, + f"{int_ndisk}, {int_nfilesys}" + ) # Devuelve tamaño del sistema de ficheros. return ogGetFsSize(int_ndisk, int_nfilesys) @@ -754,7 +860,11 @@ def ogUnmountFs(disk, par): if MNTDIR: # Error si la particion está bloqueada. if ogIsLocked (disk, par): - ogRaiseError ([], ogGlobals.OG_ERR_LOCKED, f"{ogGlobals.lang.MSG_PARTITION}, {disk} {par}") + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_LOCKED, + f"{ogGlobals.lang.MSG_PARTITION}, {disk} {par}" + ) return # Desmontar y borrar punto de montaje. @@ -785,35 +895,34 @@ def ogUnmountFs(disk, par): #@warning No se desmonta la partición marcada como caché local. #*/ ## def ogUnmountAll(int_ndisk): - # Si se solicita, mostrar ayuda. - if len(sys.argv) == 3 and sys.argv[2] == "help": - ogHelp("ogUnmountAll", "ogUnmountAll int_ndisk", "ogUnmountAll 1") - return - # Error si no se recibe 1 parámetro. if len(sys.argv) != 3: - ogRaiseError(OG_ERR_FORMAT) + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_FORMAT, + "Not enough arguments" + ) return # Obtener partición y punto de montaje. - DISK = ogDiskToDev(int_ndisk) - for PART in range(1, ogGetPartitionsNumber(int_ndisk) + 1): + DISK = DiskLib.ogDiskToDev(int_ndisk) + for PART in range(1, DiskLib.ogGetPartitionsNumber(int_ndisk) + 1): if ogGetFsType(int_ndisk, PART) != "CACHE": ogUnmount(int_ndisk, PART) def ogUnsetDirtyBit(int_ndisk, int_nfilesys): - # Si se solicita, mostrar ayuda. - if len(sys.argv) == 3 and sys.argv[2] == "help": - ogHelp("ogUnsetDirtyBit", "ogUnsetDirtyBit int_ndisk int_nfilesys", "ogUnsetDirtyBit 1 1") - return # Error si no se reciben 2 parámetros. if len(sys.argv) != 3: - ogRaiseError(OG_ERR_FORMAT) + SystemLib.ogRaiseError ( + [], + ogGlobals.OG_ERR_FORMAT, + "Not enough arguments" + ) return # Obtener partición y punto de montaje. - PART = ogDiskToDev(int_ndisk, int_nfilesys) + PART = DiskLib.ogDiskToDev(int_ndisk, int_nfilesys) if not PART: return