ogboot/docs/ogboot-ogcore-communication...

26 KiB

Diseño de la Lógica y Comunicación entre los Endpoints del Componente ogboot y el Servidor ogCore

Introducción

El componente ogboot se encarga de la gestión y configuración de archivos de arranque (iPXE) y plantillas en un entorno de despliegue de imágenes. El servidor ogCore es el núcleo que interactúa con ogboot para realizar operaciones de administración y configuración. Este documento describe la lógica y la comunicación entre los endpoints del componente ogboot y el servidor ogCore.

Endpoints del Componente ogboot

Endpoints del Recurso oglive

  1. Ver todos los ogLives instalados (OGCORE)

    • URL: /ogboot/v1/oglives/all
    • Método HTTP: GET
    • Descripción: Obtiene información sobre todos los ogLives instalados.
    • Respuesta:
         [
         "ogLive-5.0.0-r20190605",
         "ogLive-5.11.0-r20210413",
         "ogLive-5.13.0-27-r20210706"
         ]
      
  2. Obtener Información de un ogLive (OGCORE)

    • URL: /ogboot/v1/oglives/{name}
    • Método HTTP: GET
    • Descripción: Obtiene información sobre un cliente ogLive instalado utilizando su nombre.
    • Parámetros:
      • name (string): Nombre del ogLive.
    • Respuesta:
      {
        "distribution": "focal",
        "kernel": "5.13.0-27",
        "architecture": "amd64",
        "revision": "r20210706.5b4bf5f",
        "directory": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f",
        "iso": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso"
      }
      
    • Respuestas:
      • 200 OK: Información del ogLive obtenida exitosamente.
      • 404 Not Found: ogLive no encontrado.
  3. Obtener Información del ogLive Predeterminado (OGCORE)

    • URL: /ogboot/v1/oglives/default

    • Método HTTP: GET

    • Descripción: Obtiene información sobre el cliente ogLive predeterminado.

    • Ejemplo de Solicitud:

      curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/oglives/default
      
    • Respuesta:

      {
        "distribution": "focal",
        "kernel": "5.13.0-27",
        "architecture": "amd64",
        "revision": "r20210706.5b4bf5f",
        "directory": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f",
        "iso": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso"
      }
      
    • Respuestas:

      • 200 OK: Información del ogLive predeterminado obtenida exitosamente.
      • 500 Internal Server Error: Error al obtener la información del ogLive predeterminado.
  4. Establecer ogLive Predeterminado

    • URL: /ogboot/v1/oglives/default/{name}
    • Método HTTP: POST
    • Descripción: Establece un cliente ogLive como predeterminado utilizando su nombre.
    • Parámetros:
      • name (string): Nombre del ogLive a establecer como predeterminado.
    • Respuestas:
      • 200 OK: ogLive establecido como predeterminado exitosamente.
      • 404 Not Found: ogLive no encontrado.
      • 500 Internal Server Error: Error al establecer el ogLive como predeterminado.
  5. Ver la lista de ogLives disponibles para descargar

    • URL: /ogboot/v1/oglives/isos
    • Método HTTP: GET
    • Respuesta:
         [
         {
             "id": "1",
             "filename": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso",
             "installed": false,
             "compatible": true
         },
         {
             "id": "2",
             "filename": "ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso",
             "installed": false,
             "compatible": true
         },
         {
             "id": "3",
             "filename": "ogLive-focal-5.8.0-50-generic-amd64-r20210413.992ebb9.iso",
             "installed": false,
             "compatible": true
         },
         {
             "id": "4",
             "filename": "ogLive-bionic-5.4.0-40-generic-amd64-r20200629.85eceaf.iso",
             "installed": false,
             "compatible": true
         },
      
         ]
      
      
      • 500 Internal Server Error: Error en la conexión.
  6. Crear un ogLive

    • URL: /ogboot/v1/oglives
    • Método HTTP: POST
    • Descripción: Crea un nuevo ogLive utilizando el nombre del ISO proporcionado.
    • Cuerpo de la Solicitud:
      {
        "isoName": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso"
      }
      
    • Ejemplo de Solicitud:
      curl -X POST -H "Authorization: $API_KEY" -d '{"isoName": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso"}' http://example.com/ogboot/v1/oglives
      
    • Respuestas:
      • 200 OK: ogLive creado exitosamente.
      • 400 Bad Request: Error en los datos proporcionados.
      • 500 Internal Server Error: Error al crear el ogLive.
  7. Eliminar un ogLive

    • URL: /ogboot/v1/oglives/{name}
    • Método HTTP: DELETE
    • Descripción: Elimina un ogLive específico utilizando su nombre.
    • Parámetros:
      • name (string): Nombre del ogLive.
    • Respuestas:
      • 200 OK: ogLive eliminado exitosamente.
      • 404 Not Found: ogLive no encontrado.
      • 500 Internal Server Error: Error al eliminar el ogLive.

