diff --git a/client/shared/functions/ogUcastSendFile b/client/shared/functions/ogUcastSendFile new file mode 100755 index 0000000..498965a --- /dev/null +++ b/client/shared/functions/ogUcastSendFile @@ -0,0 +1,39 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from ProtocolLib import ogUcastSendFile + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogUcastSendFile', 'ogUcastSendFile [str_REPOSITORY] [int_ndisk int_npart] /Relative_path_file sesionMcast(puerto:ip:ip:ip)', ['ogUcastSendFile 1 1 /aula1/winxp.img 8000:172.17.36.11:172.17.36.12', 'ogUcastSendFile REPO /aula1/ubuntu.iso sesionUcast', 'ogUcastSendFile CACHE /aula1/winxp.img sesionUcast', 'ogUcastSendFile /opt/opengnsys/images/aula1/hd500.vmx sesionUcast']) + sys.exit (0) + +parser = argparse.ArgumentParser (add_help=False) +if 3 == len (sys.argv): + parser.add_argument ('file', nargs='?', default=None) + parser.add_argument ('sess', nargs='?', default=None) +elif 4 == len (sys.argv): + parser.add_argument ('container', nargs='?', default=None) + parser.add_argument ('file', nargs='?', default=None) + parser.add_argument ('sess', nargs='?', default=None) +elif 5 == len (sys.argv): + parser.add_argument ('disk', nargs='?', default=None) + parser.add_argument ('par', nargs='?', default=None) + parser.add_argument ('file', nargs='?', default=None) + parser.add_argument ('sess', nargs='?', default=None) + +args = parser.parse_args() + +if 3 == len (sys.argv): + ret = ogUcastSendFile (file=args.file, sess=args.sess) +elif 4 == len (sys.argv): + ret = ogUcastSendFile (container=args.container, file=args.file, sess=args.sess) +elif 5 == len (sys.argv): + ret = ogUcastSendFile (disk=args.disk, par=args.par, file=args.file, sess=args.sess) + +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/scripts/updateCache.py b/client/shared/scripts/updateCache.py index 773bef3..179781c 100644 --- a/client/shared/scripts/updateCache.py +++ b/client/shared/scripts/updateCache.py @@ -20,6 +20,7 @@ import os.path import sys +import re import time import subprocess import shutil @@ -60,7 +61,7 @@ if SystemLib.ogGetCaller() not in ['deployImage', 'restoreBaseImage', 'restoreDi # Si MCASTWAIT menos que tiempo de espera del servidor lo aumento MCASTWAIT = ogGlobals.MCASTWAIT if ':' in optprotocolo: - port, wait = optprotocolo.split (':') + port, wait, *other = optprotocolo.split (':') else: port, wait = ('', '') if protocolo.startswith ('MULTICAST') and re.match (r'^-?\d+$', wait): @@ -187,7 +188,7 @@ elif 'MULTICAST' == protocolo: sys.exit (1) SystemLib.ogEcho (['log', 'session'], None, f'ogMcastReceiverFile {port} CACHE {path}') - if not SystemLib.ogExecAndLog ('command', ProtocolLib.ogMcastReceiverFile, port, 'CACHE', path): + if not SystemLib.ogExecAndLog ('command', ProtocolLib.ogMcastReceiverFile, sess=port, container='CACHE', file=path): sys.exit (1) resumeupdatecache = subprocess.run (['grep', '--max-count', '1', '--before-context', '1', 'Transfer complete', f'{ogGlobals.OGLOGCOMMAND}.tmp'], capture_output=True, text=True).stdout