refs #437 Changes endpoints to add uuid to url

pull/3/head
Luis Gerardo Romero Garcia 2024-06-26 13:03:46 +02:00
parent 1a79772d1d
commit 6a389014cc
1 changed files with 51 additions and 20 deletions

View File

@ -9,8 +9,8 @@ El componente `ogboot` se encarga de la gestión y configuración de archivos de
#### Endpoints del Recurso `oglive`
1. **Ver todos los ogLives instalados (OGCORE)**
- **URL**: `/ogboot/v1/oglives/all`
1. **Ver todos los ogLives instalados**
- **URL**: `/ogboot/v1/oglives`
- **Método HTTP**: GET
- **Descripción**: Obtiene información sobre todos los ogLives instalados.
- **Respuesta**:
@ -23,15 +23,16 @@ El componente `ogboot` se encarga de la gestión y configuración de archivos de
```
2. **Obtener Información de un ogLive (OGCORE)**
- **URL**: `/ogboot/v1/oglives/{name}`
2. **Obtener Información de un ogLive**
- **URL**: `/ogboot/v1/oglives/{uuid}`
- **Método HTTP**: GET
- **Descripción**: Obtiene información sobre un cliente ogLive instalado utilizando su nombre.
- **Parámetros**:
- `name` (string): Nombre del ogLive.
- `uuid` (string): uuid del ogLive.
- **Respuesta**:
```json
{
"distribution": "uuid",
"distribution": "focal",
"kernel": "5.13.0-27",
"architecture": "amd64",
@ -44,7 +45,7 @@ El componente `ogboot` se encarga de la gestión y configuración de archivos de
- **200 OK**: Información del ogLive obtenida exitosamente.
- **404 Not Found**: ogLive no encontrado.
3. **Obtener Información del ogLive Predeterminado (OGCORE)**
3. **Obtener Información del ogLive Predeterminado**
- **URL**: `/ogboot/v1/oglives/default`
- **Método HTTP**: GET
- **Descripción**: Obtiene información sobre el cliente ogLive predeterminado.
@ -70,11 +71,11 @@ El componente `ogboot` se encarga de la gestión y configuración de archivos de
4. **Establecer ogLive Predeterminado**
- **URL**: `/ogboot/v1/oglives/default/{name}`
- **URL**: `/ogboot/v1/oglives/default/{uuid}`
- **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.
- `uuid` (string): uuid del ogLive a establecer como predeterminado.
- **Respuestas**:
- **200 OK**: ogLive establecido como predeterminado exitosamente.
- **404 Not Found**: ogLive no encontrado.
@ -139,7 +140,7 @@ El componente `ogboot` se encarga de la gestión y configuración de archivos de
- **500 Internal Server Error**: Error al crear el ogLive.
7. **Eliminar un ogLive**
- **URL**: `/ogboot/v1/oglives/{name}`
- **URL**: `/ogboot/v1/oglives/{uuid}`
- **Método HTTP**: DELETE
- **Descripción**: Elimina un ogLive específico utilizando su nombre.
- **Parámetros**:
@ -283,7 +284,7 @@ Para los nuevos flujos de trabajo, asumimos que habrá al menos una nueva tabla
| Atributo | Tipo de Dato | Descripción |
|----------------|----------------|-----------------------------------------------------------------|
| `id` | `SERIAL` | Identificador único del registro, clave primaria. |
| `id` | `SERIAL` | Identificador del ogLive que corresponde a su suma de comprobación |
| `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"). |
@ -451,22 +452,52 @@ SELECT * FROM oglives WHERE directory = 'ogLive-5.13.0-r20210706';
```
### Flujo de trabajo para desinstalar un `ogLive`
#### 1. Consultar los `ogLives` Instalados
#### 7. Desinstalar un `ogLive`
- **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.
- **Descripción**: Eliminar un `ogLive` instalado del sistema.
- **Realización**: Requiere comunicación con **`ogBoot`**
**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/uninstall/550e8400-e29b-41d4-a716-446655440000`
- **`ogBoot`**: `/ogboot/v1/oglives`
- **Método**: `GET`
#### 2. Desinstalar `ogLive`
- **Descripción**: Iniciar el proceso de desinstalación del `ogLive` seleccionado en `ogBoot`.
- **Interacción en la Web**:
- En la lista de `ogLives` instalados, el usuario elige el `ogLive` a desinstalar.
- Hace clic en el botón "Desinstalar" junto al `ogLive` seleccionado.
- El sistema muestra un cuadro de confirmación preguntando si el usuario está seguro de desinstalar el `ogLive`.
- El usuario hace clic en "Confirmar" para proceder.
- El sistema envía una solicitud a `ogBoot` para desinstalar el `ogLive`.
**Realización**:
- **Endpoint**: `/ogboot/v1/oglives/550e8400-e29b-41d4-a716-446655440000`
- **Método**: `DELETE`
- **Cuerpo de la Solicitud**:
```json
{
"name": "ogLive-5.13.0-r20210706"
}
```
- **Validación de Instalación**: `ogBoot` intenta desinstalar el `ogLive` y devuelve un estado de éxito o fallo.
- **Actualización de Base de Datos**:
- **Desinstalación Exitosa**: Si `ogBoot` confirma el éxito, `ogCore` elimina el `ogLive` en la base de datos:
```sql
DELETE FROM oglives WHERE uuid = '550e8400-e29b-41d4-a716-446655440000';
```
- **Instalación Fallida**: Si `ogBoot` reporta un fallo, no se realiza ningún borrado y se maneja el error adecuadamente en la interfaz de usuario.
### Flujo de trabajo para corregir las incongruencias entre `ogCore` y `ogBoot`
#### 8. Revisar estado de ogboot