Endpoints del Recurso pxe y pxe-template

  1. Obtener Todos los Archivos de Arranque

    • URL: /ogboot/v1/pxes
    • Método HTTP: GET
    • Descripción: Obtiene una lista de todos los archivos de arranque disponibles.
    • Respuesta: Lista de archivos de arranque en formato JSON.
  2. Obtener Configuración de Arranque

    • URL: /ogboot/v1/pxes/{mac}
    • Método HTTP: GET
    • Descripción: Obtiene el contenido del archivo de configuración de arranque específico para un cliente utilizando su dirección MAC.
    • Respuesta: Archivo de arranque en formato adecuado.
         {
         "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"
         }
      
      
  3. Crear Archivo de Arranque

    • URL: /ogboot/v1/pxes
    • Método HTTP: POST
    • Descripción: Crea un nuevo archivo de arranque utilizando los parámetros proporcionados.
    • Cuerpo de la Solicitud:
         {
         "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"
         }
      
      
    • Respuesta: Mensaje de éxito o error.
  4. Eliminar Archivo de Arranque

    • URL: /ogboot/v1/pxes/{name}
    • Método HTTP: DELETE
    • Descripción: Elimina un archivo de arranque específico utilizando su dirección MAC.
    • Respuesta: Mensaje de éxito o error.
  5. Obtener Todas las Plantillas de Arranque

    • URL: /ogboot/v1/pxe-templates
    • Método HTTP: GET
    • Descripción: Obtiene una lista de todas las plantillas de arranque disponibles.
    • Respuesta: Lista de plantillas en formato JSON.
      {
      "templates": [
          "pxe",
          "pxe2",
          "pxe_default"
      ]
      }
      
  6. Obtener Contenido de una Plantilla

    • URL: /ogboot/v1/pxe-templates/{name}
    • Método HTTP: GET
    • Descripción: Obtiene el contenido de una plantilla de arranque específica utilizando su nombre.
    • Respuesta: Contenido de la plantilla en formato adecuado.
  7. Crear Plantilla de Arranque

    • URL: /ogboot/v1/pxe-templates
    • Método HTTP: POST
    • Descripción: Crea una nueva plantilla de arranque utilizando los datos proporcionados.
    • Cuerpo de la Solicitud:
      {
        "name_template": "pxe",
        "content_template": "contenido_de_la_plantilla"
      }
      
    • Respuesta: Mensaje de éxito o error.
  8. Eliminar Plantilla de Arranque

    • URL: /ogboot/v1/pxe-templates/{name}
    • Método HTTP: DELETE
    • Descripción: Elimina una plantilla de arranque específica utilizando su nombre.
    • Respuesta: Mensaje de éxito o error.

Flujos de Trabajo

Para los nuevos flujos de trabajo, asumimos que habrá al menos una nueva tabla en ogCore para almacenar la información de los ogLives y su estado. Esta tabla permitirá a ogCore gestionar y sincronizar la información con ogBoot.

Propuesta de definición de la tabla ogLive

Atributo Tipo de Dato Descripción
id SERIAL Identificador único del registro, clave primaria.
distribution VARCHAR(50) Nombre de la distribución del ogLive (por ejemplo, "focal").
kernel VARCHAR(100) Versión del kernel del ogLive.
architecture VARCHAR(10) Arquitectura del ogLive (por ejemplo, "amd64").
revision VARCHAR(50) Revisión del ogLive (por ejemplo, "r20210706").
directory VARCHAR(100) Nombre del directorio del ogLive en el sistema de archivos.
iso VARCHAR(255) Nombre del archivo ISO del ogLive.
is_default BOOLEAN Indica si el ogLive es el predeterminado (true o false).

Ejemplo de Registro

id distribution kernel architecture revision directory iso is_default
1 focal 5.13.0-27-beta amd64 r20210706 ogLive-5.13.0-r20210706 ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso true

Flujo de trabajo para instalar un ogLive

