refs #1515 add ogSetPartitionSize
parent
b193dadf31
commit
bc16613939
|
@ -1186,35 +1186,21 @@ def ogSetPartitionId (disk, par, id):
|
|||
#@note Requisitos: sfdisk, awk
|
||||
#@todo Compruebar que el tamaño sea numérico positivo y evitar que pueda solaparse con la siguiente partición.
|
||||
#*/ ##
|
||||
def ogSetPartitionSize(*args):
|
||||
# Variables locales
|
||||
DISK = None
|
||||
PART = None
|
||||
SIZE = None
|
||||
def ogSetPartitionSize (disk, par, size):
|
||||
DISK = ogDiskToDev (disk)
|
||||
if not DISK: return None
|
||||
|
||||
# Si se solicita, mostrar ayuda.
|
||||
if len(args) == 1 and args[0] == "help":
|
||||
SystemLib.ogHelp('ogSetPartitionSize', 'ogSetPartitionSize int_ndisk int_npartition int_size', 'ogSetPartitionSize 1 1 10000000')
|
||||
return
|
||||
PART = ogDiskToDev (disk, par)
|
||||
if not PART: return None
|
||||
|
||||
# Error si no se reciben 3 parámetros.
|
||||
if len(args) != 3:
|
||||
SystemLib.ogRaiseError(OG_ERR_FORMAT)
|
||||
return
|
||||
|
||||
# Obtener el tamaño de la partición.
|
||||
DISK = ogDiskToDev(args[0])
|
||||
if DISK is None:
|
||||
return
|
||||
PART = ogDiskToDev(args[0], args[1])
|
||||
if PART is None:
|
||||
return
|
||||
# Convertir tamaño en KB a sectores de 512 B.
|
||||
SIZE = int(args[2]) * 2
|
||||
# Redefinir el tamaño de la partición.
|
||||
subprocess.run(["sfdisk", "-f", "-uS", f"-N{args[1]}", DISK], input=f",{SIZE}", text=True, stderr=subprocess.DEVNULL)
|
||||
subprocess.run(["partprobe", DISK], stderr=subprocess.DEVNULL)
|
||||
return
|
||||
# Convertir tamaño en KB a sectores de 512 B.
|
||||
SIZE = 2 * int (size)
|
||||
# Redefinir el tamaño de la partición.
|
||||
p = subprocess.run (['sfdisk', '-f', '-uS', f'-N{par}', DISK], input=f',{SIZE}', text=True)
|
||||
if p.returncode:
|
||||
ogRaiseError ([], ogGlobals.OG_ERR_PARTITION, f'{disk},{par}')
|
||||
return None
|
||||
subprocess.run (['partprobe', DISK])
|
||||
|
||||
|
||||
#/**
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
from SystemLib import ogHelp
|
||||
from DiskLib import ogSetPartitionSize
|
||||
|
||||
parser = argparse.ArgumentParser (add_help=False)
|
||||
parser.add_argument ('disk')
|
||||
parser.add_argument ('par')
|
||||
parser.add_argument ('size')
|
||||
|
||||
if 2 == len (sys.argv) and 'help' == sys.argv[1]:
|
||||
#parser.print_help() sale en inglés aunque la locale indique otra cosa
|
||||
ogHelp ('ogSetPartitionSize', 'ogSetPartitionSize int_ndisk int_npartition int_size', ['ogSetPartitionSize 1 1 10000000'])
|
||||
sys.exit (0)
|
||||
|
||||
args = parser.parse_args()
|
||||
ret = ogSetPartitionSize (args.disk, args.par, args.size)
|
||||
|
||||
if ret is not None:
|
||||
if ret == True: sys.exit (0)
|
||||
elif ret == False: sys.exit (1)
|
||||
else: print (ret)
|
Loading…
Reference in New Issue