refs #208 First draft of Ogboot API documentation

pull/2/head
Luis Gerardo Romero Garcia 2024-02-19 18:02:08 +01:00
parent e096fa9210
commit 09fb6ed078
1 changed files with 233 additions and 465 deletions

692
README.md
View File

@ -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" } ] }
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/config
```
### Gestión de Sesión
**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.
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.
### 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/session -d @session.json
```
**Contenido de session.json:**
```json
{ "clients" : [ "192.168.2.1", "192.168.2.2" ], "disk" : "0", "partition" : "1"}
```
### Apagar Equipos
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/
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.
**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
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
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
**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)
- `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.
### 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
**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)
- `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"]
}
**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.