1. Consultar los ogLives Instalados

  • Descripción: Obtener la lista de ogLives que están actualmente instalados en el sistema.
  • Interacción en la Web:
    • El usuario navega a la sección de ogLives en el panel de administración.
    • Hace clic en "Ver ogLives instalados".
    • El sistema realiza una llamada a la API para obtener la lista de ogLives instalados.

Realización: Puede realizarse directamente desde ogCore mediante una consulta a la base de datos oglives.

Consulta SQL:

SELECT * FROM oglives;

Endpoint:

  • ogBoot: /ogboot/v1/oglives
  • Método: GET

2. Consultar los ogLives disponibles para descargar

  • Descripción: Obtener una lista de ogLives disponibles para descargar desde el servidor.
  • Interacción en la Web:
    • El usuario selecciona "Descargar nuevos ogLives" en la interfaz.
    • Aparece una lista de ogLives disponibles, obtenida mediante una consulta al servidor.

Realización: Necesita comunicación con ogBoot. Nota: Este proceso requiere de una consulta a Trac (o web) que se podría llevar a cabo desde el ogCore.

Endpoint:

  • ogBoot: /ogboot/v1/isos
  • Método: GET

3. Instalar un ogLive

  • Descripción: Instalar un ogLive seleccionado en el sistema.
  • Interacción en la Web:
    • El usuario selecciona un ogLive de la lista de disponibles y hace clic en "Instalar".
    • El sistema muestra un cuadro de confirmación, y al confirmar, se inicia el proceso de instalación.

Realización: Requiere comunicación con ogBoot para iniciar la instalación. Primero, se construye el JSON con los parámetros necesarios. La inserción en la base de datos ogCore solo se realiza después de que la instalación en ogBoot sea confirmada como exitosa.

  • Proceso de Instalación:
    1. Generación de JSON: ogCore genera un JSON con los detalles del ogLive, incluyendo un UUID temporal.
    2. Solicitud de Instalación:
      • Endpoint: /ogboot/v1/oglives
      • Método: POST
      • Cuerpo de la Solicitud:
        {
          "uuid": "550e8400-e29b-41d4-a716-446655440000",
          "directory": "ogLive-5.11.0-r20210413",
          "distribution": "focal",
          "kernel": "5.11.0-22-generic",
          "architecture": "amd64",
          "revision": "r20210413",
          "iso": "ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso"
        }
        
    3. Validación de Instalación: ogBoot intenta instalar el ogLive y devuelve un estado de éxito o fallo.
    4. Actualización de Base de Datos:
      • Instalación Exitosa: Si ogBoot confirma el éxito, ogCore inserta el nuevo ogLive en la base de datos:
        INSERT INTO oglives (uuid, distribution, kernel, architecture, revision, directory, iso, is_default)
        VALUES ('550e8400-e29b-41d4-a716-446655440000', 'focal', '5.11.0-22-generic', 'amd64', 'r20210413', 'ogLive-5.11.0-r20210413', 'ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso', false);
        
      • Instalación Fallida: Si ogBoot reporta un fallo, no se realiza ninguna inserción y se maneja el error adecuadamente en la interfaz de usuario.

4. Revisar un ogLive Instalado

  • Descripción: Obtener detalles sobre un ogLive específico que está instalado.
  • Interacción en la Web:
    • El usuario selecciona un ogLive de la lista de instalados para ver detalles.
    • Se muestra la información detallada del ogLive seleccionado.

Realización: Puede realizarse desde ogCore mediante una consulta a la base de datos oglives.

Consulta SQL:

SELECT * FROM oglives WHERE directory = 'ogLive-5.13.0-r20210706';

Flujo de trabajo para cambiar el oglive por defecto

1. Consultar los ogLives Instalados

  • Descripción: Obtener la lista de ogLives que están actualmente instalados en el sistema.
  • Interacción en la Web:
    • El usuario navega a la sección de ogLives en el panel de administración.
    • Hace clic en "Ver ogLives instalados".
    • El sistema realiza una llamada a la API para obtener la lista de ogLives instalados.

Realización: Puede realizarse directamente desde ogCore mediante una consulta a la base de datos oglives. Lo ideal sería hacerlo hacia ogBoot ya que tiene la fuente de información fidedigna del estado de los ogLives en el componente.

Consulta SQL:

SELECT * FROM oglives;

Endpoint:

  • ogBoot: /ogboot/v1/oglives
  • Método: GET

