refs #208 Adds new endpoints clientx/pxes

pull/2/head
Luis Gerardo Romero Garcia 2024-02-20 13:47:22 +01:00
parent 09fb6ed078
commit b28ac5a96a
1 changed files with 99 additions and 24 deletions

123
README.md
View File

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