wiki:Version2/Desarrollo/Engine

Version 3 (modified by adelcastillo, 13 years ago) (diff)

--

OGR

ogr ó OpenGnSys Runner es un comando que se ha desarrollado para la versión 2 para facilitar el uso del engine. Se basa en ejecutar comandos que se encuentre en el directorio que marque la variable global $OGEDIR. Si la variable no estuviera seteada se usará por defecto el valor: '/opt/opengnsys/engine/' . En esta carpeta se encontrarán los distintos directorios, al que vamos a llamar módulos a partir de ahora, que tiene el engine:

  • net: Scripts para redes.
  • proto: Scripts de protocolos.
  • rellenar todos los que falten.
  • utils: Aquí encontramos todos los scripts propios de está herramienta que facilitarán el uso del engine:
    • help: muestra la ayuda. Si recibe un script como argumento se mostrará la ayuda del script.
    • list: muestra todos los comandos disponibles. Si se le pasa como argumento un módulo mostrará sólo los de el módulo en concreto.
    • listmodules: muestra la lista de módulos.
    • trace: muestra la traza que siguen los scripts.
    • debug: muestra la traza que siguen los scripts pero se pueden modificar los argumentos en cada llamada.
    • ...

Ejemplos de uso:

ogr getNumDisk
ogr help getNumDisk
ogr list

Engine

El engine se encarga de todas las tareas a bajo nivel de OpenGnSys. Las operaciones van desde saber que IP tiene el cliente, como crear particiones, crear imágenes, arrancar una partición, etc. Dentro del engine divisamos dos niveles diferenciados:

  • Scripts de bajo nivel: Son creados principalmente en bash. Realizan las tareas de bajo nivel como saber el número de discos que tiene un ordenador, o el número de particiones de un disco, o qué IP tiene el ordenador asociado, etc. El valor de retorno puede tener los siguiente valores:
    • 0: si el script se ejecuto sin problemas.
    • -1: si hubo problemas que hace que se cancele la ejecución.
    • 1: con problemas pero puede continuar la ejecución.

La salida estándar devuelve el/los valor/es obtenidos por el script y la salida de errores las advertencias o errores que éste tuvo.

  • Scripts de alto nivel: Son creados principalmente en python. Realizan operaciones mucho más compleja como por ejemplo devolver toda la información sobre discos: número de discos, con cuántas particiones cada uno, tamaño, tipo, etc. Además su salida está formateada en json para la comunicación con el WebConsole. Además existe libogr que facilitará la ejecución de comandos desde los scripts python.