2. Ver el ogLive por Defecto

  • Descripción: Obtener el ogLive que está configurado como predeterminado.
  • Interacción en la Web:
    • El usuario navega a la sección de configuración de ogLives en el panel de administración.
    • Hace clic en en el ogLive que está marcado por defecto.
    • El sistema realiza una consulta a la base de datos para obtener el ogLive predeterminado.

Realización: Puede realizarse desde ogCore mediante una consulta a la base de datos oglives.

Consulta SQL:

SELECT * FROM oglives WHERE directory = 'ogLive-5.13.0-r20210706';

3. Asignar ogLive por Defecto

  • Descripción: Configurar un ogLive instalado como el predeterminado.
  • Interacción en la Web:
    • El usuario selecciona un ogLive de la lista de instalados.
    • Hace clic en "Configurar como ogLive por defecto".
    • Tras la confirmación, el sistema envía una solicitud para actualizar el ogLive por defecto.
    • El sistema actualiza la base de datos y comunica el cambio a ogBoot.

Realización: Requiere comunicación con ogBoot para modificar el ogLive por defecto en el TFTP boot del ogBoot.

Consulta SQL:

SELECT * FROM oglives WHERE directory = 'ogLive-5.13.0-r20210706';

Endpoint:

  • ogBoot: /ogboot/v1/oglives/default/550e8400-e29b-41d4-a716-446655440000
  • Método: POST

Actualizar Base de Datos:

  • Tras la actualización en ogBoot, se debe actualizar la base de datos para reflejar el nuevo ogLive por defecto:
    UPDATE oglives SET is_default = false WHERE is_default = true;
    UPDATE oglives SET is_default = true WHERE uuid = '550e8400-e29b-41d4-a716-446655440000';
    

7. Desinstalar un ogLive

  • Descripción: Eliminar un ogLive instalado del sistema.
  • Realización: Requiere comunicación con ogBoot

Endpoint:

  • ogBoot: /ogboot/v1/oglives/uninstall/550e8400-e29b-41d4-a716-446655440000
  • Método: DELETE
  • Cuerpo de la Solicitud:
    {
      "name": "ogLive-5.13.0-r20210706"
    }
    

8. Revisar estado de ogboot

  • Descripción: Comparar el estado actual de ogboot con la base de datos de ogCore, generando un informe de discrepancias.
  • Realización: Requiere comunicación con ogBoot para obtener el estado actual de los ogLives instalados, el ogLive por defecto, y las plantillas de arranque (pxes). Luego, ogCore compara estos datos con su base de datos y devuelve un informe de discrepancias.

Endpoint:

  • ogBoot: /ogboot/v1/oglive/status
  • Método: GET
  • Resultado de la Solicitud:
    {
      "installed_oglives": [
        {
          "name": "ogLive-5.13.0-r20210706",
          "kernel": "5.13.0-27-beta",
          "revision": "r20210706",
          "default": true
        },
        {
          "name": "ogLive-5.11.0-r20210413",
          "kernel": "5.11.0-22-generic",
          "revision": "r20210413",
          "default": false
        }
      ],
      "installed_pxe_templates": [
        "default.ipxe",
        "template1.ipxe"
      ]
    }
    

Informe de Discrepancias (Ejemplo):

{
  "discrepancies": {
    "oglives": [
      {
        "expected": {
          "name": "ogLive-5.13.0-r20210706",
          "default": true
        },
        "actual": {
          "name": "ogLive-5.11.0-r20210413",
          "default": true
        }
      }
    ],
    "pxe_templates": [
      {
        "expected": "default.ipxe",
        "actual": "template1.ipxe"
      }
    ]
  }
}

9. Sincronizar Datos de ogboot con ogCore

  • Descripción: ogCore sincroniza su base de datos con el estado actual de ogboot. Este proceso solo actualiza las discrepancias detectadas.
  • Realización: Requiere comunicación con ogBoot para obtener el estado actual. Luego, ogCore actualiza su base de datos con cualquier cambio detectado en los ogLives instalados, el ogLive por defecto, y las plantillas de arranque (pxes).

Endpoint:

  • ogBoot: /ogboot/v1/sync
  • Método: GET
  • Resultado de la Solicitud:
    {
      "installed_oglives": [
        {
          "name": "ogLive-5.13.0-r20210706",
          "kernel": "5.13.0-27-beta",
          "revision": "r20210706",
          "default": true
        },
        {
          "name": "ogLive-5.11.0-r20210413",
          "kernel": "5.11.0-22-generic",
          "revision": "r20210413",
          "default": false
        }
      ],
      "installed_pxe_templates": [
        "default.ipxe",
        "template1.ipxe"
      ]
    }
    

