wiki:ApiFunciones

Version 10 (modified by ramon, 15 years ago) (diff)

Enlazar con documentación Doxygen

TOC(heading=Índice)?

API de funciones

Introducción

Para el desarrollo de la interfaz de programación del proyecto deben seguirse estas reglas de estilo:

  • Las reglas de la API se cumplirán independientemente del lenguaje de programación utilizado.
  • La documentación del código debe se r compatible con Doxygen.
  • Debe incluirse toda la información necesaria en las cabeceras de las funciones (descripción, formato, salidas, notas, etc.).
  • Deben incluirse comentarios descriptivos en los bloques de código.
  • Las funciones devolverán un código de salida al estilo Unix, que indique si se ha ejecutado correctamente o se ha producido alguno de los tipos de errores definidos. En caso de error, también mostrará el mensaje correspondiente.
  • Todos los nombres de funciones y variables deben estar escritos en inglés, deben ser descriptivos y fáciles de recordar.
  • Nombres de funciones al estilo Rembo-C (sólo con las iniciales en mayúsculas), pero sin copiarlos de Rembo-C. Según se estime oportuno, los nombres de funciones podrán tener un prefijo indicativo del proyecto o del componente del proyecto al que pertenece.
  • Las constantes y variables globales deben ir escritas en mayúsculas.

Parámetros

Los parámetros de las funciones deben estar unificados, ésto es, deben ser comprensibles según su tipo y su contexto.

Tipos de parámetros:

  • Disco: identificado por su número de orden.
  • Partición: número de orden de la partición.
    • Identificador de partición: dupla de valores formada por disco y partición (2 parámetros).
  • Sistema de archivos: mnemónico predefinido identificador del tipo de sistema de archivos.
  • Tamaño: número entero con el tamaño de la partición en KB.
    • Definición de partición: pareja de valores formada por sistema de archivos y tamaño, separados por ":" (1 parámetro compuesto).
  • Repositorio: dirección IP del repositorio de imágenes.
  • Caché local: dirección IP del cliente local o localhost
  • Camino: camino de un fichero relativo a su partición, a su repositorio o su caché local.
    • Camino completo: parámetro compuesto por identificador de partición o repositorio y el camino relativo de un fichero (2 o 3 parámetros).
  • Fichero de imagen: ...
  • ...

Parámetros futuras versión

Los actuales sistemas de los que parte OpenGnsys (Hidra, Brutalix, EAC) comparten los parámetros indicados en el apartado anterior. Con dichos parámetros ciertas funcionalidades no podrán ser implementadas, o deben de realizarse de una manera no muy clara. Un ejemplo claro es RestorePartitionFromPartition (EAC), donde ambas particiones pueden ser locales, o pueden ser remotas, es decir un equipo envia por multicast su partión a multiples particiones remotas. La sintaxis podría set tal como RecursoOrigen RecursoDestino. Donde cada Recurso estaría compuesto por unos valores que lo identifiquen. De esta manera tendríamos los siguientes recursos simples: (,)

* DISK (disco local)          DISK:int_disk,int_partition
* DISKREMOTE (disco remoto)   DISKREMOTE:str_IP,int_disk,int_partition
* CDROM (cdrom,dvd)           CDROM:
* USB (dispositivos usb)      USB:
* RAM (particiones en ram)    RAM:
* LOOP (dispositivos loop     LOOP:

y los siguientes recursos compuestos: (;)

* FILE (archivo)              FILE//DISK|diskRemote|crdrom|usb|ram|loop|variables$REPO$CACHE;subdirectorio;fichero

Algunos ejemplos:

*RestorePartitionToPartition Disk:1,1 Disk:1,2 
*RestorePartitionToPartition DiskRemote:1,2:172.16.72.242 DISK:1,2
*UpdateCache File//$GLOBAL:hdimages/curso0809/:xpbase0.lzop1
*RestoreImageToPartition File//$CACHE;hdimages/curso0809/;xpbase0.lzop1  Disk:1,1
*DeployImageToPartition File//$GLOBAL;hdimages/curso0809/;xpbase0.lzop1 Disk:1,1
*CapturePartitionToImage Disk:1,1 File//$GLOBAL;hdimages/curso0809/;xpbase0.lzop

Errores y mensajes

Las funciones deben realizar una comprobación y un tratamiento adecuados de posibles errores y fallos, evitando realizar operaciones innecesarias o incorrectas. Se generarán mensajes de error comprensibles y adecuados que ofrezcan información para detectar y corregir el problema, además de devolver un código de error que pueda ser tratado por otras funciones de la API.

Asimismo, se deben presentar mensajes informativos normalizados sobre el estado y la evolución de las operaciones realizadas.

La implementación de las funciones de la API tendrá en cuenta técnicas de internacionalización, para poder presentar los mensajes y los errores en el idioma del usuario.

(definir lista de errores y formatos de mensajes)

Funciones del motor de clonación

Las funciones de la API se agrupan lógicamente en librerías o clases (según el lenguaje de programación utilizado), con unas características comunes.

Lista de librerías o clases (en orden alfabético):

  • Boot - funciones de postconfiguración y arranque de sistemas de archivos
  • Disk - funciones de gestión de discos
  • File - funciones de control de ficheros y directorios
  • FileSystem - funciones de administración de sistemas de archivos
  • Image - funciones de creación y clonación de imágenes de sistemas de archivos
  • Install - funciones de instalación del sistema
  • Inventory - funciones de inventario de clientes
  • String - funciones de tratamiento de cadenas de caracteres
  • System - funciones básicas del sistema

(lista de funciones para clonar "a mano" o desde scripts)

Funciones del gestor web

(lista de funciones ejecutadas por el gestor web)