From a346ba386e87333f6756e6d2754d9b1754b43442 Mon Sep 17 00:00:00 2001 From: Natalia Serrano Date: Wed, 22 Jan 2025 10:28:12 +0100 Subject: [PATCH] refs #1337 add more commands --- client/lib/engine/bin/FileSystemLib.py | 56 +++++-------------- client/lib/engine/bin/ImageLib.py | 2 - client/lib/engine/bin/ProtocolLib.py | 2 - client/lib/engine/bin/RegistryLib.py | 1 - client/shared/functions/ogAddCmd | 25 +++++++++ client/shared/functions/ogAddRegistryKey | 24 ++++++++ client/shared/functions/ogAddRegistryValue | 25 +++++++++ client/shared/functions/ogDeleteRegistryKey | 24 ++++++++ client/shared/functions/ogDeleteRegistryValue | 24 ++++++++ client/shared/functions/ogExtendFs | 23 ++++++++ client/shared/functions/ogFixBootSector | 23 ++++++++ client/shared/functions/ogFormat | 28 ++++++++++ client/shared/functions/ogFormatCache | 22 ++++++++ client/shared/functions/ogFormatFs | 25 +++++++++ client/shared/functions/ogGetHivePath | 23 ++++++++ client/shared/functions/ogGetRegistryValue | 24 ++++++++ client/shared/functions/ogInstallFirstBoot | 24 ++++++++ client/shared/functions/ogInstallMiniSetup | 35 ++++++++++++ client/shared/functions/ogInstallRunonce | 29 ++++++++++ client/shared/functions/ogListRegistryKeys | 25 +++++++++ client/shared/functions/ogListRegistryValues | 25 +++++++++ client/shared/functions/ogMcastSyntax | 34 +++++++++++ client/shared/functions/ogRestoreImage | 25 +++++++++ client/shared/functions/ogSetRegistryValue | 25 +++++++++ client/shared/functions/ogSetWindowsName | 24 ++++++++ client/shared/functions/ogUcastSyntax | 34 +++++++++++ .../shared/functions/ogUninstallWindowsClient | 24 ++++++++ .../shared/functions/ogUpdateCacheIsNecesary | 24 ++++++++ .../shared/functions/ogWindowsBootParameters | 23 ++++++++ .../functions/ogWindowsRegisterPartition | 26 +++++++++ 30 files changed, 681 insertions(+), 47 deletions(-) create mode 100755 client/shared/functions/ogAddCmd create mode 100755 client/shared/functions/ogAddRegistryKey create mode 100755 client/shared/functions/ogAddRegistryValue create mode 100755 client/shared/functions/ogDeleteRegistryKey create mode 100755 client/shared/functions/ogDeleteRegistryValue create mode 100755 client/shared/functions/ogExtendFs create mode 100755 client/shared/functions/ogFixBootSector create mode 100755 client/shared/functions/ogFormat create mode 100755 client/shared/functions/ogFormatCache create mode 100755 client/shared/functions/ogFormatFs create mode 100755 client/shared/functions/ogGetHivePath create mode 100755 client/shared/functions/ogGetRegistryValue create mode 100755 client/shared/functions/ogInstallFirstBoot create mode 100755 client/shared/functions/ogInstallMiniSetup create mode 100755 client/shared/functions/ogInstallRunonce create mode 100755 client/shared/functions/ogListRegistryKeys create mode 100755 client/shared/functions/ogListRegistryValues create mode 100755 client/shared/functions/ogMcastSyntax create mode 100755 client/shared/functions/ogRestoreImage create mode 100755 client/shared/functions/ogSetRegistryValue create mode 100755 client/shared/functions/ogSetWindowsName create mode 100755 client/shared/functions/ogUcastSyntax create mode 100755 client/shared/functions/ogUninstallWindowsClient create mode 100755 client/shared/functions/ogUpdateCacheIsNecesary create mode 100755 client/shared/functions/ogWindowsBootParameters create mode 100755 client/shared/functions/ogWindowsRegisterPartition diff --git a/client/lib/engine/bin/FileSystemLib.py b/client/lib/engine/bin/FileSystemLib.py index f1953ec..46cba8e 100755 --- a/client/lib/engine/bin/FileSystemLib.py +++ b/client/lib/engine/bin/FileSystemLib.py @@ -230,7 +230,7 @@ def ogFormat (disk, par=None, fs=None, label=None): if disk.lower() == "cache": return CacheLib.ogFormatCache() else: - return ogFormatFs (disk, par) + return ogFormatFs (disk, par, fs=fs, label=label) #/** @@ -248,34 +248,22 @@ def ogFormat (disk, par=None, fs=None, label=None): #@warning No formatea particiones montadas ni bloqueadas. #@todo Definir salidas. #*/ ## -def ogFormatFs (disk, par, type=None, label=None): +def ogFormatFs (disk, par, fs=None, label=None): PART = DiskLib.ogDiskToDev (disk, par) 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 fs: + fs = ogGetFsType (disk, par) - if not type: - SystemLib.ogRaiseError( - [], - ogGlobals.OG_ERR_FORMAT, - f"{disk} {par} ..." - ) + if not fs: + SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, f"{disk} {par} ...") return None data = { @@ -299,26 +287,18 @@ def ogFormatFs (disk, par, type=None, label=None): 'HFSPLUS': { 'PROG': 'mkfs.hfsplus', 'LABELPARAM': '-v' }, 'UFS': { 'PROG': 'mkfs.ufs', 'PARAMS': '-O 2' }, } - if type not in data: - SystemLib.ogRaiseError ( - [], - ogGlobals.OG_ERR_PARTITION, - f"{disk} {par} {type}" - ) + if fs not in data: + SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_PARTITION, f"{disk} {par} {fs}") return - d = data[type] + d = data[fs] prog = d['PROG'] params = d['PARAMS'] if 'PARAMS' in d else '' labelparam = d['LABELPARAM'] if 'LABELPARAM' in d else '' 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}" @@ -331,18 +311,10 @@ 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) diff --git a/client/lib/engine/bin/ImageLib.py b/client/lib/engine/bin/ImageLib.py index 936eaeb..69e872f 100644 --- a/client/lib/engine/bin/ImageLib.py +++ b/client/lib/engine/bin/ImageLib.py @@ -375,10 +375,8 @@ def ogRestoreImage (repo, imgpath, disk, par): rc = None try: - print (f'nati: ogRestoreImage: running ({program})') p = subprocess.run (program, shell=True, capture_output=True, text=True) rc = p.returncode - print (f'nati: ogRestoreImage: rc ({rc}) stdout ({p.stdout}) stderr ({p.stderr})') if not rc: SystemLib.ogRaiseError ([], ogGlobalsOG_ERR_IMAGE, f'{imgfile}, {disk}, {par}') except: diff --git a/client/lib/engine/bin/ProtocolLib.py b/client/lib/engine/bin/ProtocolLib.py index d06a696..425ccbd 100644 --- a/client/lib/engine/bin/ProtocolLib.py +++ b/client/lib/engine/bin/ProtocolLib.py @@ -870,14 +870,12 @@ def ogUpdateCacheIsNecesary (repo, file, proto): return None filesource = FileLib.ogGetPath (src=repo, file=file) - print (f'filesource ({filesource})') if not filesource: SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_NOTFOUND, f' {repo} {file}') return None # paso 1. si no existe la imagen, confirmar que es necesario actualizar la cache. filetarget = FileLib.ogGetPath (src='CACHE', file=file) - print (f'filetarget ({filetarget})') if not filetarget: # borramos el fichero bf del torrent, en el caso de que se hubiese quedado de algun proceso fallido if FileLib.ogGetPath (src='CACHE', file=f'/{file}.torrent.bf'): ogDeleteFile (container='CACHE', file=f'{file}.torrent.bf') diff --git a/client/lib/engine/bin/RegistryLib.py b/client/lib/engine/bin/RegistryLib.py index e8277be..11a2c08 100755 --- a/client/lib/engine/bin/RegistryLib.py +++ b/client/lib/engine/bin/RegistryLib.py @@ -232,7 +232,6 @@ def ogGetRegistryValue (mntpt, hive, k): ret = None if 'REG_BINARY' in lines[0]: if re.search ('^:[0-9A-F]+ ', lines[1]): - print ('re.match') ret = lines[1][8:56] else: ret = lines[1] diff --git a/client/shared/functions/ogAddCmd b/client/shared/functions/ogAddCmd new file mode 100755 index 0000000..8c0b913 --- /dev/null +++ b/client/shared/functions/ogAddCmd @@ -0,0 +1,25 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from PostConfLib import ogAddCmd + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('disk') +parser.add_argument ('par') +parser.add_argument ('cmdfile') +parser.add_argument ('cmd') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogAddCmd', 'ogAddCmd int_ndisk int_npartition str_filename str_commands', ['ogAddCmd 1 1 filename.cmd command']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogAddCmd (args.disk, args.par, args.cmdfile, args.cmd) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogAddRegistryKey b/client/shared/functions/ogAddRegistryKey new file mode 100755 index 0000000..8b0c59b --- /dev/null +++ b/client/shared/functions/ogAddRegistryKey @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from RegistryLib import ogAddRegistryKey + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('mntpt') +parser.add_argument ('hive') +parser.add_argument ('k') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogAddRegistryKey', 'ogAddRegistryKey path_mountpoint str_hive str_key', [r'ogAddRegistryKey /mnt/sda1 SOFTWARE "\Microsoft\NewKey"']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogAddRegistryKey (args.mntpt, args.hive, args.k) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogAddRegistryValue b/client/shared/functions/ogAddRegistryValue new file mode 100755 index 0000000..d4dd054 --- /dev/null +++ b/client/shared/functions/ogAddRegistryValue @@ -0,0 +1,25 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from RegistryLib import ogAddRegistryValue + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('mntpt') +parser.add_argument ('hive') +parser.add_argument ('k') +parser.add_argument ('vtype', nargs='?', default='STRING') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogAddRegistryValue', 'ogAddRegistryValue path_mountpoint str_hive str_valuename [str_valuetype]', [r'ogAddRegistryValue /mnt/sda1 SOFTWARE "\Microsoft\NewKey\Value1"', r'ogAddRegistryValue /mnt/sda1 SOFTWARE "\Microsoft\NewKey\Value1" DWORD']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogAddRegistryValue (args.mntpt, args.hive, args.k, args.vtype) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogDeleteRegistryKey b/client/shared/functions/ogDeleteRegistryKey new file mode 100755 index 0000000..3eba2e1 --- /dev/null +++ b/client/shared/functions/ogDeleteRegistryKey @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from RegistryLib import ogDeleteRegistryKey + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('mntpt') +parser.add_argument ('hive') +parser.add_argument ('k') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogDeleteRegistryKey', 'ogDeleteRegistryKey path_mountpoint str_hive str_key', [r'ogDeleteRegistryKey /mnt/sda1 SOFTWARE "\Microsoft\NewKey"']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogDeleteRegistryKey (args.mntpt, args.hive, args.k) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogDeleteRegistryValue b/client/shared/functions/ogDeleteRegistryValue new file mode 100755 index 0000000..7721bfa --- /dev/null +++ b/client/shared/functions/ogDeleteRegistryValue @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from RegistryLib import ogDeleteRegistryValue + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('mntpt') +parser.add_argument ('hive') +parser.add_argument ('k') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogDeleteRegistryValue', 'ogDeleteRegistryValue path_mountpoint str_hive str_valuename', [r'ogDeleteRegistryValue /mnt/sda1 SOFTWARE "\Microsoft\NewKey\Value1"']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogDeleteRegistryValue (args.mntpt, args.hive, args.k) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogExtendFs b/client/shared/functions/ogExtendFs new file mode 100755 index 0000000..b706e87 --- /dev/null +++ b/client/shared/functions/ogExtendFs @@ -0,0 +1,23 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from FileSystemLib import ogExtendFs + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('disk') +parser.add_argument ('par') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogExtendFs', 'ogExtendFs int_ndisk int_nfilesys', ['ogExtendFs 1 1']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogExtendFs (args.disk, args.par) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogFixBootSector b/client/shared/functions/ogFixBootSector new file mode 100755 index 0000000..3e9ecb5 --- /dev/null +++ b/client/shared/functions/ogFixBootSector @@ -0,0 +1,23 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from BootLib import ogFixBootSector + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('disk') +parser.add_argument ('par') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogFixBootSector', 'ogFixBootSector int_ndisk int_partition', ['ogFixBootSector 1 1']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogFixBootSector (args.disk, args.par) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogFormat b/client/shared/functions/ogFormat new file mode 100755 index 0000000..cc955a2 --- /dev/null +++ b/client/shared/functions/ogFormat @@ -0,0 +1,28 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from FileSystemLib import ogFormat +from CacheLib import ogFormatCache + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogFormat', 'ogFormat int_ndisk int_nfilesys [str_label]', ['ogFormat 1 1', 'ogFormat 1 1 EXT4', 'ogFormat 1 1 DATA', 'ogFormat 1 1 EXT4 DATA']) + sys.exit (0) + +if 2 == len (sys.argv) and 'cache' == sys.argv[1]: + ret = ogFormatCache() +else: + parser = argparse.ArgumentParser (add_help=False) + parser.add_argument ('disk') + parser.add_argument ('par') + parser.add_argument ('fs', nargs='?', default=None) + parser.add_argument ('label', nargs='?', default=None) + args = parser.parse_args() + ret = ogFormat (args.disk, args.par, args.fs, args.label) + +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogFormatCache b/client/shared/functions/ogFormatCache new file mode 100755 index 0000000..375d8b2 --- /dev/null +++ b/client/shared/functions/ogFormatCache @@ -0,0 +1,22 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from CacheLib import ogFormatCache + +parser = argparse.ArgumentParser (add_help=False) + + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogFormatCache', 'ogFormatCache') + sys.exit (0) + +args = parser.parse_args() + +ret = ogFormatCache () +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogFormatFs b/client/shared/functions/ogFormatFs new file mode 100755 index 0000000..babe6ef --- /dev/null +++ b/client/shared/functions/ogFormatFs @@ -0,0 +1,25 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from FileSystemLib import ogFormatFs + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('disk') +parser.add_argument ('par') +parser.add_argument ('type', nargs='?', default=None) +parser.add_argument ('label', nargs='?', default=None) + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogFormatFs', 'ogFormatFs int_ndisk int_nfilesys [str_label]', ['ogFormatFs 1 1', 'ogFormatFs 1 1 EXT4', 'ogFormatFs 1 1 DATA', 'ogFormatFs 1 1 EXT4 DATA']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogFormatFs (args.disk, args.par, args.type, args.label) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogGetHivePath b/client/shared/functions/ogGetHivePath new file mode 100755 index 0000000..ebac741 --- /dev/null +++ b/client/shared/functions/ogGetHivePath @@ -0,0 +1,23 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from RegistryLib import ogGetHivePath + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('mntpt') +parser.add_argument ('hive') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogGetHivePath', 'ogGetHivePath path_mountpoint [str_hive|str_user]', ['ogGetHivePath /mnt/sda1 SOFTWARE', 'ogGetHivePath /mnt/sda1 user1']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogGetHivePath (args.mntpt, args.hive) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogGetRegistryValue b/client/shared/functions/ogGetRegistryValue new file mode 100755 index 0000000..c3645a5 --- /dev/null +++ b/client/shared/functions/ogGetRegistryValue @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from RegistryLib import ogGetRegistryValue + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('mntpt') +parser.add_argument ('hive') +parser.add_argument ('k') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogGetRegistryValue', 'ogGetRegistryValue path_mountpoint str_hive str_valuename', [r'ogGetRegistryValue /mnt/sda1 SOFTWARE "\Microsoft\NewKey\Value1"']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogGetRegistryValue (args.mntpt, args.hive, args.k) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogInstallFirstBoot b/client/shared/functions/ogInstallFirstBoot new file mode 100755 index 0000000..ea54b00 --- /dev/null +++ b/client/shared/functions/ogInstallFirstBoot @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from PostConfLib import ogInstallFirstBoot + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('disk') +parser.add_argument ('par') +parser.add_argument ('cmdfile') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogInstallFirstBoot', 'ogInstallFirstBoot int_ndisk int_npartition str_filename', ['ogInstallFirstBoot 1 1 filename.cmd']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogInstallFirstBoot (args.disk, args.par, args.cmdfile) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogInstallMiniSetup b/client/shared/functions/ogInstallMiniSetup new file mode 100755 index 0000000..4ffcec0 --- /dev/null +++ b/client/shared/functions/ogInstallMiniSetup @@ -0,0 +1,35 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from PostConfLib import ogInstallMiniSetup + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogInstallMiniSetup', 'MSG_SEE ogInstallFirstBoot ogInstallRunonce') + sys.exit (0) + +parser = argparse.ArgumentParser (add_help=False) +if 4 == len (sys.argv): + parser.add_argument ('disk') + parser.add_argument ('par') + parser.add_argument ('cmdfile') + args = parser.parse_args() + ret = ogInstallMiniSetup (args.disk, args.par, args.cmdfile) +else: + parser.add_argument ('disk') + parser.add_argument ('par') + parser.add_argument ('cmdfile') + parser.add_argument ('user', nargs='?', default=None) + parser.add_argument ('pwd', nargs='?', default=None) + parser.add_argument ('autologin', nargs='?', default=False) + parser.add_argument ('userauto', nargs='?', default=None) + parser.add_argument ('pwdauto', nargs='?', default=None) + args = parser.parse_args() + ret = ogInstallMiniSetup (args.disk, args.par, args.cmdfile, args.user, args.pwd, args.autologin, args.userauto, args.pwdauto) + +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogInstallRunonce b/client/shared/functions/ogInstallRunonce new file mode 100755 index 0000000..5d52354 --- /dev/null +++ b/client/shared/functions/ogInstallRunonce @@ -0,0 +1,29 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from PostConfLib import ogInstallRunonce + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('disk') +parser.add_argument ('par') +parser.add_argument ('cmdfile') +parser.add_argument ('user') +parser.add_argument ('pwd') +parser.add_argument ('autologin') +parser.add_argument ('userauto', nargs='?', default=None) +parser.add_argument ('pwdauto', nargs='?', default=None) + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogInstallRunonce', 'ogInstallRunonce int_ndisk int_npartition str_filename str_adm_user str_adm_password bool_autologin [str_auto_user str_auto_password]', ['ogInstallRunonce 1 1 filename.cmd administrator passadmin 1 userauto passuserauto', 'ogInstallRunonce 1 1 filename.cmd administrator passadmin 0']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogInstallRunonce (args.disk, args.par, args.cmdfile, args.user, args.pwd, args.autologin, args.userauto, args.pwdauto) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogListRegistryKeys b/client/shared/functions/ogListRegistryKeys new file mode 100755 index 0000000..c56d829 --- /dev/null +++ b/client/shared/functions/ogListRegistryKeys @@ -0,0 +1,25 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from RegistryLib import ogListRegistryKeys + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('mntpt') +parser.add_argument ('hive') +parser.add_argument ('k') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogListRegistryKeys', 'ogListRegistryKeys path_mountpoint str_hive str_key', [r'ogListRegistryKeys /mnt/sda1 SOFTWARE "\Microsoft\Windows\CurrentVersion"']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogListRegistryKeys (args.mntpt, args.hive, args.k) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: + for k in ret: print (k) diff --git a/client/shared/functions/ogListRegistryValues b/client/shared/functions/ogListRegistryValues new file mode 100755 index 0000000..b6dcc78 --- /dev/null +++ b/client/shared/functions/ogListRegistryValues @@ -0,0 +1,25 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from RegistryLib import ogListRegistryValues + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('mntpt') +parser.add_argument ('hive') +parser.add_argument ('k') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogListRegistryValues', 'ogListRegistryValues path_mountpoint str_hive str_key', [r'ogListRegistryValues /mnt/sda1 SOFTWARE "\Microsoft\Windows\CurrentVersion"']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogListRegistryValues (args.mntpt, args.hive, args.k) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: + for k in ret: print (k) diff --git a/client/shared/functions/ogMcastSyntax b/client/shared/functions/ogMcastSyntax new file mode 100755 index 0000000..a595498 --- /dev/null +++ b/client/shared/functions/ogMcastSyntax @@ -0,0 +1,34 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from ProtocolLib import ogMcastSyntax + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogMcastSyntax', 'ogMcastSyntax params', ['ogMcastSyntax SENDPARTITION str_sessionSERVER str_device str_tools str_level', 'ogMcastSyntax RECEIVERPARTITION str_sessionCLIENT str_device str_tools str_level', 'ogMcastSyntax SENDFILE str_sessionSERVER str_file', 'ogMcastSyntax RECEIVERFILE str_sessionCLIENT str_file', 'sessionServer syntax: portbase:method:mcastaddress:speed:nclients:ntimeWaitingUntilNclients', 'sessionServer example: 9000:full-duplex|half-duplex|broadcast:239.194.17.36:80M:50:60', 'sessionClient syntax: portbase', 'sessionClient example: 9000', 'sessionClient syntax: portbase:serverIP:TimeOut_session:TimeOut_transmision', 'sessionClient example: 9000:172.17.88.161:40:120']) + sys.exit (0) + +kwargs = {} +parser = argparse.ArgumentParser (add_help=False) +if 'SENDPARTITION' == sys.argv[1] or 'RECEIVERPARTITION' == sys.argv[1]: + parser.add_argument ('op') + parser.add_argument ('sess') + parser.add_argument ('device') + parser.add_argument ('tool') + parser.add_argument ('level') + args = parser.parse_args() + kwargs = { 'device': args.device, 'tool': args.tool, 'level': args.level } +elif 'SENDFILE' == sys.argv[1] or 'RECEIVERFILE' == sys.argv[1]: + parser.add_argument ('op') + parser.add_argument ('sess') + parser.add_argument ('file') + args = parser.parse_args() + kwargs = { 'file': args.file } + +ret = ogMcastSyntax (args.op, args.sess, **kwargs) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogRestoreImage b/client/shared/functions/ogRestoreImage new file mode 100755 index 0000000..57a461c --- /dev/null +++ b/client/shared/functions/ogRestoreImage @@ -0,0 +1,25 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from ImageLib import ogRestoreImage + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('repo') +parser.add_argument ('imgpath') +parser.add_argument ('disk') +parser.add_argument ('par') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogRestoreImage', 'ogRestoreImage str_repo path_image int_ndisk int_npart', ['ogRestoreImage REPO /aula1/win7 1 1']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogRestoreImage (args.repo, args.imgpath, args.disk, args.par) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogSetRegistryValue b/client/shared/functions/ogSetRegistryValue new file mode 100755 index 0000000..d13d47f --- /dev/null +++ b/client/shared/functions/ogSetRegistryValue @@ -0,0 +1,25 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from RegistryLib import ogSetRegistryValue + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('mntpt') +parser.add_argument ('hive') +parser.add_argument ('k') +parser.add_argument ('v') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogSetRegistryValue', 'ogSetRegistryValue path_mountpoint str_hive str_valuename str_data', [r'ogSetRegistryValue /mnt/sda1 SOFTWARE "\Key\SubKey\StringValue" "Abcde Fghij"', r'ogSetRegistryValue /mnt/sda1 SOFTWARE "\Key\SubKey\DwordValue" 1', r'ogSetRegistryValue /mnt/sda1 SOFTWARE "\Key\SubKey\BinaryValue" "04 08 0C 10"']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogSetRegistryValue (args.mntpt, args.hive, args.k, args.v) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogSetWindowsName b/client/shared/functions/ogSetWindowsName new file mode 100755 index 0000000..d199c9d --- /dev/null +++ b/client/shared/functions/ogSetWindowsName @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from BootLib import ogSetWindowsName + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('disk') +parser.add_argument ('par') +parser.add_argument ('name') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogSetWindowsName', 'ogSetWindowsName int_ndisk int_filesys str_name', ['ogSetWindowsName 1 1 PRACTICA-PC']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogSetWindowsName (args.disk, args.par, args.name) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogUcastSyntax b/client/shared/functions/ogUcastSyntax new file mode 100755 index 0000000..f360bc5 --- /dev/null +++ b/client/shared/functions/ogUcastSyntax @@ -0,0 +1,34 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from ProtocolLib import ogUcastSyntax + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogUcastSyntax', 'ogUcastSyntax params', ['ogUcastSyntax SENDPARTITION str_sessionSERVER str_device str_tools str_level', 'ogUcastSyntax RECEIVERPARTITION str_sessionCLIENT str_device str_tools str_level', 'ogUcastSyntax SENDFILE str_sessionSERVER str_file', 'ogUcastSyntax RECEIVERFILE str_sessionCLIENT str_file', 'sessionServer syntax: portbase:ipCLIENT-1:ipCLIENT-2:ipCLIENT-N', 'sessionServer example: 8000:172.17.36.11:172.17.36.12', 'sessionClient syntax: portbase:ipMASTER', 'sessionClient example: 8000:172.17.36.249']) + sys.exit (0) + +kwargs = {} +parser = argparse.ArgumentParser (add_help=False) +if 'SENDPARTITION' == sys.argv[1] or 'RECEIVERPARTITION' == sys.argv[1]: + parser.add_argument ('op') + parser.add_argument ('sess') + parser.add_argument ('device') + parser.add_argument ('tool') + parser.add_argument ('level') + args = parser.parse_args() + kwargs = { 'device': args.device, 'tool': args.tool, 'level': args.level } +elif 'SENDFILE' == sys.argv[1] or 'RECEIVERFILE' == sys.argv[1]: + parser.add_argument ('op') + parser.add_argument ('sess') + parser.add_argument ('file') + args = parser.parse_args() + kwargs = { 'file': args.file } + +ret = ogUcastSyntax (args.op, args.sess, **kwargs) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogUninstallWindowsClient b/client/shared/functions/ogUninstallWindowsClient new file mode 100755 index 0000000..20ad443 --- /dev/null +++ b/client/shared/functions/ogUninstallWindowsClient @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from PostConfLib import ogUninstallWindowsClient + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('disk') +parser.add_argument ('par') +parser.add_argument ('cmdfile') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogUninstallWindowsClient', 'ogUninstallWindowsClient int_ndisk int_filesys str_filename', ['ogUninstallWindowsClient 1 1 filename.cmd']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogUninstallWindowsClient (args.disk, args.par, args.cmdfile) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogUpdateCacheIsNecesary b/client/shared/functions/ogUpdateCacheIsNecesary new file mode 100755 index 0000000..db05cec --- /dev/null +++ b/client/shared/functions/ogUpdateCacheIsNecesary @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from ProtocolLib import ogUpdateCacheIsNecesary + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('repo') +parser.add_argument ('file') +parser.add_argument ('proto') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogUpdateCacheIsNecesary', 'ogUpdateCacheIsNecesary str_repo relative_path_image [protocol|FULL]', ['ogUpdateCacheIsNecesary REPO /PS1_PH1.img UNICAST', 'ogUpdateCacheIsNecesary REPO /ogclient.sqfs FULL']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogUpdateCacheIsNecesary (args.repo, args.file, args.proto) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogWindowsBootParameters b/client/shared/functions/ogWindowsBootParameters new file mode 100755 index 0000000..3a410d9 --- /dev/null +++ b/client/shared/functions/ogWindowsBootParameters @@ -0,0 +1,23 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from BootLib import ogWindowsBootParameters + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('disk') +parser.add_argument ('par') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogWindowsBootParameters', 'ogWindowsBootParameters int_ndisk int_partition', ['ogWindowsBootParameters 1 1']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogWindowsBootParameters (args.disk, args.par) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret) diff --git a/client/shared/functions/ogWindowsRegisterPartition b/client/shared/functions/ogWindowsRegisterPartition new file mode 100755 index 0000000..34036bc --- /dev/null +++ b/client/shared/functions/ogWindowsRegisterPartition @@ -0,0 +1,26 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from BootLib import ogWindowsRegisterPartition + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('registered_disk') +parser.add_argument ('registered_par') +parser.add_argument ('registered_vol') +parser.add_argument ('disk') +parser.add_argument ('par') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogWindowsRegisterPartition', 'ogWindowsRegisterPartition int_ndisk_TO_register int_partition_TO_register str_NewVolume int_disk int_partition', ['ogWindowsRegisterPartition 1 1 c: 1 1']) + sys.exit (0) + +args = parser.parse_args() + +ret = ogWindowsRegisterPartition (args.registered_disk, args.registered_par, args.registered_vol, args.disk, args.par) +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (ret)