#!/usr/bin/python3 import sys import os.path import locale import importlib.util def load_lang (name): global lang if name in sys.modules: return True elif (spec := importlib.util.find_spec (name)) is not None: lang = importlib.util.module_from_spec (spec) sys.modules[name] = lang spec.loader.exec_module (lang) return True else: #print(f"can't find the {name!r} module") return False l = locale.getlocale()[0] if not l: print (f"couldn't set locale") if not l or not load_lang (f'lang_{l}'): if not load_lang ('lang_en_GB'): raise ModuleNotFoundError (f"can't find the default language module", name=name) TZ='Europe/Madrid' ## engine.cfg OGLOGSESSION='/tmp/session.log' OGLOGCOMMAND='/tmp/command.log' #OGWINCHKDISK=True #Hacer chkdisk tras la clonacion ACTIONCACHEFULL='NONE' #Que hacer cuando la cache no tenga espacio libre. [ NONE | FORMAT ] ] RESTOREPROTOCOLNOTCACHE=None #Que protocolo de restauracion usar en el caso de que no exista cache o no exista espacio sufiente. [NONE | UNICAST | MULTICAST].NONE retorna error IMGPROG='partclone' IMGCOMP='lzop' IMGEXT='img' IMGREDUCE=True #OGWINREDUCE=True #Al enviar particion reducir el sistema de archivos previamente. MCASTERRORSESSION=120 #timeout (segundos) para abortar la sesion de multicast si no contacta con el servidor de multicast. Valor asignado a 0, utiliza los valores por defecto de udp-cast MCASTWAIT=30 # timeout (segundos) para abortar la la transferencia si se interrumpe. Valor asignado a 0, utiliza los valores por defecto de udp-cast #CREATESPEED=100000*4 # Factor para calcular el time-out al crear la imagen. 100000k -> 4s #FACTORSYNC=120 # Factor de compresion para las imagenes (windos en ext4). #BACKUP=False # Realizar copia de seguridad antes de crear la imagen. #IMGFS='EXT4' # Sistema de archivo de la imagenes sincronizadas. EXT4 o BTRFS #OGSLEEP=20 # Tiempo de sleep antes de realizar el reboot NODEBUGFUNCTIONS=['ogCreateImageSyntax', 'ogGetHivePath', 'ogGetOsType', 'ogRestoreImageSyntax', 'ogUnmountAll', 'ogUnmountCache'] # Funciones que no deben mostrar salida de avisos si son llamadas por otras funciones. #DEFAULTSPEED='' ## /engine.cfg ## loadenviron.sh OPENGNSYS = '/opt/opengnsys' OGBIN = os.path.join (OPENGNSYS, 'bin') OGETC = os.path.join (OPENGNSYS, 'etc') OGLIB = os.path.join (OPENGNSYS, 'lib') OGAPI = os.path.join (OGLIB, 'engine', 'bin') OGSCRIPTS = os.path.join (OPENGNSYS, 'scripts') OGIMG = os.path.join (OPENGNSYS, 'images') OGCAC = os.path.join (OPENGNSYS, 'cache') OGLOG = os.path.join (OPENGNSYS, 'log') OGLOGFILE = f'{OGLOG}/192.168.42.42' ## TODO import NetLib; OGLOGFILE = f'$OGLOG/{NetLib.ogGetIpAddress()}.log' DEBUG = 'yes' ## /loadenviron.sh # Declaración de códigos de error. OG_ERR_FORMAT=1 # Formato de ejecución incorrecto. OG_ERR_NOTFOUND=2 # Fichero o dispositivo no encontrado. OG_ERR_PARTITION=3 # Error en partición de disco. OG_ERR_LOCKED=4 # Partición o fichero bloqueado. OG_ERR_IMAGE=5 # Error al crear o restaurar una imagen. OG_ERR_NOTOS=6 # Sin sistema operativo. OG_ERR_NOTEXEC=7 # Programa o función no ejecutable. # Códigos 8-13 reservados por ogAdmClient.h OG_ERR_NOTWRITE=14 # No hay acceso de escritura OG_ERR_NOTCACHE=15 # No hay particion cache en cliente OG_ERR_CACHESIZE=16 # No hay espacio en la cache para almacenar fichero-imagen OG_ERR_REDUCEFS=17 # Error al reducir sistema archivos OG_ERR_EXTENDFS=18 # Error al expandir el sistema de archivos OG_ERR_OUTOFLIMIT=19 # Valor fuera de rango o no válido. OG_ERR_FILESYS=20 # Sistema de archivos desconocido o no se puede montar OG_ERR_CACHE=21 # Error en partición de caché local OG_ERR_NOGPT=22 # El disco indicado no contiene una particion GPT OG_ERR_REPO=23 # Error al montar el repositorio de imagenes OG_ERR_NOMSDOS=24 # El disco indicado no contienen una particion MSDOS OG_ERR_IMGSIZEPARTITION=30 # Error al restaurar partición más pequeña que la imagen OG_ERR_UPDATECACHE=31 # Error al realizar el comando updateCache OG_ERR_DONTFORMAT=32 # Error al formatear OG_ERR_IMAGEFILE=33 # Archivo de imagen corrupto o de otra versión de $IMGPROG OG_ERR_GENERIC=40 # Error imprevisto no definido OG_ERR_UCASTSYNTAXT=50 # Error en la generación de sintaxis de transferenica UNICAST OG_ERR_UCASTSENDPARTITION=51 # Error en envío UNICAST de partición OG_ERR_UCASTSENDFILE=52 # Error en envío UNICAST de un fichero OG_ERR_UCASTRECEIVERPARTITION=53 # Error en la recepcion UNICAST de una particion OG_ERR_UCASTRECEIVERFILE=54 # Error en la recepcion UNICAST de un fichero OG_ERR_MCASTSYNTAXT=55 # Error en la generacion de sintaxis de transferenica Multicast. OG_ERR_MCASTSENDFILE=56 # Error en envio MULTICAST de un fichero OG_ERR_MCASTRECEIVERFILE=57 # Error en la recepcion MULTICAST de un fichero OG_ERR_MCASTSENDPARTITION=58 # Error en envio MULTICAST de una particion OG_ERR_MCASTRECEIVERPARTITION=59 # Error en la recepcion MULTICAST de una particion OG_ERR_PROTOCOLJOINMASTER=60 # Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER OG_ERR_DONTMOUNT_IMAGE=70 # Error al montar una imagen sincronizada. OG_ERR_DONTSYNC_IMAGE=71 # Imagen no sincronizable (es monolitica) OG_ERR_DONTUNMOUNT_IMAGE=72 # Error al desmontar la imagen OG_ERR_NOTDIFFERENT=73 # No se detectan diferencias entre la imagen basica y la particion. OG_ERR_SYNCHRONIZING=74 # Error al sincronizar, puede afectar la creacion/restauracion de la imagen OG_ERR_NOTUEFI=80 # La interfaz UEFI no está activa OG_ERR_NOTBIOS=81 # La interfaz BIOS legacy no está activa