Flujo de Trabajo: pxe y pxe-template

NOTA

En la implementación actual de OpenGnsys, se realiza una consulta SQL a la tabla ordenadores, haciendo joins con tablas como aulas, centros, entidades, etc. (consultar fichero opengnsys/server/bin/setclientmode) para obtener todos los parámetros necesarios para la creación de archivos PXE. Es necesario estudiar si existe la necesidad de crear una tabla pxe para almacenar estos parámetros. En caso de decidirse la creación de dicha tabla, podría tener los siguientes atributos:

  • template_name (nombre de la plantilla)
  • mac (dirección MAC)
  • lang (idioma)
  • ip (dirección IP)
  • server_ip (dirección IP del servidor)
  • router (router)
  • netmask (máscara de red)
  • computer_name (nombre del equipo)
  • netiface (interfaz de red)
  • group (grupo)
  • ogrepo (IP del repositorio)
  • oglive (IP del servidor en vivo)
  • oglog (IP del servidor de logs)
  • ogshare (IP del servidor compartido)
  • oglivedir (directorio en vivo)
  • ogprof (es profesor)
  • hardprofile (perfil de hardware)
  • ogntp (servidor NTP)
  • ogdns (servidor DNS)
  • ogproxy (servidor proxy)
  • ogunit (directorio de unidad)
  • resolution (resolución de pantalla)

NOTA 2

¿Tiene sentido hacer una tabla para las plantillas pxe-templates? Solo tendrian dos atributos: template-name y content. ¿No sería mejor que quedasen guardadas en el ogboot y se usen cuando se vaya a crear un fichero de arranque?

Para estos flujos asumiremos que NO se han creado tablas a mayores de pxe ni de pxe-templates. Este es el flujo original que se produce actualmente en ogboot.

  1. Obtener Todos los Archivos de Arranque

    • URL: /ogboot/v1/pxes
    • Método HTTP: GET
    • Cuerpo de la Solicitud:
    {
         {
         "boot_files": [
             "01-00:50:56:20:69:11",
             "01-00:50:56:20:69:12"
         ]
         }
    }
    
  2. Obtener Configuración de Arranque por MAC

    • URL: /ogboot/v1/pxes/{mac}
    • Método HTTP: GET
    • Cuerpo de la Solicitud:
    • Respuesta:
         {
         "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"
         }
    
    
  3. Obtener Todas las Plantillas de Arranque

    • URL: /ogboot/v1/pxe-templates
    • Método HTTP: GET
    • Respuesta:
     {
         "templates": [
             "pxe",
             "pxe_default"
         ]
     }
    
  4. Crear Plantilla de Arranque

    • URL: /ogboot/v1/pxes-templates
    • Método HTTP: POST
    • Cuerpo de la Solicitud:
         {
         "name_template": "pxe2",
         "content_template": "#!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"
         }
    
    • Respuesta:
         {
         "message": "Plantilla creada exitosamente.",
         "template": "#!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"
         }
    
  5. Obtener Todas las Plantillas de Arranque

    • URL: /ogboot/v1/pxe-templates
    • Método HTTP: GET
    • Respuesta:
     {
         "templates": [
             "pxe",
             "pxe2"
             "pxe_default"
         ]
     }
    
  6. Crear archivo de Arranque

    • URL: /ogboot/v1/pxes
    • Método HTTP: POST
    • Respuesta:
         {
         "template_name": "pxe2",
         "mac": "00:50:56:22:11:13",
         "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": "pc13",
         "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"
         }
    
  7. Obtener Todos los Archivos de Arranque

    • URL: /ogboot/v1/pxes
    • Método HTTP: GET
    • Cuerpo de la Solicitud:
    {
         {
         "boot_files": [
             "01-00:50:56:20:69:11",
             "01-00:50:56:20:69:12",
             "01-00:50:56:20:69:13"
         ]
         }
    }
    
  8. Borrado de un fichero de arranque

    • URL: /ogboot/v1/pxes/{mac}
    • Método HTTP: DELETE
    • Respuesta:
     {
     "message": "El archivo de arranque se eliminó correctamente"
     }
    
  9. Borrado de una plantilla

    • URL: /ogboot/v1/pxe-templates/{name}
    • Método HTTP: DELETE
    • Respuesta:
     {
     "message": "Plantilla eliminada correctamente."
     }