refs #437 changes documentation to get uuid in the oglive installation

pull/3/head
Luis Gerardo Romero Garcia 2024-06-12 13:00:11 +02:00
parent 03d56a93ba
commit 36c6f19cf2
1 changed files with 109 additions and 31 deletions

View File

@ -301,24 +301,35 @@ Para los nuevos flujos de trabajo, asumimos que habrá al menos una nueva tabla
### Flujo de Trabajo: `oglive`
### Propuesta de Flujo de Trabajo para `ogLive`
### 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.
- **Realización**: Puede realizarse directamente desde **`ogCore`** mediante una consulta a la base de datos `oglives`.
- **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**:
```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.
- **Realización**: Necesita comunicación con **`ogBoot`**. Nota: Este proceso requiere de una consulta a Trac que se podría llevar a cabo desde el ogCore.
- **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`
@ -327,61 +338,128 @@ SELECT * FROM oglives;
#### 3. Instalar un `ogLive`
- **Descripción**: Instalar un `ogLive` seleccionado en el sistema.
- **Realización**: Requiere comunicación con **`ogBoot`**
- **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.
**Endpoint**:
- **`ogBoot`**: `/ogboot/v1/oglives`
- **Método**: `POST`
- **Cuerpo de la Solicitud**:
```json
{
"isoname": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso"
}
```
**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**:
```json
{
"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:
```sql
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.
- **Realización**: Puede realizarse desde **`ogCore`** mediante una consulta a la base de datos `oglives`.
- **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**:
```sql
SELECT * FROM oglives WHERE directory = 'ogLive-5.13.0-r20210706';
```
#### 5. Ver el `ogLive` por Defecto
- **Descripción**: Obtener el `ogLive` que está configurado como predeterminado.
- **Realización**: Puede realizarse desde **`ogCore`** mediante una consulta a la base de datos `oglives`.
### 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**:
```sql
SELECT * FROM oglives WHERE is_default = true;
SELECT * FROM oglives;
```
#### 6. Asignar `ogLive` por Defecto
**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**:
```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.
- **Realización**: Requiere comunicación con **`ogBoot`** para modificar el oglive por defecto en el tftpboot del **`ogBoot`**
- **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**:
```sql
SELECT * FROM oglives WHERE directory = 'ogLive-5.13.0-r20210706';
```
**Endpoint**:
- **`ogBoot`**: `/ogboot/v1/oglives/default`
- **`ogBoot`**: `/ogboot/v1/oglives/default/550e8400-e29b-41d4-a716-446655440000`
- **Método**: `POST`
- **Cuerpo de la Solicitud**:
```json
{
"name": "ogLive-5.13.0-r20210706"
}
**Actualizar Base de Datos**:
- Tras la actualización en `ogBoot`, se debe actualizar la base de datos para reflejar el nuevo `ogLive` por defecto:
```sql
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`
- **`ogBoot`**: `/ogboot/v1/oglives/uninstall/550e8400-e29b-41d4-a716-446655440000`
- **Método**: `DELETE`
- **Cuerpo de la Solicitud**:
```json
@ -397,7 +475,7 @@ SELECT * FROM oglives WHERE is_default = true;
- **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/status`
- **`ogBoot`**: `/ogboot/v1/oglive/status`
- **Método**: `GET`
- **Resultado de la Solicitud**:
```json