From 09fb6ed078c4230eb3e6e81c602df8803783323e Mon Sep 17 00:00:00 2001 From: lgromero Date: Mon, 19 Feb 2024 18:02:08 +0100 Subject: [PATCH 01/13] refs #208 First draft of Ogboot API documentation --- README.md | 698 ++++++++++++++++++------------------------------------ 1 file changed, 233 insertions(+), 465 deletions(-) diff --git a/README.md b/README.md index 3e3bc61..d7f000e 100644 --- a/README.md +++ b/README.md @@ -10,513 +10,281 @@ La API de Ogboot proporciona una interfaz para facilitar el proceso de inicializ El presente documento detalla los endpoints del API con sus respectivos parámetros de entrada así como las acciones que llevan a cabo +### Configurar Modo de Cliente -### Obtener Lista de Clientes +Configura el modo de arranque PXE para un cliente específico. -Obtiene la lista de clientes registrados en el sistema. +**URL:** `ogboot/clients/setclientmode` +**Método HTTP:** POST -**URL:** /clients +**Parámetros de entrada:** +- `template`: Nombre de la plantilla PXE. +- `scope`: Nombre del cliente (nombre de ordenador o nombre de aula). +- `mode`: Modo de configuración ("TEMP" para temporal o "PERM" para permanente). + +**Ejemplo de Solicitud:** + +```bash +curl -X POST -H "Authorization: $API_KEY" -d '{"template": "plantilla", "scope": "nombre_cliente", "mode": "PERM"}' http://example.com/ogboot/clients/setclientmode +``` + +**Respuestas:** +- **Código 200 OK:** La configuración de modo de cliente se realizó exitosamente. +- **Código 400 Bad Request:** La solicitud es incorrecta. La configuración de modo de cliente no se ha realizado correctamente. +- **Código 401 Unauthorized:** La solicitud no está autorizada. Se requiere un token de autenticación válido. + + + +### Obtener Configuración de ogboot + +Devuelve la configuración actual del ogboot. + +**URL:** `ogboot/config` **Método HTTP:** GET -**Ejemplo de Solicitud:** - -``` -curl -X GET -H "Authorization: $API_KEY" http://127.0.0.1:8888/clients -``` - -### Encender Equipos Remotamente (Wake-on-LAN) - -Envía comandos de encendido remoto a uno o varios equipos utilizando Wake-on-LAN. - -**URL:** /wol -**Método HTTP:** POST -**Parámetros de entrada:** -- type (string): Tipo de envío de paquetes Wake-on-LAN (unicast, broadcast, multicast, etc.). -- clients (array): Lista de objetos que contienen la dirección IP (addr) y la dirección MAC (mac) de los equipos a encender. - -**Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/wol -d @wol.json -``` -**Contenido de wol.json:** -``` -{ "type" : "unicast", "clients" : [ { "addr" : "192.168.2.1", "mac" : "00AABBCCDD01" } ] } -``` - -### Gestión de Sesión - -Gestiona las sesiones de usuario en el sistema. - -**URL:** /session -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. -- disk (string): Número del disco duro. -- partition (string): Número de la partición. **Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/session -d @session.json -``` -**Contenido de session.json:** -```json -{ "clients" : [ "192.168.2.1", "192.168.2.2" ], "disk" : "0", "partition" : "1"} + +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/config ``` -### Apagar Equipos +**Respuestas:** +- **Código 200 OK:** La configuración del ogboot se obtuvo exitosamente. + - **Contenido:** Configuración del ogboot en formato JSON. + ```json + { + "config-file": "/opt/opengnsys/etc/ogliveinfo.json", + "download-url": "https://opengnsys.es/trac/downloads", + "download-dir": "/opt/opengnsys/lib", + "install-dir": "/opt/opengnsys/tftpboot", + "default-name": "ogLive", + "min-release": "r20190601" + } + ``` +- **Código 400 Bad Request:** La solicitud es incorrecta. La configuración del ogboot no se ha obtenido correctamente. -Envía comandos de apagado a uno o varios equipos. -**URL:** /poweroff -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. + +### Mostrar Información de Todos los Clientes ogLive Instalados + +Muestra información en formato JSON sobre todos los clientes ogLive instalados. + +**URL:** `/clients/oglives/` +**Método HTTP:** GET **Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/poweroff -d @poweroff.json -``` -**Contenido de poweroff.json:** -```json -{ "clients" : [ "192.168.2.1", "192.168.2.2" ] } -``` -### Reiniciar Equipos +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/ -Envía comandos de reinicio a uno o varios equipos. - -**URL:** /reboot -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. - -**Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/reboot -d @reboot.json -``` -**Contenido de reboot.json:** -```json -{ "clients" : [ "192.168.2.1", "192.168.2.2" ] } -``` - -### Detener Operaciones en Curso - -Detiene las operaciones en curso en los equipos. - -**URL:** /stop -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. - -**Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/stop -d @stop.json -``` -**Contenido de stop.json:** -```json -{ "clients" : [ "192.168.2.1", "192.168.2.2" ] } -``` - -### Reiniciar Equipos - -Envía comandos de reinicio a uno o varios equipos. - -**URL:** /reboot -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. - -**Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/reboot -d @reboot.json -``` -**Contenido de reboot.json:** -```json -{ "clients" : [ "192.168.2.1", "192.168.2.2" ] } -``` - -### Actualizar Información de Equipos - -??????? - -**URL:** /refresh -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. - -**Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/refresh -d @refresh.json -``` -**Contenido de refresh.json:** -```json -{ "clients" : [ "192.168.2.1", "192.168.2.2" ] } -``` - -### Obtener Información de Hardware - -Obtiene información detallada sobre el hardware de los equipos. - -**URL:** /hardware -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. - -**Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/hardware -d @post_clients.json -``` -**Contenido de post_clients.json:** -```json -{ "clients" : [ "192.168.2.1", "192.168.2.2" ] } -``` - -### Obtener Información de Software - -Obtiene información sobre el software instalado en los equipos. - -**URL:** /software -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. - -**Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/software -d @post_clients.json -``` -**Contenido de post_clients.json:** -```json -{ "clients" : [ "192.168.2.1", "192.168.2.2" ] } -``` - - -### Crear Imagen del Sistema - -Crea una imagen del sistema en los equipos especificados. - -**URL:** /image/create -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. -- disk (string): Número del disco duro. -- partition (string): Número de la partición. -- code (string): Código de la imagen. -- id (string): Identificador único de la imagen. -- name (string): Nombre de la imagen. -- repository (string): Dirección IP del repositorio de imágenes. - -**Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/create -d @create_image.json -``` -**Contenido de create_image.json:** -```json -{ "clients" : [ "192.168.2.1" ], "disk" : "1", "partition" : "1", "code" : "1", "id" : "1", "name" : "test", "repository" : "192.168.2.4" } -``` - -### Restaurar Imagen del Sistema - -Restaura una imagen del sistema en los equipos especificados. - -**URL:** /image/restore -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. -- disk (string): Número del disco duro. -- partition (string): Número de la partición. -- name (string): Nombre de la imagen a restaurar. -- repository (string): Dirección IP del repositorio de imágenes. -- type (string): Tipo de envío de la imagen (UNICAST, BROADCAST, MULTICAST, etc.). -- profile (string): Perfil de configuración de la imagen. -- id (string): Identificador único de la imagen. - -**Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/restore -d @restore_image.json -``` -**Contenido de restore_image.json:** -```json -{ "clients" : [ "192.168.56.11" ], "disk" : "1", "partition" : "1", "name" : "test", "repository" : "192.168.56.10", "type" : "UNICAST", "profile": "1", "id": "1"} -``` - -### Configuración Inicial del Sistema - -Realiza la configuración inicial del sistema en los equipos especificados. - -**URL:** /setup -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. -- disk (string): Número del disco duro. -- cache (string): Indicador de activación de la caché. -- cache_size (string): Tamaño de la caché. -- partition_setup (array): Configuración de particiones. Cada objeto dentro del array debe contener los siguientes campos: - - partition (string): Número de la partición. - - code (string): Código de tipo de partición. - - filesystem (string): Sistema de archivos de la partición. - - size (string): Tamaño de la partición. - - format (string): Indicador de formateo de la partición. - -**Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/setup -d @setup_image.json -``` -**Contenido de setup_image.json:** -```json -{ - "clients" : [ "192.168.56.11" ], - "disk" : "1", - "cache" : "1", - "cache_size" : "0", - "partition_setup": [ - { "partition": "1", "code": "LINUX", "filesystem": "EMPTY", "size": "498688", "format": "0" }, - { "partition": "2", "code": "LINUX-SWAP", "filesystem": "EMPTY", "size": "199987", "format": "0" }, - { "partition": "3", "code": "LINUX", "filesystem": "EMPTY", "size": "31053824", "format": "0" }, - { "partition": "4", "code": "EMPTY", "filesystem": "EMPTY", "size": "0", "format": "0" } - ] -} -``` - - -### Crear Imagen Básica del Sistema - -Crea una imagen básica del sistema en los equipos especificados. - -**URL:** /image/create/basic -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. -- disk (string): Número del disco duro. -- partition (string): Número de la partición. -- code (string): Código de la imagen. -- id (string): Identificador único de la imagen. -- name (string): Nombre de la imagen. -- repository (string): Dirección IP del repositorio de imágenes. -- sync_params (object): Parámetros de sincronización. Debe contener los siguientes campos: - - sync (string) - - diff (string) - - remove (string) - - compress (string) - - cleanup (string) - - cache (string) - - cleanup_cache (string) - - remove_dst (string) - -**Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/create/basic -d @create_basic_image.json -``` -**Contenido de create_basic_image.json:** -```json -{ - "clients":["192.168.56.11"], - "disk":"1", - "partition":"1", - "code":"131", - "id":"8", - "name":"debianbasica", - "repository":"192.168.56.10", - "sync_params":{ - "sync":"1", - "diff":"0", - "remove":"1", - "compress":"0", - "cleanup":"0", - "cache":"0", - "cleanup_cache":"0", - "remove_dst":"0" +[ + { + "distribution": "focal", + "kernel": "5.11.0-22-generic", + "architecture": "amd64", + "revision": "r20210413", + "directory": "ogLive-5.11.0-r20210413", + "iso": "ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso" + }, + { + "distribution": "focal", + "kernel": "5.13.0-27-beta", + "architecture": "amd64", + "revision": "r20210706", + "directory": "ogLive-5.13.0-r20210706", + "iso": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso" } -} +] + ``` -### Crear Imagen Incremental del Sistema +**Respuestas:** +- **Código 200 OK:** La información sobre todos los clientes ogLive instalados se obtuvo exitosamente. + - **Contenido:** Información sobre todos los clientes ogLive instalados en formato JSON. -Crea una imagen incremental del sistema en los equipos especificados. +### Mostrar Información del Cliente ogLive Predeterminado -**URL:** /image/create/incremental -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. -- disk (string): Número del disco duro. -- partition (string): Número de la partición. -- id (string): Identificador único de la imagen. -- name (string): Nombre de la imagen. -- repository (string): Dirección IP del repositorio de imágenes. -- sync_params (object): Parámetros de sincronización. Debe contener los siguientes campos: - - sync (string) - - path (string) - - diff (string) - - diff_id (string) - - diff_name (string) - - remove (string) - - compress (string) - - cleanup (string): Indicador de limpieza. - - cache (string) - - cleanup_cache (string) - - remove_dst (string) +Muestra información en formato JSON sobre el cliente ogLive marcado como predeterminado. + +**URL:** `/clients/oglives/show-default` +**Método HTTP:** GET **Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/create/incremental -d @create_incremental_image.json -``` -**Contenido de create_incremental_image.json:** -```json + +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/show-default + { - "clients":["192.168.56.11"], - "disk":"1", - "partition":"1", - "id":"3", - "name":"basica1", - "repository":"192.168.56.10", - "sync_params":{ - "sync":"1", - "path":"", - "diff":"0", - "diff_id":"4", - "diff_name":"p2", - "remove":"1", - "compress":"0", - "cleanup":"0", - "cache":"0", - "cleanup_cache":"0", - "remove_dst":"0" - } + "distribution": "focal", + "kernel": "5.11.0-22-generic", + "architecture": "amd64", + "revision": "r20210413", + "directory": "ogLive-5.11.0-r20210413", + "iso": "ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso" } + ``` -### Restaurar Imagen Básica del Sistema +**Respuestas:** +- **Código 200 OK:** La información sobre el cliente ogLive predeterminado se obtuvo exitosamente. + - **Contenido:** Información sobre el cliente ogLive predeterminado en formato JSON. -Restaura una imagen básica del sistema en los equipos especificados. +### Mostrar Información de un Cliente ogLive Específico -**URL:** /image/restore/basic -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. -- disk (string): Número del disco duro. -- partition (string): Número de la partición. -- id (string): Identificador único de la imagen. -- name (string): Nombre de la imagen. -- repository (string): Dirección IP del repositorio de imágenes. -- profile (string): Perfil de configuración de la imagen. -- type (string): Tipo de envío de la imagen (UNICAST, BROADCAST, MULTICAST, etc.). -- sync_params (object): Parámetros de sincronización. Debe contener los siguientes campos: - - path (string) - - method (string) - - sync (string) - - diff (string) - - remove (string) - - compress (string) - - cleanup (string) - - cache (string) - - cleanup_cache (string) - - remove_dst (string) +Muestra información en formato JSON sobre un cliente ogLive instalado específico, identificado por su índice o directorio. + +**URL:** `/clients/oglives/show/{Index|Dir}` +**Método HTTP:** GET + +**Parámetros de entrada:** +- `Index|Dir`: Índice numérico o directorio del cliente ogLive. **Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/restore/basic -d @restore_basic_image.json -``` -**Contenido de restore_basic_image.json:** -```json + +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/show/0 + { - "clients":["192.168.56.11"], - "disk":"1", - "partition":"1", - "id":"9", - "name":"test", - "repository":"192.168.56.10", - "profile":"17", - "type":"UNICAST", - "sync_params":{ - "path":"", - "method":"1", - "sync":"1", - "diff":"0", - "remove":"1", - "compress":"0", - "cleanup":"0", - "cache":"0", - "cleanup_cache":"0", - "remove_dst":"0" - } + "distribution": "focal", + "kernel": "5.13.0-27-beta", + "architecture": "amd64", + "revision": "r20210706", + "directory": "ogLive-5.13.0-r20210706", + "iso": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso" } + ``` -### Restaurar Imagen Incremental del Sistema -Restaura una imagen incremental del sistema en los equipos especificados. +**Respuestas:** +- **Código 200 OK:** La información sobre el cliente ogLive específico se obtuvo exitosamente. + - **Contenido:** Información sobre el cliente ogLive específico en formato JSON. -**URL:** /image/restore/incremental -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. -- disk (string): Número del disco duro. -- partition (string): Número de la partición. -- id (string): Identificador único de la imagen. -- name (string): Nombre de la imagen. -- repository (string): Dirección IP del repositorio de imágenes. -- profile (string): Perfil de configuración de la imagen. -- type (string): Tipo de envío de la imagen (UNICAST, BROADCAST, MULTICAST, etc.). -- sync_params (object): Parámetros de sincronización. Debe contener los siguientes campos: - - diff_id (string) - - diff_name (string) - - path (string) - - method (string) - - sync (string) - - diff (string) - - remove (string) - - compress (string) - - cleanup (string) - - cache (string) - - cleanup_cache (string) - - remove_dst (string) +### Buscar Índice o Directorio del Cliente ogLive Correspondiente + +Muestra el ogLive correspondiente al proporcionar su índice o directorio +**URL:** `/clients/oglives/{Index}` +**Método HTTP:** GET + +**Parámetros de entrada:** +- `Index|Dir`: Índice numérico o directorio del cliente ogLive. **Ejemplo de Solicitud:** -``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/restore/incremental -d @restore_incremental_image.json -``` -**Contenido de restore_incremental_image.json:** -```json -{ - "clients":["192.168.56.11"], - "disk":"1", - "partition":"1", - "id":"9", - "name":"test", - "repository":"192.168.56.10", - "profile":"17", - "type":"UNICAST", - "sync_params":{ - "diff_id":"1", - "diff_name":"test", - "path":"", - "method":"1", - "sync":"1", - "diff":"0", - "remove":"1", - "compress":"0", - "cleanup":"0", - "cache":"0", - "cleanup_cache":"0", - "remove_dst":"0" - } -} + +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/openGnsys/clients/oglives/0 + +ogLive-5.11.0-r20210413 + ``` +**Respuestas:** +- **Código 200 OK:** La búsqueda del índice o directorio del cliente ogLive correspondiente se realizó exitosamente. + - **Contenido:** Índice numérico o directorio del cliente ogLive correspondiente en formato JSON. -### Run Schedule -?????? -**URL:** /run/schedule -**Método HTTP:** POST -**Parámetros de entrada:** -- clients (array): Lista de direcciones IP de los clientes. +### Mostrar Menú de Descarga de Imagen de ogLive + +Muestra un menú para descargar una imagen de ogLive desde el sitio web de OpenGnsys. + +**URL:** `/images/download` +**Método HTTP:** GET **Ejemplo de Solicitud:** + +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/images/download + +Available downloads (+ = installed, * = full compatibility): + 1) (*) (+) ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso + 2) (*) (+) ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso + 3) (*) ogLive-focal-5.8.0-50-generic-amd64-r20210413.992ebb9.iso + 4) (*) ogLive-bionic-5.4.0-40-generic-amd64-r20200629.85eceaf.iso + 5) (*) ogLive-bionic-5.0.0-27-generic-amd64-r20190830.7208cc9.iso + 6) (*) ogLive-bionic-5.0.0-15-generic-amd64-r20190605.527cd97.iso + 7) ogLive-xenial-4.8.0-39-generic-amd64-r5652.iso + 8) ogLive-xenial-4.13.0-17-generic-amd64-r5520.iso + 9) ogLive-precise-3.2.0-23-generic-r5159.iso +10) ogLive-xenial-4.8.0-39-generic-amd64-r5331.iso +11) ogLive-xenial-4.8.0-39-generic-amd64-r5225.iso +12) ogLive-precise-3.2.0-23-generic-r4820.iso +13) ogLive-xenial-4.4.0-34-generic-r4999.iso +14) ogLive-wily-4.2.0-35-generic-r4919.iso +15) ogLive-vivid-3.19.0-49-generic-r4795.iso +16) ogLive-precise-3.2.0-23-generic-r4311.iso +17) ogLive-precise-3.11.0-26-generic-r4413.iso +18) ogLive-raring-3.8.0-22-generic-r3836.iso +19) ogLive-quantal-3.7.6-030706-generic-r3619.iso +20) ogLive-precise-3.2.0-23-generic-r3257.iso +21) ogLive-precise-3.2.0-23-generic-pae-r3017.iso +22) ogLive-oneiric-3.0.0-14-generic-r2439.iso +23) ogLive-natty-2.6.38-8-generic-pae-r2303.iso +24) ogLive-natty-2.6.38-8-generic-pae-r2268.iso +#? + ``` -curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/run/schedule -d @run_schedule.json + +**Respuestas:** +- **Código 200 OK:** El menú de descarga de la imagen de ogLive se muestra exitosamente. +- **Código 400 Bad Request:** La solicitud es incorrecta. El menú de descarga de la imagen de ogLive no se ha mostrado correctamente. + +### Descargar Imagen de ogLive Específica + +Descarga una imagen de ogLive específica desde el sitio web de OpenGnsys. + +**URL:** `/images/download/{iso}` +**Método HTTP:** GET + +**Parámetros de entrada:** +- `iso`: Nombre de la imagen de ogLive a descargar. + +**Ejemplo de Solicitud:** + +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/images/download/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso ``` -**Contenido de run_schedule.json:** -```json -{ - "clients":["192.168.56.11"] -} -``` \ No newline at end of file + +**Respuestas:** +- **Código 200 OK:** La imagen de ogLive se descargó exitosamente. +- **Código 400 Bad Request:** La solicitud es incorrecta. La imagen de ogLive no se ha descargado correctamente. + +### Instalar Nuevo Cliente ogLive desde Imagen Descargada + +Instala un nuevo cliente ogLive utilizando una imagen de ogLive previamente descargada. + +**URL:** `/images/install/{iso}` +**Método HTTP:** POST + +**Parámetros de entrada:** +- `iso`: Nombre de la imagen de ogLive a instalar. + +**Ejemplo de Solicitud:** + +```bash +curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/install/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso +``` + +**Respuestas:** +- **Código 200 OK:** El cliente ogLive se instaló exitosamente desde la imagen descargada. +- **Código 400 Bad Request:** La solicitud es incorrecta. El cliente ogLive no se ha instalado correctamente. + +### Desinstalar Cliente ogLive y Eliminar Imagen + +Desinstala un cliente ogLive y elimina la imagen asociada. + +**URL:** `/images/uninstall/{iso}` +**Método HTTP:** POST + +**Parámetros de entrada:** +- `iso`: Nombre de la imagen de ogLive a desinstalar. + +**Ejemplo de Solicitud:** + +```bash +curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/uninstall/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso +``` + +**Respuestas:** +- **Código 200 OK:** El cliente ogLive se desinstaló y la imagen asociada se eliminó exitosamente. +- **Código 400 Bad Request:** La solicitud es incorrecta. El cliente ogLive no se ha desinstalado correctamente. + From b28ac5a96a4f0be8e27a3375c28d08f15487119b Mon Sep 17 00:00:00 2001 From: lgromero Date: Tue, 20 Feb 2024 13:47:22 +0100 Subject: [PATCH 02/13] refs #208 Adds new endpoints clientx/pxes --- README.md | 123 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 99 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index d7f000e..d01774a 100644 --- a/README.md +++ b/README.md @@ -10,28 +10,19 @@ La API de Ogboot proporciona una interfaz para facilitar el proceso de inicializ El presente documento detalla los endpoints del API con sus respectivos parámetros de entrada así como las acciones que llevan a cabo -### Configurar Modo de Cliente +### Tabla de Contenido -Configura el modo de arranque PXE para un cliente específico. +1. [Obtener configuración de ogboot](#obtener-configuración-de-ogboot) - `ogboot/config` +2. [Mostrar información de todos los clientes ogLive instalados](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `/clients/oglives` +3. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `/clients/oglives/show-default` +4. [Mostrar información de un cliente ogLive específico](#mostrar-información-de-un-cliente-oglive-específico) - `/clients/oglives/show/{Index|Dir}` +5. [Buscar índice o directorio del cliente ogLive correspondiente](#buscar-índice-o-directorio-del-cliente-oglive-correspondiente) - `/clients/oglives/{Index}` +6. [Configurar modo de cliente](#configurar-modo-de-cliente) - `/clients/setpxe` +7. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `/images/download` +8. [Descargar imagen de ogLive específica](#descargar-imagen-de-oglive-específica) - `/images/download/{iso}` +9. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `/images/upload/{iso}` +10. [Elimina cliente ogLive](#desinstalar-cliente-oglive-y-eliminar-imagen) - `/images/remove/{iso}` -**URL:** `ogboot/clients/setclientmode` -**Método HTTP:** POST - -**Parámetros de entrada:** -- `template`: Nombre de la plantilla PXE. -- `scope`: Nombre del cliente (nombre de ordenador o nombre de aula). -- `mode`: Modo de configuración ("TEMP" para temporal o "PERM" para permanente). - -**Ejemplo de Solicitud:** - -```bash -curl -X POST -H "Authorization: $API_KEY" -d '{"template": "plantilla", "scope": "nombre_cliente", "mode": "PERM"}' http://example.com/ogboot/clients/setclientmode -``` - -**Respuestas:** -- **Código 200 OK:** La configuración de modo de cliente se realizó exitosamente. -- **Código 400 Bad Request:** La solicitud es incorrecta. La configuración de modo de cliente no se ha realizado correctamente. -- **Código 401 Unauthorized:** La solicitud no está autorizada. Se requiere un token de autenticación válido. @@ -65,6 +56,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/config + ### Mostrar Información de Todos los Clientes ogLive Instalados Muestra información en formato JSON sobre todos los clientes ogLive instalados. @@ -183,6 +175,89 @@ ogLive-5.11.0-r20210413 +### Obtener Todos los Archivos de Arranque + +Devuelve todos los archivos de arranque PXE y sus direcciones MAC asociadas. + +**URL:** `/ogboot/clients/pxes` +**Método HTTP:** GET + +**Respuestas:** +- **Código 200 OK:** La lista de archivos de arranque PXE se obtuvo exitosamente. + - **Contenido:** Lista de archivos de arranque PXE con sus direcciones MAC asociadas. +- **Código 400 Bad Request:** La solicitud es incorrecta. La lista de archivos de arranque PXE no se obtuvo correctamente. + + + +### Obtener Archivo de Arranque + +Devuelve el archivo de arranque PXE del ordenador con la dirección MAC correspondiente. + +**URL:** `/ogboot/clients/pxes/{mac}` +**Método HTTP:** GET + +**Parámetros de ruta:** +- `mac`: Dirección MAC del ordenador. + +**Respuestas:** +- **Código 200 OK:** El archivo de arranque PXE se obtuvo exitosamente. + - **Contenido:** Archivo de arranque PXE en formato deseado. +- **Código 400 Bad Request:** La solicitud es incorrecta. El archivo de arranque PXE no se obtuvo correctamente. + + + +### Crear Archivo de Arranque + +Crea un archivo de arranque PXE para el ordenador basado en la plantilla indicada y utilizando los datos almacenados en la base de datos. + +**URL:** `/ogboot/clients/pxes` +**Método HTTP:** POST + +**Parámetros de entrada:** +- `bootopt`: Plantilla de arranque PXE. +- `hostname`: Nombre del ordenador. +- `lang`: Idioma de arranque. + +**Respuestas:** +- **Código 200 OK:** El archivo de arranque PXE se creó exitosamente. +- **Código 400 Bad Request:** La solicitud es incorrecta. El archivo de arranque PXE no se creó correctamente. + +### Eliminar Archivo de Arranque + +Borra el archivo de arranque PXE del ordenador con la dirección MAC correspondiente. + +**URL:** `/ogboot/clients/pxes` +**Método HTTP:** DELETE + +**Parámetros de entrada:** +- `mac`: Dirección MAC del ordenador. + +**Respuestas:** +- **Código 200 OK:** El archivo de arranque PXE se eliminó exitosamente. +- **Código 400 Bad Request:** La solicitud es incorrecta. El archivo de arranque PXE no se eliminó correctamente. + + +### Actualizar Repositorio de Arranque + +Actualiza la IP del repositorio en los archivos de arranque PXE de todos los equipos asociados. + +**URL:** `/ogboot/clients/pxe/update-repo` +**Método HTTP:** POST + +**Parámetros de entrada:** +- `repoid`: Campo identificador del repositorio. + +**Respuestas:** +- **Código 200 OK:** La IP del repositorio se actualizó en los archivos de arranque PXE exitosamente. +- **Código 400 Bad Request:** La solicitud es incorrecta. La IP del repositorio no se actualizó correctamente. + + + + + + + + ### Mostrar Menú de Descarga de Imagen de ogLive Muestra un menú para descargar una imagen de ogLive desde el sitio web de OpenGnsys. @@ -252,7 +327,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/images/downlo Instala un nuevo cliente ogLive utilizando una imagen de ogLive previamente descargada. -**URL:** `/images/install/{iso}` +**URL:** `/images/upload/{iso}` **Método HTTP:** POST **Parámetros de entrada:** @@ -261,7 +336,7 @@ Instala un nuevo cliente ogLive utilizando una imagen de ogLive previamente desc **Ejemplo de Solicitud:** ```bash -curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/install/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso +curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/upload/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso ``` **Respuestas:** @@ -272,7 +347,7 @@ curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/insta Desinstala un cliente ogLive y elimina la imagen asociada. -**URL:** `/images/uninstall/{iso}` +**URL:** `/images/remove/{iso}` **Método HTTP:** POST **Parámetros de entrada:** @@ -281,7 +356,7 @@ Desinstala un cliente ogLive y elimina la imagen asociada. **Ejemplo de Solicitud:** ```bash -curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/uninstall/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso +curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/remove/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso ``` **Respuestas:** From 2ac478368d1fa85891e35528fedef8f6d3eef3e2 Mon Sep 17 00:00:00 2001 From: lgromero Date: Tue, 20 Feb 2024 14:20:15 +0100 Subject: [PATCH 03/13] refs #208 Updates table content --- README.md | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index d01774a..59a4dd8 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ La API de Ogboot proporciona una interfaz para facilitar el proceso de inicializ El presente documento detalla los endpoints del API con sus respectivos parámetros de entrada así como las acciones que llevan a cabo + ### Tabla de Contenido 1. [Obtener configuración de ogboot](#obtener-configuración-de-ogboot) - `ogboot/config` @@ -17,12 +18,15 @@ El presente documento detalla los endpoints del API con sus respectivos parámet 3. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `/clients/oglives/show-default` 4. [Mostrar información de un cliente ogLive específico](#mostrar-información-de-un-cliente-oglive-específico) - `/clients/oglives/show/{Index|Dir}` 5. [Buscar índice o directorio del cliente ogLive correspondiente](#buscar-índice-o-directorio-del-cliente-oglive-correspondiente) - `/clients/oglives/{Index}` -6. [Configurar modo de cliente](#configurar-modo-de-cliente) - `/clients/setpxe` -7. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `/images/download` -8. [Descargar imagen de ogLive específica](#descargar-imagen-de-oglive-específica) - `/images/download/{iso}` -9. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `/images/upload/{iso}` -10. [Elimina cliente ogLive](#desinstalar-cliente-oglive-y-eliminar-imagen) - `/images/remove/{iso}` - +6. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `/ogboot/clients/pxes` +7. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `/ogboot/clients/pxes/{mac}` +8. [Crear archivo de arranque](#crear-archivo-de-arranque) - `/ogboot/clients/pxes` +9. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `/ogboot/clients/pxes` +10. [Actualizar repositorio de arranque](#actualizar-repositorio-de-arranque) - `/ogboot/clients/pxe/update-repo` +11. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `/images/download` +12. [Descargar imagen de ogLive específica](#descargar-imagen-de-oglive-específica) - `/images/download/{iso}` +13. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `/images/upload/{iso}` +14. [Elimina cliente ogLive](#desinstalar-cliente-oglive-y-eliminar-imagen) - `/images/remove/{iso}` @@ -252,12 +256,6 @@ Actualiza la IP del repositorio en los archivos de arranque PXE de todos los equ - **Código 400 Bad Request:** La solicitud es incorrecta. La IP del repositorio no se actualizó correctamente. - - - - - - ### Mostrar Menú de Descarga de Imagen de ogLive Muestra un menú para descargar una imagen de ogLive desde el sitio web de OpenGnsys. From 290ad49ca0f5762e8fd69343ffa470a73c26afb2 Mon Sep 17 00:00:00 2001 From: lgromero Date: Tue, 20 Feb 2024 14:23:37 +0100 Subject: [PATCH 04/13] refs #208 Adds ogboot prefix in some endpoints --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 59a4dd8..0de1933 100644 --- a/README.md +++ b/README.md @@ -13,20 +13,20 @@ El presente documento detalla los endpoints del API con sus respectivos parámet ### Tabla de Contenido -1. [Obtener configuración de ogboot](#obtener-configuración-de-ogboot) - `ogboot/config` -2. [Mostrar información de todos los clientes ogLive instalados](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `/clients/oglives` -3. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `/clients/oglives/show-default` -4. [Mostrar información de un cliente ogLive específico](#mostrar-información-de-un-cliente-oglive-específico) - `/clients/oglives/show/{Index|Dir}` -5. [Buscar índice o directorio del cliente ogLive correspondiente](#buscar-índice-o-directorio-del-cliente-oglive-correspondiente) - `/clients/oglives/{Index}` +1. [Obtener configuración de ogboot](#obtener-configuración-de-ogboot) - `/ogboot/config` +2. [Mostrar información de todos los clientes ogLive instalados](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `/ogboot/clients/oglives` +3. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `/ogboot/clients/oglives/show-default` +4. [Mostrar información de un cliente ogLive específico](#mostrar-información-de-un-cliente-oglive-específico) - `/ogboot/clients/oglives/show/{Index|Dir}` +5. [Buscar índice o directorio del cliente ogLive correspondiente](#buscar-índice-o-directorio-del-cliente-oglive-correspondiente) - `/ogboot/clients/oglives/{Index}` 6. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `/ogboot/clients/pxes` -7. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `/ogboot/clients/pxes/{mac}` +7. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `ogboot/clients/pxes/{mac}` 8. [Crear archivo de arranque](#crear-archivo-de-arranque) - `/ogboot/clients/pxes` 9. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `/ogboot/clients/pxes` 10. [Actualizar repositorio de arranque](#actualizar-repositorio-de-arranque) - `/ogboot/clients/pxe/update-repo` -11. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `/images/download` +11. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `/ogboot/images/download` 12. [Descargar imagen de ogLive específica](#descargar-imagen-de-oglive-específica) - `/images/download/{iso}` -13. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `/images/upload/{iso}` -14. [Elimina cliente ogLive](#desinstalar-cliente-oglive-y-eliminar-imagen) - `/images/remove/{iso}` +13. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `/ogboot/images/upload/{iso}` +14. [Elimina cliente ogLive](#desinstalar-cliente-oglive-y-eliminar-imagen) - `/ogboot/images/remove/{iso}` From 7891d6accde5d7f0215a2f1e44ab3cb27872da63 Mon Sep 17 00:00:00 2001 From: lgromero Date: Tue, 20 Feb 2024 14:24:46 +0100 Subject: [PATCH 05/13] refs #208 Fix some typos --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 0de1933..17f39d5 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ El presente documento detalla los endpoints del API con sus respectivos parámet 4. [Mostrar información de un cliente ogLive específico](#mostrar-información-de-un-cliente-oglive-específico) - `/ogboot/clients/oglives/show/{Index|Dir}` 5. [Buscar índice o directorio del cliente ogLive correspondiente](#buscar-índice-o-directorio-del-cliente-oglive-correspondiente) - `/ogboot/clients/oglives/{Index}` 6. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `/ogboot/clients/pxes` -7. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `ogboot/clients/pxes/{mac}` +7. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `/ogboot/clients/pxes/{mac}` 8. [Crear archivo de arranque](#crear-archivo-de-arranque) - `/ogboot/clients/pxes` 9. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `/ogboot/clients/pxes` 10. [Actualizar repositorio de arranque](#actualizar-repositorio-de-arranque) - `/ogboot/clients/pxe/update-repo` @@ -34,7 +34,7 @@ El presente documento detalla los endpoints del API con sus respectivos parámet Devuelve la configuración actual del ogboot. -**URL:** `ogboot/config` +**URL:** `/ogboot/config` **Método HTTP:** GET **Ejemplo de Solicitud:** @@ -65,7 +65,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/config Muestra información en formato JSON sobre todos los clientes ogLive instalados. -**URL:** `/clients/oglives/` +**URL:** `/ogboot/clients/oglives/` **Método HTTP:** GET **Ejemplo de Solicitud:** @@ -102,7 +102,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/ogliv Muestra información en formato JSON sobre el cliente ogLive marcado como predeterminado. -**URL:** `/clients/oglives/show-default` +**URL:** `/ogboot/clients/oglives/show-default` **Método HTTP:** GET **Ejemplo de Solicitud:** @@ -129,7 +129,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/ogliv Muestra información en formato JSON sobre un cliente ogLive instalado específico, identificado por su índice o directorio. -**URL:** `/clients/oglives/show/{Index|Dir}` +**URL:** `/ogboot/clients/oglives/show/{Index|Dir}` **Método HTTP:** GET **Parámetros de entrada:** @@ -158,7 +158,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/ogliv ### Buscar Índice o Directorio del Cliente ogLive Correspondiente Muestra el ogLive correspondiente al proporcionar su índice o directorio -**URL:** `/clients/oglives/{Index}` +**URL:** `/ogboot/clients/oglives/{Index}` **Método HTTP:** GET **Parámetros de entrada:** @@ -260,7 +260,7 @@ Actualiza la IP del repositorio en los archivos de arranque PXE de todos los equ Muestra un menú para descargar una imagen de ogLive desde el sitio web de OpenGnsys. -**URL:** `/images/download` +**URL:** `/ogboot/images/download` **Método HTTP:** GET **Ejemplo de Solicitud:** @@ -305,7 +305,7 @@ Available downloads (+ = installed, * = full compatibility): Descarga una imagen de ogLive específica desde el sitio web de OpenGnsys. -**URL:** `/images/download/{iso}` +**URL:** `/ogboot/images/download/{iso}` **Método HTTP:** GET **Parámetros de entrada:** @@ -325,7 +325,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/images/downlo Instala un nuevo cliente ogLive utilizando una imagen de ogLive previamente descargada. -**URL:** `/images/upload/{iso}` +**URL:** `/ogboot/images/upload/{iso}` **Método HTTP:** POST **Parámetros de entrada:** @@ -345,7 +345,7 @@ curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/uploa Desinstala un cliente ogLive y elimina la imagen asociada. -**URL:** `/images/remove/{iso}` +**URL:** `/ogboot/images/remove/{iso}` **Método HTTP:** POST **Parámetros de entrada:** From 300abccacaf8df7f9e9ef9d3aef179007fae5e42 Mon Sep 17 00:00:00 2001 From: lgromero Date: Thu, 22 Feb 2024 14:24:33 +0100 Subject: [PATCH 06/13] refs #208 removes innecesaries endpoints --- README.md | 47 ++++++++++++----------------------------------- 1 file changed, 12 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 17f39d5..8f4cd22 100644 --- a/README.md +++ b/README.md @@ -17,16 +17,15 @@ El presente documento detalla los endpoints del API con sus respectivos parámet 2. [Mostrar información de todos los clientes ogLive instalados](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `/ogboot/clients/oglives` 3. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `/ogboot/clients/oglives/show-default` 4. [Mostrar información de un cliente ogLive específico](#mostrar-información-de-un-cliente-oglive-específico) - `/ogboot/clients/oglives/show/{Index|Dir}` -5. [Buscar índice o directorio del cliente ogLive correspondiente](#buscar-índice-o-directorio-del-cliente-oglive-correspondiente) - `/ogboot/clients/oglives/{Index}` -6. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `/ogboot/clients/pxes` -7. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `/ogboot/clients/pxes/{mac}` -8. [Crear archivo de arranque](#crear-archivo-de-arranque) - `/ogboot/clients/pxes` -9. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `/ogboot/clients/pxes` -10. [Actualizar repositorio de arranque](#actualizar-repositorio-de-arranque) - `/ogboot/clients/pxe/update-repo` -11. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `/ogboot/images/download` -12. [Descargar imagen de ogLive específica](#descargar-imagen-de-oglive-específica) - `/images/download/{iso}` -13. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `/ogboot/images/upload/{iso}` -14. [Elimina cliente ogLive](#desinstalar-cliente-oglive-y-eliminar-imagen) - `/ogboot/images/remove/{iso}` +5. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `/ogboot/clients/pxes` +6. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `/ogboot/clients/pxes/{mac}` +7. [Crear archivo de arranque](#crear-archivo-de-arranque) - `/ogboot/clients/pxes` +8. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `/ogboot/clients/pxes` +9. [Actualizar repositorio de arranque](#actualizar-repositorio-de-arranque) - `/ogboot/clients/pxe/update-repo` +10. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `/ogboot/images/download` +11. [Descargar imagen de ogLive específica](#descargar-imagen-de-oglive-específica) - `/images/download/{iso}` +12. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `/ogboot/images/upload/{iso}` +13. [Elimina cliente ogLive](#desinstalar-cliente-oglive-y-eliminar-imagen) - `/ogboot/images/remove/{iso}` @@ -155,28 +154,6 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/ogliv - **Código 200 OK:** La información sobre el cliente ogLive específico se obtuvo exitosamente. - **Contenido:** Información sobre el cliente ogLive específico en formato JSON. -### Buscar Índice o Directorio del Cliente ogLive Correspondiente - -Muestra el ogLive correspondiente al proporcionar su índice o directorio -**URL:** `/ogboot/clients/oglives/{Index}` -**Método HTTP:** GET - -**Parámetros de entrada:** -- `Index|Dir`: Índice numérico o directorio del cliente ogLive. - -**Ejemplo de Solicitud:** - -```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/openGnsys/clients/oglives/0 - -ogLive-5.11.0-r20210413 - -``` - -**Respuestas:** -- **Código 200 OK:** La búsqueda del índice o directorio del cliente ogLive correspondiente se realizó exitosamente. - - **Contenido:** Índice numérico o directorio del cliente ogLive correspondiente en formato JSON. - ### Obtener Todos los Archivos de Arranque @@ -212,7 +189,7 @@ Devuelve el archivo de arranque PXE del ordenador con la dirección MAC correspo ### Crear Archivo de Arranque -Crea un archivo de arranque PXE para el ordenador basado en la plantilla indicada y utilizando los datos almacenados en la base de datos. +Crea un archivo de arranque PXE para el ordenador basado en la plantilla indicada. **URL:** `/ogboot/clients/pxes` **Método HTTP:** POST @@ -321,9 +298,9 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/images/downlo - **Código 200 OK:** La imagen de ogLive se descargó exitosamente. - **Código 400 Bad Request:** La solicitud es incorrecta. La imagen de ogLive no se ha descargado correctamente. -### Instalar Nuevo Cliente ogLive desde Imagen Descargada +### Desplegar Nuevo Cliente ogLive desde Imagen Descargada -Instala un nuevo cliente ogLive utilizando una imagen de ogLive previamente descargada. +Despliega un nuevo cliente ogLive utilizando una imagen de ogLive previamente descargada. **URL:** `/ogboot/images/upload/{iso}` **Método HTTP:** POST From 171120d3504dac87615108bbb3cc74dfc1e856a8 Mon Sep 17 00:00:00 2001 From: lgromero Date: Fri, 15 Mar 2024 14:27:38 +0100 Subject: [PATCH 07/13] refs #208 Adds new endpoints and documentate it --- README.md | 463 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 314 insertions(+), 149 deletions(-) diff --git a/README.md b/README.md index 8f4cd22..316b95b 100644 --- a/README.md +++ b/README.md @@ -10,23 +10,26 @@ La API de Ogboot proporciona una interfaz para facilitar el proceso de inicializ El presente documento detalla los endpoints del API con sus respectivos parámetros de entrada así como las acciones que llevan a cabo - ### Tabla de Contenido -1. [Obtener configuración de ogboot](#obtener-configuración-de-ogboot) - `/ogboot/config` -2. [Mostrar información de todos los clientes ogLive instalados](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `/ogboot/clients/oglives` -3. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `/ogboot/clients/oglives/show-default` -4. [Mostrar información de un cliente ogLive específico](#mostrar-información-de-un-cliente-oglive-específico) - `/ogboot/clients/oglives/show/{Index|Dir}` -5. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `/ogboot/clients/pxes` -6. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `/ogboot/clients/pxes/{mac}` -7. [Crear archivo de arranque](#crear-archivo-de-arranque) - `/ogboot/clients/pxes` -8. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `/ogboot/clients/pxes` -9. [Actualizar repositorio de arranque](#actualizar-repositorio-de-arranque) - `/ogboot/clients/pxe/update-repo` -10. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `/ogboot/images/download` -11. [Descargar imagen de ogLive específica](#descargar-imagen-de-oglive-específica) - `/images/download/{iso}` -12. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `/ogboot/images/upload/{iso}` -13. [Elimina cliente ogLive](#desinstalar-cliente-oglive-y-eliminar-imagen) - `/ogboot/images/remove/{iso}` - +1. [Obtener configuración de ogboot](#obtener-configuración-de-ogboot) - `GET /ogboot/config` +2. [Obtener datos de rendimiento](#obtener-datos-de-rendimiento) - `GET /ogboot/status` +3. [Mostrar información de todos los clientes ogLive instalados](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `GET /ogboot/oglives` +4. [Mostrar información de un cliente ogLive instalado](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `GET /ogboot/oglives/{Index|Dir}` +5. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `GET /ogboot/oglives/default` +6. [Cambiar ogLive predeterminado](#cambiar-oglive-predeterminado) - `POST /ogboot/oglives/default/{Index}` +7. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `POST /ogboot/oglive/{Index/iso}` +8. [Desinstalar cliente ogLive y eliminar imagen](#desinstalar-cliente-oglive-y-eliminar-imagen) - `DELETE /ogboot/oglives/{Index/iso}` +9. [Regenerar archivo de información de los ogLive](#regenerar-archivo-de-información-de-los-oglive) - `PUT /ogboot/oglives` +10. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `GET /ogboot/images/download` +11. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `GET /ogboot/pxes` +12. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `GET /ogboot/clients/pxes/{mac}` +13. [Crear archivo de arranque](#crear-archivo-de-arranque) - `POST /ogboot/pxes` +14. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `DELETE /ogboot/clients/pxes` +15. [Obtener todas las plantillas](#obtener-todas-las-plantillas) - `GET /ogboot/pxe-templates` +16. [Obtener contenido de la plantilla](#obtener-contenido-de-la-plantilla) - `GET /ogboot/pxe-templates/{nombre}` +17. [Crear plantilla](#crear-plantilla) - `POST /ogboot/pxe-templates` +18. [Regenerar plantilla](#regenerar-plantilla) - `PUT /ogboot/pxe-templates` ### Obtener Configuración de ogboot @@ -59,12 +62,40 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/config +### Obtener estado de ogboot + +Devuelve la consistencia, errores de incompatibilidad y de configuración + +**URL:** `/ogboot/status` +**Método HTTP:** GET + +**Ejemplo de Solicitud:** + +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/status +``` + +**Respuestas:** +- **Código 200 OK:** La status de ogboot se obtuvo exitosamente. + - **Contenido:** . + Some installed ogLive aren't fully compatible: , , ogLive-3.19.0-i386-r4795 + Problems detected: + ``` +- **Código 400 Bad Request:** La solicitud es incorrecta. La status de ogboot no se ha obtenido correctamente. + + + + + + + + ### Mostrar Información de Todos los Clientes ogLive Instalados Muestra información en formato JSON sobre todos los clientes ogLive instalados. -**URL:** `/ogboot/clients/oglives/` +**URL:** `/ogboot/clients/oglives` **Método HTTP:** GET **Ejemplo de Solicitud:** @@ -96,18 +127,22 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/ogliv **Respuestas:** - **Código 200 OK:** La información sobre todos los clientes ogLive instalados se obtuvo exitosamente. - **Contenido:** Información sobre todos los clientes ogLive instalados en formato JSON. + -### Mostrar Información del Cliente ogLive Predeterminado +### Mostrar Información de un Cliente ogLive Instalado -Muestra información en formato JSON sobre el cliente ogLive marcado como predeterminado. +Muestra información en formato JSON sobre un cliente ogLive instalado específico. -**URL:** `/ogboot/clients/oglives/show-default` +**URL:** `/ogboot/clients/oglives/{Index|Dir}` **Método HTTP:** GET +**Parámetros de la URL:** +- `{Index|Dir}`: El índice o directorio del cliente ogLive instalado. + **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/show-default +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/1 { "distribution": "focal", @@ -117,125 +152,131 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/ogliv "directory": "ogLive-5.11.0-r20210413", "iso": "ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso" } +``` +**Respuestas:** +- **Código 200 OK:** La información sobre el cliente ogLive instalado se obtuvo exitosamente. + - **Contenido:** Información sobre el cliente ogLive instalado en formato JSON. +- **Código 404 Not Found:** No se encontró ningún cliente ogLive instalado con el índice o directorio proporcionado. + +### Mostrar Información del Cliente ogLive Predeterminado + +Muestra información en formato JSON sobre el cliente ogLive predeterminado. + +**URL:** `/ogboot/clients/oglives/default` +**Método HTTP:** GET + +**Ejemplo de Solicitud:** + +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/default + +{ + "distribution": "focal", + "kernel": "5.11.0-22-generic", + "architecture": "amd64", + "revision": "r20210413", + "directory": "ogLive-5.11.0-r20210413", + "iso": "ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso" +} ``` **Respuestas:** - **Código 200 OK:** La información sobre el cliente ogLive predeterminado se obtuvo exitosamente. - **Contenido:** Información sobre el cliente ogLive predeterminado en formato JSON. -### Mostrar Información de un Cliente ogLive Específico -Muestra información en formato JSON sobre un cliente ogLive instalado específico, identificado por su índice o directorio. -**URL:** `/ogboot/clients/oglives/show/{Index|Dir}` -**Método HTTP:** GET -**Parámetros de entrada:** -- `Index|Dir`: Índice numérico o directorio del cliente ogLive. + +### Cambiar ogLive Predeterminado + +Establece un nuevo cliente ogLive como predeterminado utilizando su índice. + +**URL:** +**Método HTTP:** POST + +**Parámetros de la URL:** +- `{Index}`: El índice del cliente ogLive que se establecerá como predeterminado. **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/show/0 - -{ - "distribution": "focal", - "kernel": "5.13.0-27-beta", - "architecture": "amd64", - "revision": "r20210706", - "directory": "ogLive-5.13.0-r20210706", - "iso": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso" -} - +curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/default/1 ``` **Respuestas:** -- **Código 200 OK:** La información sobre el cliente ogLive específico se obtuvo exitosamente. - - **Contenido:** Información sobre el cliente ogLive específico en formato JSON. +- **Código 200 OK:** El cliente ogLive se estableció como predeterminado exitosamente. +- **Código 404 Not Found:** No se encontró ningún cliente ogLive con el índice proporcionado. -### Obtener Todos los Archivos de Arranque +### Descargar e Instalar Nuevo Cliente ogLive desde Imagen Descargada -Devuelve todos los archivos de arranque PXE y sus direcciones MAC asociadas. +Descarga y luego instala un nuevo cliente ogLive utilizando la imagen descargada, especificada por su índice o nombre de archivo ISO. -**URL:** `/ogboot/clients/pxes` -**Método HTTP:** GET - -**Respuestas:** -- **Código 200 OK:** La lista de archivos de arranque PXE se obtuvo exitosamente. - - **Contenido:** Lista de archivos de arranque PXE con sus direcciones MAC asociadas. -- **Código 400 Bad Request:** La solicitud es incorrecta. La lista de archivos de arranque PXE no se obtuvo correctamente. - - - -### Obtener Archivo de Arranque - -Devuelve el archivo de arranque PXE del ordenador con la dirección MAC correspondiente. - -**URL:** `/ogboot/clients/pxes/{mac}` -**Método HTTP:** GET - -**Parámetros de ruta:** -- `mac`: Dirección MAC del ordenador. - -**Respuestas:** -- **Código 200 OK:** El archivo de arranque PXE se obtuvo exitosamente. - - **Contenido:** Archivo de arranque PXE en formato deseado. -- **Código 400 Bad Request:** La solicitud es incorrecta. El archivo de arranque PXE no se obtuvo correctamente. - - - -### Crear Archivo de Arranque - -Crea un archivo de arranque PXE para el ordenador basado en la plantilla indicada. - -**URL:** `/ogboot/clients/pxes` +**URL:** `/ogboot/oglive/{Index/iso}` **Método HTTP:** POST -**Parámetros de entrada:** -- `bootopt`: Plantilla de arranque PXE. -- `hostname`: Nombre del ordenador. -- `lang`: Idioma de arranque. +**Parámetros de la URL:** +- `{Index/iso}`: El índice o nombre de archivo ISO de la imagen ogLive que se utilizará para la descarga e instalación. + +**Ejemplo de Solicitud:** + +```bash +curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/oglive/1 +``` **Respuestas:** -- **Código 200 OK:** El archivo de arranque PXE se creó exitosamente. -- **Código 400 Bad Request:** La solicitud es incorrecta. El archivo de arranque PXE no se creó correctamente. +- **Código 200 OK:** La descarga e instalación del nuevo cliente ogLive desde la imagen descargada fue exitosa. +- **Código 404 Not Found:** No se encontró ninguna imagen ogLive con el índice o nombre de archivo ISO proporcionado. -### Eliminar Archivo de Arranque -Borra el archivo de arranque PXE del ordenador con la dirección MAC correspondiente. -**URL:** `/ogboot/clients/pxes` + +### Desinstalar Cliente ogLive + +Desinstala un cliente ogLive específico y elimina su imagen asociada. + +**URL:** `/ogboot/oglives/{Index/iso}` **Método HTTP:** DELETE -**Parámetros de entrada:** -- `mac`: Dirección MAC del ordenador. +**Parámetros de la URL:** +- `{Index/iso}`: El índice o nombre de archivo ISO del cliente ogLive que se desinstalará y eliminará. + +**Ejemplo de Solicitud:** + +```bash +curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/oglives/1 +``` **Respuestas:** -- **Código 200 OK:** El archivo de arranque PXE se eliminó exitosamente. -- **Código 400 Bad Request:** La solicitud es incorrecta. El archivo de arranque PXE no se eliminó correctamente. +- **Código 200 OK:** El cliente ogLive se desinstaló y su imagen asociada se eliminó correctamente. +- **Código 404 Not Found:** No se encontró ningún cliente ogLive con el índice o nombre de archivo ISO proporcionado. -### Actualizar Repositorio de Arranque +### Regenerar Archivo de Información de los ogLive -Actualiza la IP del repositorio en los archivos de arranque PXE de todos los equipos asociados. +Regenera el archivo de información de los clientes ogLive instalados. -**URL:** `/ogboot/clients/pxe/update-repo` -**Método HTTP:** POST +**URL:** `/ogboot/oglives` +**Método HTTP:** PUT -**Parámetros de entrada:** -- `repoid`: Campo identificador del repositorio. +**Ejemplo de Solicitud:** + +```bash +curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/oglives +``` **Respuestas:** -- **Código 200 OK:** La IP del repositorio se actualizó en los archivos de arranque PXE exitosamente. -- **Código 400 Bad Request:** La solicitud es incorrecta. La IP del repositorio no se actualizó correctamente. +- **Código 200 OK:** El archivo de información de los clientes ogLive se regeneró correctamente. +- **Código 500 Internal Server Error:** Ocurrió un error al intentar regenerar el archivo de información de los clientes ogLive. + ### Mostrar Menú de Descarga de Imagen de ogLive -Muestra un menú para descargar una imagen de ogLive desde el sitio web de OpenGnsys. +Muestra un menú con opciones para descargar imágenes de ogLive disponibles. **URL:** `/ogboot/images/download` **Método HTTP:** GET @@ -244,97 +285,221 @@ Muestra un menú para descargar una imagen de ogLive desde el sitio web de OpenG ```bash curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/images/download - -Available downloads (+ = installed, * = full compatibility): - 1) (*) (+) ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso - 2) (*) (+) ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso - 3) (*) ogLive-focal-5.8.0-50-generic-amd64-r20210413.992ebb9.iso - 4) (*) ogLive-bionic-5.4.0-40-generic-amd64-r20200629.85eceaf.iso - 5) (*) ogLive-bionic-5.0.0-27-generic-amd64-r20190830.7208cc9.iso - 6) (*) ogLive-bionic-5.0.0-15-generic-amd64-r20190605.527cd97.iso - 7) ogLive-xenial-4.8.0-39-generic-amd64-r5652.iso - 8) ogLive-xenial-4.13.0-17-generic-amd64-r5520.iso - 9) ogLive-precise-3.2.0-23-generic-r5159.iso -10) ogLive-xenial-4.8.0-39-generic-amd64-r5331.iso -11) ogLive-xenial-4.8.0-39-generic-amd64-r5225.iso -12) ogLive-precise-3.2.0-23-generic-r4820.iso -13) ogLive-xenial-4.4.0-34-generic-r4999.iso -14) ogLive-wily-4.2.0-35-generic-r4919.iso -15) ogLive-vivid-3.19.0-49-generic-r4795.iso -16) ogLive-precise-3.2.0-23-generic-r4311.iso -17) ogLive-precise-3.11.0-26-generic-r4413.iso -18) ogLive-raring-3.8.0-22-generic-r3836.iso -19) ogLive-quantal-3.7.6-030706-generic-r3619.iso -20) ogLive-precise-3.2.0-23-generic-r3257.iso -21) ogLive-precise-3.2.0-23-generic-pae-r3017.iso -22) ogLive-oneiric-3.0.0-14-generic-r2439.iso -23) ogLive-natty-2.6.38-8-generic-pae-r2303.iso -24) ogLive-natty-2.6.38-8-generic-pae-r2268.iso -#? - ``` **Respuestas:** -- **Código 200 OK:** El menú de descarga de la imagen de ogLive se muestra exitosamente. -- **Código 400 Bad Request:** La solicitud es incorrecta. El menú de descarga de la imagen de ogLive no se ha mostrado correctamente. +- **Código 200 OK:** El menú de descarga de imágenes de ogLive se obtuvo exitosamente. + - **Contenido:** Menú de descarga de imágenes de ogLive en formato JSON. -### Descargar Imagen de ogLive Específica -Descarga una imagen de ogLive específica desde el sitio web de OpenGnsys. -**URL:** `/ogboot/images/download/{iso}` +### Obtener Todos los Archivos de Arranque + +Obtiene una lista de todos los archivos de arranque disponibles. + +**URL:** `/ogboot/pxes` **Método HTTP:** GET -**Parámetros de entrada:** -- `iso`: Nombre de la imagen de ogLive a descargar. +**Ejemplo de Solicitud:** + +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/pxes +``` + +**Respuestas:** +- **Código 200 OK:** La lista de todos los archivos de arranque se obtuvo exitosamente. + - **Contenido:** Lista de archivos de arranque en formato JSON. + + +### Obtener Archivo de Arranque + +Obtiene un archivo de arranque específico utilizando la dirección MAC del cliente. + +**URL:** `/ogboot/clients/pxes/{mac}` +**Método HTTP:** GET + +**Parámetros de la URL:** +- `{mac}`: La dirección MAC del cliente cuyo archivo de arranque se desea obtener. **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/images/download/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/pxes/00:11:22:33:44:55 ``` **Respuestas:** -- **Código 200 OK:** La imagen de ogLive se descargó exitosamente. -- **Código 400 Bad Request:** La solicitud es incorrecta. La imagen de ogLive no se ha descargado correctamente. +- **Código 200 OK:** El archivo de arranque para la dirección MAC especificada se encontró y se devuelve correctamente. + - **Contenido:** El archivo de arranque en formato adecuado para su uso en el cliente correspondiente. +- **Código 404 Not Found:** No se encontró ningún archivo de arranque para la dirección MAC especificada. -### Desplegar Nuevo Cliente ogLive desde Imagen Descargada -Despliega un nuevo cliente ogLive utilizando una imagen de ogLive previamente descargada. -**URL:** `/ogboot/images/upload/{iso}` +### Crear Archivo de Arranque + +Crea un nuevo archivo de arranque utilizando los parámetros proporcionados. + +**URL:** `/ogboot/pxes` **Método HTTP:** POST -**Parámetros de entrada:** -- `iso`: Nombre de la imagen de ogLive a instalar. +**Cuerpo de la Solicitud:** +- Datos necesarios para la creación del archivo de arranque, como el nombre, la configuración, etc. **Ejemplo de Solicitud:** ```bash -curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/upload/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso +curl -X POST -H "Authorization: $API_KEY" -d '{"name": "bootfile", "config": "some_configuration"}' http://example.com/ogboot/pxes ``` **Respuestas:** -- **Código 200 OK:** El cliente ogLive se instaló exitosamente desde la imagen descargada. -- **Código 400 Bad Request:** La solicitud es incorrecta. El cliente ogLive no se ha instalado correctamente. +- **Código 200 OK:** El archivo de arranque se creó exitosamente. +- **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud. -### Desinstalar Cliente ogLive y Eliminar Imagen -Desinstala un cliente ogLive y elimina la imagen asociada. +### Eliminar Archivo de Arranque -**URL:** `/ogboot/images/remove/{iso}` +Elimina un archivo de arranque específico utilizando su identificador único. + +**URL:** `/ogboot/clients/pxes` +**Método HTTP:** DELETE + +**Parámetros de la URL:** +- `{mac}`: La dirección MAC del cliente cuyo archivo de arranque se desea obtener. + +**Ejemplo de Solicitud:** + +```bash +curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/clients/pxes/00:11:22:33:44:55 +``` + +**Respuestas:** +- **Código 200 OK:** El archivo de arranque se eliminó correctamente. +- **Código 404 Not Found:** No se encontró ningún archivo de arranque con el identificador único especificado. + + + +### Actualizar Repositorio de Arranque + +Actualiza el repositorio de archivos de arranque con los archivos modificados. + +**URL:** `/ogboot/pxes` +**Método HTTP:** PUT + +**Cuerpo de la Solicitud:** +- Fichero en json con la configuración de arranque de la máquina + +**Ejemplo de Solicitud:** + +```bash +curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d @data.json http://example.com/ogboot/pxes +``` + +**Respuestas:** +- **Código 200 OK:** El repositorio de arranque se actualizó exitosamente con los archivos modificados. +- **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud. + + + +### Obtener Todas las Plantillas + +Obtiene una lista de todas las plantillas de arranque disponibles. + +**URL:** `/ogboot/pxe-templates` +**Método HTTP:** GET + +**Ejemplo de Solicitud:** + +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/pxe-templates +``` + +**Respuestas:** +- **Código 200 OK:** La lista de todas las plantillas de arranque se obtuvo exitosamente. + - **Contenido:** Lista de plantillas de arranque en formato JSON. + + + +### Obtener Contenido de la Plantilla + +Obtiene el contenido de una plantilla de arranque específica utilizando su nombre. + +**URL:** `/ogboot/pxe-templates/{nombre}` +**Método HTTP:** GET + +**Parámetros de la URL:** +- `{nombre}`: El nombre de la plantilla de arranque cuyo contenido se desea obtener. + +**Ejemplo de Solicitud:** + +```bash +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/pxe-templates/template1 +``` + +**Respuestas:** +- **Código 200 OK:** El contenido de la plantilla de arranque se obtuvo exitosamente. + - **Contenido:** Contenido de la plantilla de arranque en formato adecuado para su uso. + +--- + +### Crear Plantilla + +Crea una nueva plantilla de arranque utilizando los datos proporcionados. + +**URL:** `/ogboot/pxe-templates` **Método HTTP:** POST -**Parámetros de entrada:** -- `iso`: Nombre de la imagen de ogLive a desinstalar. +**Cuerpo de la Solicitud:** +- Datos necesarios para la creación de la plantilla de arranque, como el nombre y el contenido. **Ejemplo de Solicitud:** ```bash -curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/remove/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso +curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"name": "template1", "content": "template_content"}' http://example.com/ogboot/pxe-templates ``` **Respuestas:** -- **Código 200 OK:** El cliente ogLive se desinstaló y la imagen asociada se eliminó exitosamente. -- **Código 400 Bad Request:** La solicitud es incorrecta. El cliente ogLive no se ha desinstalado correctamente. +- **Código 200 OK:** La plantilla de arranque se creó exitosamente. +- **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud. + + +### Regenerar Plantilla + +Regenera el contenido de una plantilla de arranque específica utilizando su nombre. + +**URL:** `/ogboot/pxe-templates/{nombre}` +**Método HTTP:** PUT + +**Parámetros de la URL:** +- `{nombre}`: El nombre de la plantilla de arranque que se desea regenerar. + +**Ejemplo de Solicitud:** + +```bash +curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/pxe-templates/template1 +``` + +**Respuestas:** +- **Código 200 OK:** El contenido de la plantilla de arranque se regeneró exitosamente. +- **Código 404 Not Found:** No se encontró ninguna plantilla de arranque con el nombre especificado. + +--- + +### Eliminar Plantilla + +Elimina una plantilla de arranque específica utilizando su nombre. + +**URL:** `/ogboot/pxe-templates/{nombre}` +**Método HTTP:** DELETE + +**Parámetros de la URL:** +- `{nombre}`: El nombre de la plantilla de arranque que se desea eliminar. + +**Ejemplo de Solicitud:** + +```bash +curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/pxe-templates/template1 +``` + +**Respuestas:** +- **Código 200 OK:** La plantilla de arranque se eliminó correctamente. +- **Código 404 Not Found:** No se encontró ninguna plantilla de arranque con el nombre especificado. From 59387e1b3df1129de9f9b05f8dc6002af9c0b28e Mon Sep 17 00:00:00 2001 From: lgromero Date: Fri, 12 Apr 2024 13:05:06 +0200 Subject: [PATCH 08/13] refs #271 adds v1 to all endpoints and changes post oglives endpoint --- README.md | 120 +++++++++++++++++++++++++++--------------------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/README.md b/README.md index 316b95b..7d22fd9 100644 --- a/README.md +++ b/README.md @@ -12,37 +12,37 @@ El presente documento detalla los endpoints del API con sus respectivos parámet ### Tabla de Contenido -1. [Obtener configuración de ogboot](#obtener-configuración-de-ogboot) - `GET /ogboot/config` -2. [Obtener datos de rendimiento](#obtener-datos-de-rendimiento) - `GET /ogboot/status` -3. [Mostrar información de todos los clientes ogLive instalados](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `GET /ogboot/oglives` -4. [Mostrar información de un cliente ogLive instalado](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `GET /ogboot/oglives/{Index|Dir}` -5. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `GET /ogboot/oglives/default` -6. [Cambiar ogLive predeterminado](#cambiar-oglive-predeterminado) - `POST /ogboot/oglives/default/{Index}` -7. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `POST /ogboot/oglive/{Index/iso}` -8. [Desinstalar cliente ogLive y eliminar imagen](#desinstalar-cliente-oglive-y-eliminar-imagen) - `DELETE /ogboot/oglives/{Index/iso}` -9. [Regenerar archivo de información de los ogLive](#regenerar-archivo-de-información-de-los-oglive) - `PUT /ogboot/oglives` -10. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `GET /ogboot/images/download` -11. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `GET /ogboot/pxes` -12. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `GET /ogboot/clients/pxes/{mac}` -13. [Crear archivo de arranque](#crear-archivo-de-arranque) - `POST /ogboot/pxes` -14. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `DELETE /ogboot/clients/pxes` -15. [Obtener todas las plantillas](#obtener-todas-las-plantillas) - `GET /ogboot/pxe-templates` -16. [Obtener contenido de la plantilla](#obtener-contenido-de-la-plantilla) - `GET /ogboot/pxe-templates/{nombre}` -17. [Crear plantilla](#crear-plantilla) - `POST /ogboot/pxe-templates` -18. [Regenerar plantilla](#regenerar-plantilla) - `PUT /ogboot/pxe-templates` +1. [Obtener configuración de ogboot](#obtener-configuración-de-ogboot) - `GET /ogboot/v1/config` +2. [Obtener datos de rendimiento](#obtener-datos-de-rendimiento) - `GET /ogboot/v1/status` +3. [Mostrar información de todos los clientes ogLive instalados](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `GET /ogboot/v1/oglives` +4. [Mostrar información de un cliente ogLive instalado](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `GET /ogboot/v1/oglives/{Index|Dir}` +5. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `GET /ogboot/v1/oglives/default` +6. [Cambiar ogLive predeterminado](#cambiar-oglive-predeterminado) - `POST /ogboot/v1/oglives/default/{Index}` +7. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `POST /ogboot/v1/oglive/{Index/iso}` +8. [Desinstalar cliente ogLive y eliminar imagen](#desinstalar-cliente-oglive-y-eliminar-imagen) - `DELETE /ogboot/v1/oglives/{Index/iso}` +9. [Regenerar archivo de información de los ogLive](#regenerar-archivo-de-información-de-los-oglive) - `PUT /ogboot/v1/oglives` +10. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `GET /ogboot/v1/images/download` +11. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `GET /ogboot/v1/pxes` +12. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `GET /ogboot/v1/clients/pxes/{mac}` +13. [Crear archivo de arranque](#crear-archivo-de-arranque) - `POST /ogboot/v1/pxes` +14. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `DELETE /ogboot/v1/clients/pxes` +15. [Obtener todas las plantillas](#obtener-todas-las-plantillas) - `GET /ogboot/v1/pxe-templates` +16. [Obtener contenido de la plantilla](#obtener-contenido-de-la-plantilla) - `GET /ogboot/v1/pxe-templates/{nombre}` +17. [Crear plantilla](#crear-plantilla) - `POST /ogboot/v1/pxe-templates` +18. [Regenerar plantilla](#regenerar-plantilla) - `PUT /ogboot/v1/pxe-templates` ### Obtener Configuración de ogboot Devuelve la configuración actual del ogboot. -**URL:** `/ogboot/config` +**URL:** `/ogboot/v1/config` **Método HTTP:** GET **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/config +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/config ``` **Respuestas:** @@ -66,13 +66,13 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/config Devuelve la consistencia, errores de incompatibilidad y de configuración -**URL:** `/ogboot/status` +**URL:** `/ogboot/v1/status` **Método HTTP:** GET **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/status +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/status ``` **Respuestas:** @@ -95,13 +95,13 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/status Muestra información en formato JSON sobre todos los clientes ogLive instalados. -**URL:** `/ogboot/clients/oglives` +**URL:** `/ogboot/v1/clients/oglives` **Método HTTP:** GET **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/ +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/oglives/ [ { @@ -133,7 +133,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/ogliv Muestra información en formato JSON sobre un cliente ogLive instalado específico. -**URL:** `/ogboot/clients/oglives/{Index|Dir}` +**URL:** `/ogboot/v1/clients/oglives/{Index|Dir}` **Método HTTP:** GET **Parámetros de la URL:** @@ -142,7 +142,7 @@ Muestra información en formato JSON sobre un cliente ogLive instalado específi **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/1 +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/oglives/1 { "distribution": "focal", @@ -163,13 +163,13 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/ogliv Muestra información en formato JSON sobre el cliente ogLive predeterminado. -**URL:** `/ogboot/clients/oglives/default` +**URL:** `/ogboot/v1/clients/oglives/default` **Método HTTP:** GET **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/default +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/oglives/default { "distribution": "focal", @@ -202,7 +202,7 @@ Establece un nuevo cliente ogLive como predeterminado utilizando su índice. **Ejemplo de Solicitud:** ```bash -curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/default/1 +curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/oglives/default/1 ``` **Respuestas:** @@ -213,18 +213,18 @@ curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/clients/ogli ### Descargar e Instalar Nuevo Cliente ogLive desde Imagen Descargada -Descarga y luego instala un nuevo cliente ogLive utilizando la imagen descargada, especificada por su índice o nombre de archivo ISO. +Descarga y luego instala un nuevo cliente ogLive utilizando la imagen descargada, especificada por su nombre de archivo ISO en el parámetro de entrada. -**URL:** `/ogboot/oglive/{Index/iso}` +**URL:** `/ogboot/v1/oglive` **Método HTTP:** POST -**Parámetros de la URL:** -- `{Index/iso}`: El índice o nombre de archivo ISO de la imagen ogLive que se utilizará para la descarga e instalación. +**Parámetros de Entrada:** +- `ISO: Nombre de la ISO que se desea descargar e instalar **Ejemplo de Solicitud:** ```bash -curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/oglive/1 +curl -X POST -H "Authorization: $API_KEY" -d "ISO=ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso" http://example.com/ogboot/v1/oglive ``` **Respuestas:** @@ -238,7 +238,7 @@ curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/oglive/1 Desinstala un cliente ogLive específico y elimina su imagen asociada. -**URL:** `/ogboot/oglives/{Index/iso}` +**URL:** `/ogboot/v1/oglives/{Index/iso}` **Método HTTP:** DELETE **Parámetros de la URL:** @@ -247,7 +247,7 @@ Desinstala un cliente ogLive específico y elimina su imagen asociada. **Ejemplo de Solicitud:** ```bash -curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/oglives/1 +curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/v1/oglives/1 ``` **Respuestas:** @@ -259,13 +259,13 @@ curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/oglives/1 Regenera el archivo de información de los clientes ogLive instalados. -**URL:** `/ogboot/oglives` +**URL:** `/ogboot/v1/oglives` **Método HTTP:** PUT **Ejemplo de Solicitud:** ```bash -curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/oglives +curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/v1/oglives ``` **Respuestas:** @@ -278,13 +278,13 @@ curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/oglives Muestra un menú con opciones para descargar imágenes de ogLive disponibles. -**URL:** `/ogboot/images/download` +**URL:** `/ogboot/v1/images/download` **Método HTTP:** GET **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/images/download +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/images/download ``` **Respuestas:** @@ -297,13 +297,13 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/images/downlo Obtiene una lista de todos los archivos de arranque disponibles. -**URL:** `/ogboot/pxes` +**URL:** `/ogboot/v1/pxes` **Método HTTP:** GET **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/pxes +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxes ``` **Respuestas:** @@ -315,7 +315,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/pxes Obtiene un archivo de arranque específico utilizando la dirección MAC del cliente. -**URL:** `/ogboot/clients/pxes/{mac}` +**URL:** `/ogboot/v1/clients/pxes/{mac}` **Método HTTP:** GET **Parámetros de la URL:** @@ -324,7 +324,7 @@ Obtiene un archivo de arranque específico utilizando la dirección MAC del clie **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/pxes/00:11:22:33:44:55 +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/pxes/00:11:22:33:44:55 ``` **Respuestas:** @@ -338,7 +338,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/pxes/ Crea un nuevo archivo de arranque utilizando los parámetros proporcionados. -**URL:** `/ogboot/pxes` +**URL:** `/ogboot/v1/pxes` **Método HTTP:** POST **Cuerpo de la Solicitud:** @@ -347,7 +347,7 @@ Crea un nuevo archivo de arranque utilizando los parámetros proporcionados. **Ejemplo de Solicitud:** ```bash -curl -X POST -H "Authorization: $API_KEY" -d '{"name": "bootfile", "config": "some_configuration"}' http://example.com/ogboot/pxes +curl -X POST -H "Authorization: $API_KEY" -d '{"name": "bootfile", "config": "some_configuration"}' http://example.com/ogboot/v1/pxes ``` **Respuestas:** @@ -359,7 +359,7 @@ curl -X POST -H "Authorization: $API_KEY" -d '{"name": "bootfile", "config": "so Elimina un archivo de arranque específico utilizando su identificador único. -**URL:** `/ogboot/clients/pxes` +**URL:** `/ogboot/v1/clients/pxes` **Método HTTP:** DELETE **Parámetros de la URL:** @@ -368,7 +368,7 @@ Elimina un archivo de arranque específico utilizando su identificador único. **Ejemplo de Solicitud:** ```bash -curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/clients/pxes/00:11:22:33:44:55 +curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/pxes/00:11:22:33:44:55 ``` **Respuestas:** @@ -381,7 +381,7 @@ curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/clients/px Actualiza el repositorio de archivos de arranque con los archivos modificados. -**URL:** `/ogboot/pxes` +**URL:** `/ogboot/v1/pxes` **Método HTTP:** PUT **Cuerpo de la Solicitud:** @@ -390,7 +390,7 @@ Actualiza el repositorio de archivos de arranque con los archivos modificados. **Ejemplo de Solicitud:** ```bash -curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d @data.json http://example.com/ogboot/pxes +curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d @data.json http://example.com/ogboot/v1/pxes ``` **Respuestas:** @@ -403,13 +403,13 @@ curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d Obtiene una lista de todas las plantillas de arranque disponibles. -**URL:** `/ogboot/pxe-templates` +**URL:** `/ogboot/v1/pxe-templates` **Método HTTP:** GET **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/pxe-templates +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templates ``` **Respuestas:** @@ -422,7 +422,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/pxe-templates Obtiene el contenido de una plantilla de arranque específica utilizando su nombre. -**URL:** `/ogboot/pxe-templates/{nombre}` +**URL:** `/ogboot/v1/pxe-templates/{nombre}` **Método HTTP:** GET **Parámetros de la URL:** @@ -431,7 +431,7 @@ Obtiene el contenido de una plantilla de arranque específica utilizando su nomb **Ejemplo de Solicitud:** ```bash -curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/pxe-templates/template1 +curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templates/template1 ``` **Respuestas:** @@ -444,7 +444,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/pxe-templates Crea una nueva plantilla de arranque utilizando los datos proporcionados. -**URL:** `/ogboot/pxe-templates` +**URL:** `/ogboot/v1/pxe-templates` **Método HTTP:** POST **Cuerpo de la Solicitud:** @@ -453,7 +453,7 @@ Crea una nueva plantilla de arranque utilizando los datos proporcionados. **Ejemplo de Solicitud:** ```bash -curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"name": "template1", "content": "template_content"}' http://example.com/ogboot/pxe-templates +curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"name": "template1", "content": "template_content"}' http://example.com/ogboot/v1/pxe-templates ``` **Respuestas:** @@ -465,7 +465,7 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d Regenera el contenido de una plantilla de arranque específica utilizando su nombre. -**URL:** `/ogboot/pxe-templates/{nombre}` +**URL:** `/ogboot/v1/pxe-templates/{nombre}` **Método HTTP:** PUT **Parámetros de la URL:** @@ -474,7 +474,7 @@ Regenera el contenido de una plantilla de arranque específica utilizando su nom **Ejemplo de Solicitud:** ```bash -curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/pxe-templates/template1 +curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templates/template1 ``` **Respuestas:** @@ -487,7 +487,7 @@ curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/pxe-templates Elimina una plantilla de arranque específica utilizando su nombre. -**URL:** `/ogboot/pxe-templates/{nombre}` +**URL:** `/ogboot/v1/pxe-templates/{nombre}` **Método HTTP:** DELETE **Parámetros de la URL:** @@ -496,7 +496,7 @@ Elimina una plantilla de arranque específica utilizando su nombre. **Ejemplo de Solicitud:** ```bash -curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/pxe-templates/template1 +curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templates/template1 ``` **Respuestas:** From 10927d2195242ec56fa5f49032da18ee6502f93a Mon Sep 17 00:00:00 2001 From: lgromero Date: Fri, 19 Apr 2024 13:01:21 +0200 Subject: [PATCH 09/13] refs #271 adds descriptions to some returns content --- README.md | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7d22fd9..f1ceb3c 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,20 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/config "min-release": "r20190601" } ``` + +- **config-file**: Ruta del archivo de configuración que usa oglivecli para guardar los oglives instalados. + +- **download-url**: URL base desde la cual se descargan las imágenes de oglive. + +- **download-dir**: Ruta del directorio en el cual se almacenan las imágenes de oglive descargadas + +- **install-dir**: La ruta del directorio donde se instalan las imágenes de oglive + +- **default-name**: Nombre predeterminado utilizado para los clientes ogLive. + +- **min-release**: La versión mínima recomendada para la instalación de imágenes oglives. + +Estas definiciones proporcionan una comprensión clara de cada uno de los parámetros de contenido dentro de la configuración del ogboot. - **Código 400 Bad Request:** La solicitud es incorrecta. La configuración del ogboot no se ha obtenido correctamente. @@ -76,8 +90,9 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/status ``` **Respuestas:** -- **Código 200 OK:** La status de ogboot se obtuvo exitosamente. - - **Contenido:** . +- **Código 200 OK:** El status de ogboot se obtuvo exitosamente. + - **Contenido:** + ``` Some installed ogLive aren't fully compatible: , , ogLive-3.19.0-i386-r4795 Problems detected: ``` @@ -123,6 +138,17 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/og ] ``` +- **distribution**: Distribución del sistema operativo de la imagen ogLive + +- **kernel**: Versión del kernel del sistema operativo utilizado por la imagen ogLive + +- **architecture**: Arquitectura del hardware de la imagen ogLive + +- **revision**: Versión de la imagen ogLive + +- **directory**: Directorio donde se encuentra instalado el cliente ogLive en el sistema. + +- **iso**: Nombre del archivo ISO utilizado para instalar el cliente ogLive. **Respuestas:** - **Código 200 OK:** La información sobre todos los clientes ogLive instalados se obtuvo exitosamente. From 47bc0c0a9fd8fe43a78785e064ff9428bc1f63eb Mon Sep 17 00:00:00 2001 From: lgromero Date: Mon, 22 Apr 2024 12:50:26 +0200 Subject: [PATCH 10/13] refs #199 adds return parameters to pxe-templates --- README.md | 74 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 67 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f1ceb3c..3593b45 100644 --- a/README.md +++ b/README.md @@ -330,6 +330,14 @@ Obtiene una lista de todos los archivos de arranque disponibles. ```bash curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxes + +{ + "boot_files": [ + "01-00:50:56:22:11:11", + "01-00:50:56:22:11:12" + ] +} + ``` **Respuestas:** @@ -337,20 +345,34 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxes - **Contenido:** Lista de archivos de arranque en formato JSON. -### Obtener Archivo de Arranque +### Obtener Configuración de Arranque -Obtiene un archivo de arranque específico utilizando la dirección MAC del cliente. +Obtiene el contenido del archivo de configuración de arranque específico para un cliente utilizando su dirección MAC. **URL:** `/ogboot/v1/clients/pxes/{mac}` **Método HTTP:** GET **Parámetros de la URL:** -- `{mac}`: La dirección MAC del cliente cuyo archivo de arranque se desea obtener. +- `{mac}`: La dirección MAC del cliente cuyo archivo de configuración de arranque se desea obtener. **Ejemplo de Solicitud:** ```bash curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/pxes/00:11:22:33:44:55 + +#!ipxe +set timeout 0 +set timeout-style hidden + +set ISODIR ogLive +set default 0 +set kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=${ISODIR} LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788 + +set kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=$ISODIR LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788 +kernel tftp://172.17.8.71/ogLive/ogvmlinuz ${kernelargs} +initrd tftp://172.17.8.71/ogLive/oginitrd.img +boot + ``` **Respuestas:** @@ -373,7 +395,7 @@ Crea un nuevo archivo de arranque utilizando los parámetros proporcionados. **Ejemplo de Solicitud:** ```bash -curl -X POST -H "Authorization: $API_KEY" -d '{"name": "bootfile", "config": "some_configuration"}' http://example.com/ogboot/v1/pxes +curl -X POST -H "Authorization: $API_KEY" -d '{"mac": "00:50:56:22:11:12", "config": "#!ipxe\nset timeout 0\nset timeout-style hidden\n\nset ISODIR ogLive\nset default 0\nset kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=${ISODIR} LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788\n\nset kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=$ISODIR LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788\nkernel tftp://172.17.8.71/ogLive/ogvmlinuz ${kernelargs}\ninitrd tftp://172.17.8.71/ogLive/oginitrd.img\nboot"}' http://example.com/ogboot/v1/pxes ``` **Respuestas:** @@ -416,7 +438,7 @@ Actualiza el repositorio de archivos de arranque con los archivos modificados. **Ejemplo de Solicitud:** ```bash -curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d @data.json http://example.com/ogboot/v1/pxes +curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"mac": "00:50:56:22:11:12", "config": "#!ipxe\nset timeout 0\nset timeout-style hidden\n\nset ISODIR ogLive\nset default 0\nset kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=${ISODIR} LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788\n\nset kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=$ISODIR LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788\nkernel tftp://172.17.8.71/ogLive/ogvmlinuz ${kernelargs}\ninitrd tftp://172.17.8.71/ogLive/oginitrd.img\nboot"}' http://example.com/ogboot/v1/pxes ``` **Respuestas:** @@ -458,6 +480,17 @@ Obtiene el contenido de una plantilla de arranque específica utilizando su nomb ```bash curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templates/template1 + +#!ipxe +set timeout 0 +set timeout-style hidden + +set ISODIR ogLive +set default 0 +set kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=${ISODIR} LANG=es_ES.UTF-8 ip=192.168.1.100:192.168.1.1:192.168.1.1:255.255.255.0:pc01:eth0:none group=Aula_virtual ogrepo=192.168.1.10 oglive=192.168.1.10 oglog=192.168.1.10 ogshare=192.168.1.10 ogprof=false vga=788 +time kernel tftp://172.17.8.71/ogLive/ogvmlinuz ${kernelargs} +time initrd tftp://172.17.8.71/ogLive/oginitrd.img +boot ``` **Respuestas:** @@ -474,16 +507,43 @@ Crea una nueva plantilla de arranque utilizando los datos proporcionados. **Método HTTP:** POST **Cuerpo de la Solicitud:** -- Datos necesarios para la creación de la plantilla de arranque, como el nombre y el contenido. +- {name_template}: Nombre de la plantilla +- {ip}: Dirección IP del cliente. +- {gateway}: Puerta de enlace predeterminada. +- {netmask}: Máscara de red. +- {hostname}: Nombre del host del cliente. +- {interface}: Interfaz de red utilizada por el cliente. +- {group}: Grupo al que pertenece el cliente. +- {ogrepo}: Dirección IP del repositorio de ogLive. +- {oglive}: Dirección IP del servidor ogLive. +- {oglog}: Dirección IP del servidor de logs. +- {ogshare}: Dirección IP del servidor de archivos compartidos. +- {ogprof}: Valor booleano que indica si el perfil del cliente está habilitado o deshabilitado. +- {vga}: Modo VGA utilizado para la interfaz de usuario. **Ejemplo de Solicitud:** ```bash -curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"name": "template1", "content": "template_content"}' http://example.com/ogboot/v1/pxe-templates +curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"name_template":"template1","ip": "192.168.1.100", "gateway": "192.168.1.1", "netmask": "255.255.255.0", "hostname": "pc01", "interface": "eth0", "group": "Aula_virtual", "ogrepo": "192.168.1.10", "oglive": "192.168.1.10", "oglog": "192.168.1.10", "ogshare": "192.168.1.10", "ogprof": false, "vga": 788, "tftp_server_ip": "172.17.8.71"}' http://example.com/ogboot/v1/pxe-templates + + +#!ipxe +set timeout 0 +set timeout-style hidden + +set ISODIR ogLive +set default 0 +set kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=${ISODIR} LANG=es_ES.UTF-8 ip=192.168.1.100:192.168.1.1:192.168.1.1:255.255.255.0:pc01:eth0:none group=Aula_virtual ogrepo=192.168.1.10 oglive=192.168.1.10 oglog=192.168.1.10 ogshare=192.168.1.10 ogprof=false vga=788 +time kernel tftp://172.17.8.71/ogLive/ogvmlinuz ${kernelargs} +time initrd tftp://172.17.8.71/ogLive/oginitrd.img +boot + ``` + **Respuestas:** - **Código 200 OK:** La plantilla de arranque se creó exitosamente. + - **Contenido:** Plantilla generada a partir de los parámetros pasados en la petición. - **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud. From 133bb8bde50300a6b5e82bb7ee95b5d972b6fae1 Mon Sep 17 00:00:00 2001 From: lgromero Date: Tue, 23 Apr 2024 09:10:08 +0200 Subject: [PATCH 11/13] refs #199 adds tftp-server-ip definition --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3593b45..27f8926 100644 --- a/README.md +++ b/README.md @@ -23,9 +23,9 @@ El presente documento detalla los endpoints del API con sus respectivos parámet 9. [Regenerar archivo de información de los ogLive](#regenerar-archivo-de-información-de-los-oglive) - `PUT /ogboot/v1/oglives` 10. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `GET /ogboot/v1/images/download` 11. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `GET /ogboot/v1/pxes` -12. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `GET /ogboot/v1/clients/pxes/{mac}` +12. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `GET /ogboot/v1/pxes/{mac}` 13. [Crear archivo de arranque](#crear-archivo-de-arranque) - `POST /ogboot/v1/pxes` -14. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `DELETE /ogboot/v1/clients/pxes` +14. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `DELETE /ogboot/v1/pxes` 15. [Obtener todas las plantillas](#obtener-todas-las-plantillas) - `GET /ogboot/v1/pxe-templates` 16. [Obtener contenido de la plantilla](#obtener-contenido-de-la-plantilla) - `GET /ogboot/v1/pxe-templates/{nombre}` 17. [Crear plantilla](#crear-plantilla) - `POST /ogboot/v1/pxe-templates` @@ -520,6 +520,7 @@ Crea una nueva plantilla de arranque utilizando los datos proporcionados. - {ogshare}: Dirección IP del servidor de archivos compartidos. - {ogprof}: Valor booleano que indica si el perfil del cliente está habilitado o deshabilitado. - {vga}: Modo VGA utilizado para la interfaz de usuario. +- {tftp_server_ip}: Dirección IP del servidor TFTP desde el cual se descargarán los archivos necesarios para el arranque del sistema **Ejemplo de Solicitud:** From 4736604c198bf288ef787660e3e85febdc5f0b74 Mon Sep 17 00:00:00 2001 From: lgromero Date: Thu, 25 Apr 2024 15:15:35 +0200 Subject: [PATCH 12/13] refs #271 changes some endpoints using just the iso name, not the index --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 27f8926..fdf416f 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,8 @@ El presente documento detalla los endpoints del API con sus respectivos parámet 4. [Mostrar información de un cliente ogLive instalado](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `GET /ogboot/v1/oglives/{Index|Dir}` 5. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `GET /ogboot/v1/oglives/default` 6. [Cambiar ogLive predeterminado](#cambiar-oglive-predeterminado) - `POST /ogboot/v1/oglives/default/{Index}` -7. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `POST /ogboot/v1/oglive/{Index/iso}` -8. [Desinstalar cliente ogLive y eliminar imagen](#desinstalar-cliente-oglive-y-eliminar-imagen) - `DELETE /ogboot/v1/oglives/{Index/iso}` +7. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `POST /ogboot/v1/oglive/{iso}` +8. [Desinstalar cliente ogLive y eliminar imagen](#desinstalar-cliente-oglive-y-eliminar-imagen) - `DELETE /ogboot/v1/oglives/{iso}` 9. [Regenerar archivo de información de los ogLive](#regenerar-archivo-de-información-de-los-oglive) - `PUT /ogboot/v1/oglives` 10. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `GET /ogboot/v1/images/download` 11. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `GET /ogboot/v1/pxes` @@ -159,11 +159,11 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/og Muestra información en formato JSON sobre un cliente ogLive instalado específico. -**URL:** `/ogboot/v1/clients/oglives/{Index|Dir}` +**URL:** `/ogboot/v1/clients/oglives/{Index}` **Método HTTP:** GET **Parámetros de la URL:** -- `{Index|Dir}`: El índice o directorio del cliente ogLive instalado. +- `{Index}`: El índice o directorio del cliente ogLive instalado. **Ejemplo de Solicitud:** From b4263035f8b2105adc0175d0f8eabce88a2a2883 Mon Sep 17 00:00:00 2001 From: lgromero Date: Fri, 26 Apr 2024 11:17:35 +0200 Subject: [PATCH 13/13] refs #271 adds new code output and removes the term clients in some endpoints --- README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index fdf416f..63cbaf1 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,6 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/config - **min-release**: La versión mínima recomendada para la instalación de imágenes oglives. -Estas definiciones proporcionan una comprensión clara de cada uno de los parámetros de contenido dentro de la configuración del ogboot. - **Código 400 Bad Request:** La solicitud es incorrecta. La configuración del ogboot no se ha obtenido correctamente. @@ -101,16 +100,11 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/status - - - - - ### Mostrar Información de Todos los Clientes ogLive Instalados Muestra información en formato JSON sobre todos los clientes ogLive instalados. -**URL:** `/ogboot/v1/clients/oglives` +**URL:** `/ogboot/v1/oglives` **Método HTTP:** GET **Ejemplo de Solicitud:** @@ -159,7 +153,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/og Muestra información en formato JSON sobre un cliente ogLive instalado específico. -**URL:** `/ogboot/v1/clients/oglives/{Index}` +**URL:** `/ogboot/v1/oglives/{Index}` **Método HTTP:** GET **Parámetros de la URL:** @@ -189,7 +183,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/og Muestra información en formato JSON sobre el cliente ogLive predeterminado. -**URL:** `/ogboot/v1/clients/oglives/default` +**URL:** `/ogboot/v1/oglives/default` **Método HTTP:** GET **Ejemplo de Solicitud:** @@ -219,7 +213,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/og Establece un nuevo cliente ogLive como predeterminado utilizando su índice. -**URL:** +**URL:** `/ogboot/v1/oglives/default` **Método HTTP:** POST **Parámetros de la URL:** @@ -259,16 +253,15 @@ curl -X POST -H "Authorization: $API_KEY" -d "ISO=ogLive-focal-5.13.0-27-beta-am - ### Desinstalar Cliente ogLive Desinstala un cliente ogLive específico y elimina su imagen asociada. -**URL:** `/ogboot/v1/oglives/{Index/iso}` +**URL:** `/ogboot/v1/oglives/{Index}` **Método HTTP:** DELETE **Parámetros de la URL:** -- `{Index/iso}`: El índice o nombre de archivo ISO del cliente ogLive que se desinstalará y eliminará. +- `{Index}`: El índice deL archivo ISO del cliente ogLive que se desinstalará y eliminará. **Ejemplo de Solicitud:** @@ -343,13 +336,14 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxes **Respuestas:** - **Código 200 OK:** La lista de todos los archivos de arranque se obtuvo exitosamente. - **Contenido:** Lista de archivos de arranque en formato JSON. +- **Código 500 Internal Server Error:** Ocurrió un error al intentar obtener la lista de todos los archivos de arranque disponibles. ### Obtener Configuración de Arranque Obtiene el contenido del archivo de configuración de arranque específico para un cliente utilizando su dirección MAC. -**URL:** `/ogboot/v1/clients/pxes/{mac}` +**URL:** `/ogboot/v1/pxes/{mac}` **Método HTTP:** GET **Parámetros de la URL:** @@ -401,13 +395,13 @@ curl -X POST -H "Authorization: $API_KEY" -d '{"mac": "00:50:56:22:11:12", "conf **Respuestas:** - **Código 200 OK:** El archivo de arranque se creó exitosamente. - **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud. - +- **Código 500 Internal Server Error:** Ocurrió un error al subir el archivo de arranque. ### Eliminar Archivo de Arranque Elimina un archivo de arranque específico utilizando su identificador único. -**URL:** `/ogboot/v1/clients/pxes` +**URL:** `/ogboot/v1/pxes/{MAC}` **Método HTTP:** DELETE **Parámetros de la URL:** @@ -422,6 +416,7 @@ curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients **Respuestas:** - **Código 200 OK:** El archivo de arranque se eliminó correctamente. - **Código 404 Not Found:** No se encontró ningún archivo de arranque con el identificador único especificado. +- **Código 500 Internal Server Error:** Ocurrió un error al eliminar el archivo de arranque. @@ -444,7 +439,7 @@ curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d **Respuestas:** - **Código 200 OK:** El repositorio de arranque se actualizó exitosamente con los archivos modificados. - **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud. - +- **Código 500 Internal Server Error:** Ocurrió un error al actualizar el archivo de arranque. ### Obtener Todas las Plantillas @@ -463,7 +458,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templa **Respuestas:** - **Código 200 OK:** La lista de todas las plantillas de arranque se obtuvo exitosamente. - **Contenido:** Lista de plantillas de arranque en formato JSON. - +- **Código 500 Internal Server Error:** Ocurrió un error al obtener las plantillas de arranque. ### Obtener Contenido de la Plantilla @@ -496,6 +491,8 @@ boot **Respuestas:** - **Código 200 OK:** El contenido de la plantilla de arranque se obtuvo exitosamente. - **Contenido:** Contenido de la plantilla de arranque en formato adecuado para su uso. +- **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud. +- **Código 500 Internal Server Error:** Ocurrió un error al obtener la plantilla de arranque. --- @@ -546,6 +543,7 @@ boot - **Código 200 OK:** La plantilla de arranque se creó exitosamente. - **Contenido:** Plantilla generada a partir de los parámetros pasados en la petición. - **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud. +- **Código 500 Internal Server Error:** Ocurrió un error al crear la plantilla de arranque. ### Regenerar Plantilla @@ -567,6 +565,7 @@ curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templa **Respuestas:** - **Código 200 OK:** El contenido de la plantilla de arranque se regeneró exitosamente. - **Código 404 Not Found:** No se encontró ninguna plantilla de arranque con el nombre especificado. +- **Código 500 Internal Server Error:** Ocurrió un error al regenerar la plantilla de arranque. --- @@ -589,4 +588,5 @@ curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-tem **Respuestas:** - **Código 200 OK:** La plantilla de arranque se eliminó correctamente. - **Código 404 Not Found:** No se encontró ninguna plantilla de arranque con el nombre especificado. +- **Código 500 Internal Server Error:** Ocurrió un error al eliminar la plantilla de arranque.