refs #1095 updates endpoint template and boot file
parent
c7a87f96c1
commit
ce06044bf1
732
README.md
732
README.md
|
@ -577,283 +577,525 @@ curl -X 'DELETE' \
|
|||
```
|
||||
|
||||
|
||||
### Obtener todos los ficheros de arranque
|
||||
|
||||
Devuelve la lista de archivos de arranque PXE disponibles.
|
||||
|
||||
### Obtener Todos los Archivos de Arranque
|
||||
|
||||
Obtiene una lista de todos los archivos de arranque disponibles.
|
||||
|
||||
**URL:** `/ogboot/v1/pxes`
|
||||
**URL:** `/ogboot/v1/pxes`
|
||||
**Método HTTP:** GET
|
||||
|
||||
**Ejemplo de Solicitud:**
|
||||
**Respuesta Exitosa (200 OK):**
|
||||
- **Descripción:** Archivos de arranque PXE obtenidos exitosamente.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"success": "Boot files retrieved successfully",
|
||||
"message": [
|
||||
"01-00-50-56-aa-bb-cc",
|
||||
"01-00-50-56-dd-ee-ff"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
```bash
|
||||
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxes
|
||||
**Posibles Respuestas de Error:**
|
||||
|
||||
{
|
||||
"boot_files": [
|
||||
"01-00:50:56:22:11:11",
|
||||
"01-00:50:56:22:11:12"
|
||||
]
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
**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.
|
||||
- **Código 404 Not Found:** No se encontraron archivos de arranque PXE.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "NOT_FOUND",
|
||||
"message": "No boot files found."
|
||||
}
|
||||
```
|
||||
- **Código 500 Internal Server Error:** Fallo en la obtención de archivos debido a problemas internos, como que el directorio no exista.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "SERVER_ERROR",
|
||||
"message": "Failed to retrieve boot files: directory not found."
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### 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/pxes/{mac}`
|
||||
**Método HTTP:** GET
|
||||
|
||||
**Parámetros de la URL:**
|
||||
- `{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:**
|
||||
- **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.
|
||||
|
||||
|
||||
|
||||
### Crear Archivo de Arranque
|
||||
|
||||
Crea un nuevo archivo de arranque utilizando los parámetros proporcionados.
|
||||
|
||||
**URL:** `/ogboot/v1/pxes`
|
||||
**Método HTTP:** POST
|
||||
|
||||
**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" -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:**
|
||||
- **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/pxes/{MAC}`
|
||||
**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/v1/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.
|
||||
- **Código 500 Internal Server Error:** Ocurrió un error al eliminar el archivo de arranque.
|
||||
|
||||
|
||||
|
||||
### Actualizar Repositorio de Arranque
|
||||
|
||||
Actualiza el repositorio de archivos de arranque con los archivos modificados.
|
||||
|
||||
**URL:** `/ogboot/v1/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 '{"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:**
|
||||
- **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
|
||||
|
||||
Obtiene una lista de todas las plantillas de arranque disponibles.
|
||||
|
||||
**URL:** `/ogboot/v1/pxe-templates`
|
||||
**Método HTTP:** GET
|
||||
|
||||
**Ejemplo de Solicitud:**
|
||||
|
||||
```bash
|
||||
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/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.
|
||||
- **Código 500 Internal Server Error:** Ocurrió un error al obtener las plantillas de arranque.
|
||||
|
||||
|
||||
### Obtener Contenido de la Plantilla
|
||||
|
||||
Obtiene el contenido de una plantilla de arranque específica utilizando su nombre.
|
||||
|
||||
**URL:** `/ogboot/v1/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/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:**
|
||||
- **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.
|
||||
Aquí está la documentación actualizada para incluir el caso de éxito en el que el archivo de arranque es un archivo de arranque por disco.
|
||||
|
||||
---
|
||||
|
||||
### Obtener fichero de arranque
|
||||
|
||||
Devuelve el archivo de arranque para una dirección MAC específica, incluyendo los parámetros de configuración. Si el archivo de arranque es por disco, se devolverá un mensaje específico indicando la posibilidad de un archivo de plantilla para arranque desde disco.
|
||||
|
||||
**URL:** `/ogboot/v1/pxes/{mac}`
|
||||
**Método HTTP:** GET
|
||||
|
||||
#### Parámetro de Ruta
|
||||
- **mac** (string, requerido): Dirección MAC para la cual se recuperará el archivo de arranque.
|
||||
- **Ejemplo:** `00:50:56:22:11:12`
|
||||
|
||||
#### Respuesta Exitosa (200 OK)
|
||||
- **Descripción:** Archivo de arranque obtenido exitosamente.
|
||||
|
||||
##### Caso 1: Archivo de arranque con parámetros
|
||||
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"success": "Boot file retrieved successfully",
|
||||
"message": {
|
||||
"template_name": "pxe",
|
||||
"mac": "00:50:56:22:11:12",
|
||||
"lang": "es_ES.UTF-8",
|
||||
"ip": "192.168.2.11",
|
||||
"server_ip": "192.168.2.1",
|
||||
"router": "192.168.2.1",
|
||||
"netmask": "255.255.255.0",
|
||||
"computer_name": "pc11",
|
||||
"netiface": "eth0",
|
||||
"group": "Aula_virtual",
|
||||
"ogrepo": "192.168.2.1",
|
||||
"oglive": "192.168.2.1",
|
||||
"oglog": "192.168.2.1",
|
||||
"ogshare": "192.168.2.1",
|
||||
"oglivedir": "ogLive",
|
||||
"ogprof": "false",
|
||||
"hardprofile": "",
|
||||
"ogntp": "",
|
||||
"ogdns": "",
|
||||
"ogproxy": "",
|
||||
"ogunit": "",
|
||||
"resolution": "788"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
##### Caso 2: Archivo de arranque por disco (sin parámetros)
|
||||
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"success": "Boot file retrieved successfully",
|
||||
"message": {
|
||||
"template_name": "disk_boot",
|
||||
"mac": "00:50:56:22:11:12",
|
||||
"message": "Boot file without parameters, possibly a disk boot template."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Posibles Respuestas de Error
|
||||
|
||||
- **Código 404 Not Found:** No se encontró ningún archivo de arranque para la dirección MAC especificada.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "NOT_FOUND",
|
||||
"message": "No boot file found for the specified MAC address."
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 500 Internal Server Error:** Error interno del servidor.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "SERVER_ERROR",
|
||||
"message": "An error occurred while retrieving the boot file."
|
||||
}
|
||||
```
|
||||
|
||||
Aquí tienes la documentación del endpoint `createBootFile` actualizada para incluir todos los parámetros opcionales que puedes pasar para generar el archivo de arranque PXE.
|
||||
|
||||
---
|
||||
|
||||
### Crear archivo PXE
|
||||
|
||||
Este endpoint permite crear un archivo de arranque PXE con la MAC y la plantilla especificadas, con parámetros adicionales como IP, directorio ogLive, servidor, y más.
|
||||
|
||||
**URL:** `/ogboot/v1/pxes`
|
||||
**Método HTTP:** POST
|
||||
|
||||
#### Cuerpo de la Solicitud
|
||||
- **mac** (string, requerido): Dirección MAC para el archivo de arranque.
|
||||
- **Ejemplo:** `"00:50:56:22:11:12"`
|
||||
- **template_name** (string, requerido): Nombre de la plantilla que se utilizará para crear el archivo PXE.
|
||||
- **Ejemplo:** `"mi_plantilla.ipxe"`
|
||||
- **server_ip** (string, opcional): Dirección IP del servidor.
|
||||
- **Ejemplo:** `"192.168.2.1"`
|
||||
- **oglivedir** (string, opcional): Directorio ogLive a utilizar en el arranque.
|
||||
- **Ejemplo:** `"ogLive"`
|
||||
|
||||
#### Parámetros Opcionales
|
||||
- **lang** (string): Idioma de la configuración regional.
|
||||
- **Ejemplo:** `"es_ES.UTF-8"`
|
||||
- **ip** (string): Dirección IP.
|
||||
- **Ejemplo:** `"192.168.2.11"`
|
||||
- **router** (string): Dirección IP gateway.
|
||||
- **Ejemplo:** `"192.168.2.1"`
|
||||
- **netmask** (string): Máscara de red.
|
||||
- **Ejemplo:** `"255.255.255.0"`
|
||||
- **computer_name** (string): Nombre del equipo.
|
||||
- **Ejemplo:** `"pc11"`
|
||||
- **netiface** (string): Interfaz de red.
|
||||
- **Ejemplo:** `"eth0"`
|
||||
- **group** (string): Grupo de la máquina.
|
||||
- **Ejemplo:** `"Aula_virtual"`
|
||||
- **ogrepo** (string): IP del servidor de ogrepositorio.
|
||||
- **Ejemplo:** `"192.168.2.1"`
|
||||
- **oglive** (string): IP del servidor tftpboot.
|
||||
- **Ejemplo:** `"192.168.2.1"`
|
||||
- **oglog** (string): IP del servidor de logs.
|
||||
- **Ejemplo:** `"192.168.2.1"`
|
||||
- **ogshare** (string): IP del servidor ogclient
|
||||
- **Ejemplo:** `"192.168.2.1"`
|
||||
- **ogprof** (string): Indica si es profesor.
|
||||
- **Ejemplo:** `"false"`
|
||||
- **hardprofile** (string): Perfil de hardware.
|
||||
- **Ejemplo:** `""`
|
||||
- **ogntp** (string): IP del servidor NTP.
|
||||
- **Ejemplo:** `"192.168.2.1"`
|
||||
- **ogdns** (string): IP del servidor DNS.
|
||||
- **Ejemplo:** `"192.168.2.1"`
|
||||
- **ogproxy** (string): IP del servidor proxy.
|
||||
- **Ejemplo:** `"192.168.2.1"`
|
||||
- **ogunit** (string): Directorio de unidad.
|
||||
- **Ejemplo:** `"unit"`
|
||||
- **resolution** (string): Resolución de pantalla.
|
||||
- **Ejemplo:** `"788"`
|
||||
|
||||
#### Ejemplo de Solicitud
|
||||
```json
|
||||
{
|
||||
"mac": "00:50:56:22:11:12",
|
||||
"template_name": "mi_plantilla.ipxe",
|
||||
"server_ip": "192.168.2.1",
|
||||
"oglivedir": "ogLive",
|
||||
"lang": "es_ES.UTF-8",
|
||||
"ip": "192.168.2.11",
|
||||
"router": "192.168.2.1",
|
||||
"netmask": "255.255.255.0",
|
||||
"computer_name": "pc11",
|
||||
"netiface": "eth0",
|
||||
"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",
|
||||
"hardprofile": "",
|
||||
"ogntp": "192.168.2.1",
|
||||
"ogdns": "192.168.2.1",
|
||||
"ogproxy": "192.168.2.1",
|
||||
"ogunit": "unit",
|
||||
"resolution": "788"
|
||||
}
|
||||
```
|
||||
|
||||
#### Respuesta Exitosa (200 OK)
|
||||
- **Descripción:** Plantilla creada exitosamente.
|
||||
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"success": "PXE file created successfully",
|
||||
"message": "#!ipxe\n#Template: mi_plantilla.ipxe\nset kernelargs ro boot=oginit quiet splash irqpoll ..."
|
||||
}
|
||||
```
|
||||
|
||||
#### Posibles Respuestas de Error
|
||||
|
||||
- **Código 400 Bad Request:** Entrada inválida o falta algún dato requerido (por ejemplo, `mac` o `template_name`).
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "INVALID_INPUT",
|
||||
"message": "Missing required fields: mac and template_name"
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 404 Not Found:** No se encuentra la plantilla especificada.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "TEMPLATE_NOT_FOUND",
|
||||
"message": "No se encontró la plantilla especificada"
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 500 Internal Server Error:** Error interno al crear el archivo PXE.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "FAILED_TO_CREATE_PXE_FILE",
|
||||
"message": "Error al crear el archivo PXE"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Eliminar archivo PXE
|
||||
|
||||
Este endpoint permite eliminar un archivo de arranque PXE específico usando la dirección MAC del cliente.
|
||||
|
||||
**URL:** `/ogboot/v1/pxes/{mac}`
|
||||
**Método HTTP:** DELETE
|
||||
|
||||
#### Parámetros de la URL
|
||||
- **mac** (string, requerido): Dirección MAC del cliente cuyo archivo de arranque se va a eliminar.
|
||||
- **Ejemplo:** `"00:11:22:33:44:55"`
|
||||
|
||||
#### Ejemplo de Solicitud
|
||||
```bash
|
||||
curl -X 'DELETE' \
|
||||
'http://172.17.8.37/ogboot/v1/pxes/00:11:22:33:44:55' \
|
||||
-H 'accept: application/json'
|
||||
```
|
||||
|
||||
#### Respuestas
|
||||
|
||||
- **Código 200 OK:** El archivo de arranque se eliminó exitosamente.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"success": "Boot file deleted successfully",
|
||||
"message": "The boot file for MAC 00:11:22:33:44:55 has been deleted."
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 404 Not Found:** No se encontró un archivo de arranque para la dirección MAC especificada.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "NOT_FOUND",
|
||||
"message": "No boot file found for the specified MAC address."
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 500 Internal Server Error:** Error interno del servidor al intentar eliminar el archivo.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "SERVER_ERROR",
|
||||
"message": "Failed to delete the boot file due to server error."
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Obtener todas las plantillas PXE
|
||||
|
||||
Este endpoint devuelve una lista de todas las plantillas de arranque PXE disponibles en el sistema.
|
||||
|
||||
**URL:** `/ogboot/v1/pxe-templates`
|
||||
**Método HTTP:** GET
|
||||
|
||||
#### Ejemplo de Solicitud
|
||||
```bash
|
||||
curl -X 'GET' \
|
||||
'http://172.17.8.37/ogboot/v1/pxe-templates' \
|
||||
-H 'accept: application/json'
|
||||
```
|
||||
|
||||
#### Respuestas
|
||||
|
||||
- **Código 200 OK:** Lista de plantillas de arranque PXE obtenida con éxito.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"success": "Lista de plantillas obtenida con éxito",
|
||||
"message": [
|
||||
"mi_plantilla.ipxe",
|
||||
"otra_plantilla.ipxe"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 500 Internal Server Error:** Error interno del servidor al intentar obtener las plantillas.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "SERVER_ERROR",
|
||||
"message": "Directorio de plantillas no encontrado"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Obtener contenido de una plantilla PXE
|
||||
|
||||
Este endpoint obtiene el contenido de una plantilla de arranque PXE específica por su nombre.
|
||||
|
||||
**URL:** `/ogboot/v1/pxe-templates/{templateName}`
|
||||
**Método HTTP:** GET
|
||||
|
||||
#### Parámetros
|
||||
|
||||
- **templateName** (obligatorio): Nombre de la plantilla PXE a consultar.
|
||||
- **Ejemplo**: `"mi_plantilla.ipxe"`
|
||||
|
||||
#### Ejemplo de Solicitud
|
||||
```bash
|
||||
curl -X 'GET' \
|
||||
'http://172.17.8.37/ogboot/v1/pxe-templates/mi_plantilla.ipxe' \
|
||||
-H 'accept: application/json'
|
||||
```
|
||||
|
||||
#### Respuestas
|
||||
|
||||
- **Código 200 OK:** Contenido de la plantilla de arranque PXE obtenido exitosamente.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"success": "Plantilla obtenida con éxito",
|
||||
"template_name": "mi_plantilla.ipxe",
|
||||
"template_content": "#!ipxe\nset timeout 0\nset timeout-style hidden\n\nset ISODIR ogLive\nset default 0\nset kernelargs INFOHOST\nkernel tftp://SERVERIP/ogLive/ogvmlinuz ${kernelargs}\ninitrd tftp://SERVERIP/ogLive/oginitrd.img\nboot"
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 404 Not Found:** La plantilla especificada no fue encontrada.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "TEMPLATE_NOT_FOUND",
|
||||
"message": "No se encontró la plantilla especificada"
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 500 Internal Server Error:** Error al leer la plantilla especificada.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "FAILED_TO_READ_TEMPLATE",
|
||||
"message": "Error al leer la plantilla"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Crear Plantilla
|
||||
|
||||
Crea una nueva plantilla de arranque utilizando los datos proporcionados.
|
||||
Este endpoint crea una nueva plantilla de arranque PXE en el servidor utilizando el nombre y el contenido proporcionado.
|
||||
|
||||
**URL:** `/ogboot/v1/pxe-templates`
|
||||
**Método HTTP:** POST
|
||||
**URL:** `/ogboot/v1/pxe-templates`
|
||||
**Método HTTP:** POST
|
||||
|
||||
**Cuerpo de la Solicitud:**
|
||||
- {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.
|
||||
- {tftp_server_ip}: Dirección IP del servidor TFTP desde el cual se descargarán los archivos necesarios para el arranque del sistema
|
||||
#### Parámetros de Solicitud
|
||||
|
||||
**Ejemplo de Solicitud:**
|
||||
- **name_template** (obligatorio): Nombre de la nueva plantilla.
|
||||
- **Ejemplo**: `"mi_plantilla.ipxe"`
|
||||
- **content_template** (obligatorio): Contenido de la plantilla, que debe incluir el script de arranque.
|
||||
- **Ejemplo**:
|
||||
```plaintext
|
||||
#!ipxe
|
||||
set timeout 0
|
||||
set timeout-style hidden
|
||||
set ISODIR __OGLIVE__
|
||||
set default 0
|
||||
set kernelargs __INFOHOST__
|
||||
:try_iso
|
||||
kernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs} || goto fallback
|
||||
initrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img
|
||||
boot
|
||||
|
||||
:fallback
|
||||
set ISODIR ogLive
|
||||
kernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs}
|
||||
initrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img
|
||||
boot
|
||||
```
|
||||
|
||||
#### Ejemplo de Solicitud
|
||||
```bash
|
||||
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
|
||||
|
||||
curl -X 'POST' \
|
||||
'http://172.17.8.37/ogboot/v1/pxe-templates' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"name_template": "mi_plantilla.ipxe",
|
||||
"content_template": "#!ipxe\nset timeout 0\nset timeout-style hidden\nset ISODIR __OGLIVE__\nset default 0\nset kernelargs __INFOHOST__\n:try_iso\nkernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs} || goto fallback\ninitrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img\nboot\n\n:fallback\nset ISODIR ogLive\nkernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs}\ninitrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img\nboot\n"
|
||||
}'
|
||||
```
|
||||
|
||||
#### Respuestas
|
||||
|
||||
**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.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"success": "Plantilla creada con éxito",
|
||||
"message": {
|
||||
"template_name": "mi_plantilla.ipxe",
|
||||
"template_content": "#!ipxe\nset timeout 0\nset timeout-style hidden\nset ISODIR __OGLIVE__\nset default 0\nset kernelargs __INFOHOST__\n:try_iso\nkernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs} || goto fallback\ninitrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img\nboot\n\n:fallback\nset ISODIR ogLive\nkernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs}\ninitrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img\nboot\n"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 400 Bad Request:** Datos no válidos o faltan los parámetros `name_template` o `content_template`.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "INVALID_INPUT",
|
||||
"message": "Faltan datos requeridos: name_template y content_template son necesarios."
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 403 Forbidden:** Intento de acceso no autorizado fuera del directorio de plantillas.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "UNAUTHORIZED_ACCESS",
|
||||
"message": "Intento de acceso no autorizado fuera del directorio de plantillas."
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 500 Internal Server Error:** Ocurrió un error al crear la plantilla de arranque.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "FILE_CREATION_ERROR",
|
||||
"message": "Ocurrió un error al crear la plantilla de arranque."
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Regenerar Plantilla
|
||||
|
||||
Regenera el contenido de una plantilla de arranque específica utilizando su nombre.
|
||||
|
||||
**URL:** `/ogboot/v1/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/v1/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.
|
||||
- **Código 500 Internal Server Error:** Ocurrió un error al regenerar la plantilla de arranque.
|
||||
|
||||
---
|
||||
|
||||
### Eliminar Plantilla
|
||||
|
||||
Elimina una plantilla de arranque específica utilizando su nombre.
|
||||
Este endpoint elimina una plantilla de arranque PXE en el servidor utilizando el nombre proporcionado.
|
||||
|
||||
**URL:** `/ogboot/v1/pxe-templates/{nombre}`
|
||||
**Método HTTP:** DELETE
|
||||
**URL:** `/ogboot/v1/pxe-templates/{name}`
|
||||
**Método HTTP:** DELETE
|
||||
|
||||
**Parámetros de la URL:**
|
||||
- `{nombre}`: El nombre de la plantilla de arranque que se desea eliminar.
|
||||
#### Parámetros de Solicitud
|
||||
|
||||
**Ejemplo de Solicitud:**
|
||||
- **name** (obligatorio): Nombre de la plantilla de arranque que se desea eliminar.
|
||||
- **Ejemplo**: `"mi_plantilla.ipxe"`
|
||||
|
||||
#### Ejemplo de Solicitud
|
||||
```bash
|
||||
curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templates/template1
|
||||
curl -X 'DELETE' \
|
||||
'http://172.17.8.37/ogboot/v1/pxe-templates/mi_plantilla.ipxe' \
|
||||
-H 'accept: application/json'
|
||||
```
|
||||
|
||||
**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.
|
||||
#### Respuestas
|
||||
|
||||
- **Código 200 OK:** La plantilla de arranque se eliminó correctamente.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"success": "Plantilla eliminada",
|
||||
"message": "La plantilla mi_plantilla se ha borrado correctamente"
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 404 Not Found:** No se encontró ninguna plantilla de arranque con el nombre especificado.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "TEMPLATE_NOT_FOUND",
|
||||
"message": "No se encontró la plantilla especificada"
|
||||
}
|
||||
```
|
||||
|
||||
- **Código 500 Internal Server Error:** Ocurrió un error al eliminar la plantilla de arranque.
|
||||
- **Ejemplo de Respuesta:**
|
||||
```json
|
||||
{
|
||||
"error": "FAILED_TO_DELETE_TEMPLATE",
|
||||
"message": "Ocurrió un error al intentar eliminar la plantilla"
|
||||
}
|
||||
```
|
||||
|
||||
|
|
Loading…
Reference in New Issue