refs #1337 add ogUcastSendFile, fix bugs

pull/1/head
Natalia Serrano 2025-01-28 10:08:16 +01:00
parent 6748652d88
commit 4062777183
2 changed files with 42 additions and 2 deletions

View File

@ -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)

View File

@ -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