1685 lines
62 KiB
YAML
1685 lines
62 KiB
YAML
swagger: "2.0"
|
|
info:
|
|
title: "ogRepository API"
|
|
version: "1.0"
|
|
description: |
|
|
---
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
# Esto hace que el Swagger se ordene por los tags (apartados), de la forma especificada:
|
|
tags:
|
|
- name: "Estado de ogRepository"
|
|
- name: "Información de Imágenes"
|
|
- name: "Eliminar y Recuperar Imágenes"
|
|
- name: "Transferencia de Imágenes (UDPcast)"
|
|
- name: "Transferencia de Imágenes (UFTP)"
|
|
- name: "Transferencia de Imágenes (P2P)"
|
|
- name: "Importar y Exportar Imágenes"
|
|
- name: "Varios"
|
|
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# Apartado "Estado de ogRepository"
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
paths:
|
|
/ogrepository/v1/status:
|
|
get:
|
|
summary: "Obtener Información de Estado de ogRepository"
|
|
description: >
|
|
Este endpoint ejecuta el script "**getRepoStatus.py**" y devuelve su salida en formato JSON,
|
|
incluyendo información sobre la CPU, memoria RAM, disco duro, servicios, y procesos específicos de ogRepository.
|
|
tags:
|
|
- "Estado de ogRepository"
|
|
responses:
|
|
"200":
|
|
description: "La información de estado se obtuvo exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: object
|
|
properties:
|
|
cpu:
|
|
type: object
|
|
properties:
|
|
used_percentage:
|
|
type: string
|
|
example: "35%"
|
|
ram:
|
|
type: object
|
|
properties:
|
|
total:
|
|
type: string
|
|
example: "7.8GB"
|
|
used:
|
|
type: string
|
|
example: "0.3GB"
|
|
available:
|
|
type: string
|
|
example: "7.2GB"
|
|
used_percentage:
|
|
type: string
|
|
example: "7%"
|
|
disk:
|
|
type: object
|
|
properties:
|
|
total:
|
|
type: string
|
|
example: "11.7GB"
|
|
used:
|
|
type: string
|
|
example: "7.7GB"
|
|
available:
|
|
type: string
|
|
example: "3.4GB"
|
|
used_percentage:
|
|
type: string
|
|
example: "69%"
|
|
services:
|
|
type: object
|
|
properties:
|
|
ssh:
|
|
type: string
|
|
example: "active"
|
|
smbd:
|
|
type: string
|
|
example: "active"
|
|
rsync:
|
|
type: string
|
|
example: "active"
|
|
processes:
|
|
type: object
|
|
properties:
|
|
udp-sender:
|
|
type: string
|
|
example: "stopped"
|
|
uftp:
|
|
type: string
|
|
example: "stopped"
|
|
bttrack:
|
|
type: string
|
|
example: "stopped"
|
|
btlaunchmany.bittornado:
|
|
type: string
|
|
example: "stopped"
|
|
"500 (Error)":
|
|
description: "Error al consultar y/o devolver la información de estado."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al consultar y/o devolver la información de estado."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# Apartado "Información de Imágenes"
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/images:
|
|
put:
|
|
summary: "Actualizar Información del Repositorio"
|
|
description: |
|
|
Este endpoint actualiza la información de las imágenes almacenadas en el repositorio, reflejándola en los archivos "**repoinfo.json**" y "**trashinfo.json**".
|
|
Utiliza el script "**updateRepoInfo.py**", que a su vez llama al script "**updateTrashInfo.py**", para actualizar también la información de la papelera.
|
|
|
|
No hace falta que se le llame al crear o exportar una imagen, ya que lo llama el endpoint "**Crear archivos auxiliares**" (que sí debe ser llamado en esos casos).
|
|
tags:
|
|
- "Información de Imágenes"
|
|
responses:
|
|
"200":
|
|
description: "La actualización de la información de las imágenes se realizó exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Repository info updated successfully"
|
|
"500 (Error)":
|
|
description: "Error al actualizar la información de las imágenes."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al actualizar la información de las imágenes."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
#/ogrepository/v1/images:
|
|
get:
|
|
summary: "Obtener Información de todas las Imágenes"
|
|
description: |
|
|
Este endpoint ejecuta el script "**getRepoInfo.py**" con el parámetro "**all**", para devolver información de todas las imágenes almacenadas en el repositorio y en la papelera, que a su vez llama al script "**updateRepoInfo.py**", para actualizar previamente la información del repositorio.
|
|
Devuelve detalles como el nombre de la imagen, tipo, nombre del cliente, clonador, compresor, sistema de archivos, tamaño de los datos, tamaño de la imagen, y hashes MD5.
|
|
tags:
|
|
- "Información de Imágenes"
|
|
responses:
|
|
"200":
|
|
description: "La información de las imágenes se obtuvo exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: object
|
|
properties:
|
|
REPOSITORY:
|
|
type: object
|
|
properties:
|
|
directory:
|
|
type: string
|
|
example: "/opt/opengnsys/ogrepository/images"
|
|
images:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: "Ubuntu24"
|
|
type:
|
|
type: string
|
|
example: "img"
|
|
clientname:
|
|
type: string
|
|
example: "Ubuntu24_clientname"
|
|
clonator:
|
|
type: string
|
|
example: "partclone"
|
|
compressor:
|
|
type: string
|
|
example: "lzop"
|
|
filesystem:
|
|
type: string
|
|
example: "EXTFS"
|
|
datasize:
|
|
type: integer
|
|
example: 9859634200000
|
|
size:
|
|
type: integer
|
|
example: 4505673214
|
|
sum:
|
|
type: string
|
|
example: "065a933c780ab1aaa044435ad5d4bf87"
|
|
fullsum:
|
|
type: string
|
|
example: "33575b9070e4a8043371b8c6ae52b80e"
|
|
TRASH:
|
|
type: object
|
|
properties:
|
|
directory:
|
|
type: string
|
|
example: "/opt/opengnsys/ogrepository/images_trash"
|
|
images:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: "Windows10"
|
|
type:
|
|
type: string
|
|
example: "img"
|
|
clientname:
|
|
type: string
|
|
example: "Windows10_clientname"
|
|
clonator:
|
|
type: string
|
|
example: "partclone"
|
|
compressor:
|
|
type: string
|
|
example: "lzop"
|
|
filesystem:
|
|
type: string
|
|
example: "NTFS"
|
|
datasize:
|
|
type: integer
|
|
example: 8912896000000
|
|
size:
|
|
type: integer
|
|
example: 3803794535
|
|
sum:
|
|
type: string
|
|
example: "081a933c780ab1aaa044435ad5d4bf56"
|
|
fullsum:
|
|
type: string
|
|
example: "22735b9070e4a8043371b8c6ae52b90d"
|
|
"500 (Error)":
|
|
description: "Error al consultar y/o devolver la información de las imágenes."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al consultar y/o devolver la información de las imágenes."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/images/{imageId}:
|
|
get:
|
|
summary: "Obtener Información de una Imagen concreta"
|
|
description: |
|
|
Este endpoint devuelve información de la imagen especificada mediante su ID, en formato JSON.
|
|
Utiliza el script "**getRepoInfo.py**" que recibe como parámetro el nombre de la imagen (con extensión), que a su vez llama al script "**updateRepoInfo.py**", para actualizar previamente la información del repositorio.
|
|
La imagen puede estar en el archivo "**repoinfo.json**" (si está almacenada en el repositorio) o en "**trashinfo.json**" (si está en la papelera).
|
|
tags:
|
|
- "Información de Imágenes"
|
|
parameters:
|
|
- name: imageId
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum')"
|
|
responses:
|
|
"200":
|
|
description: "La información de la imagen se obtuvo exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: object
|
|
properties:
|
|
directory:
|
|
type: string
|
|
example: "/opt/opengnsys/ogrepository/images"
|
|
images:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: "Ubuntu24"
|
|
type:
|
|
type: string
|
|
example: "img"
|
|
clientname:
|
|
type: string
|
|
example: "Ubuntu24_clientname"
|
|
clonator:
|
|
type: string
|
|
example: "partclone"
|
|
compressor:
|
|
type: string
|
|
example: "lzop"
|
|
filesystem:
|
|
type: string
|
|
example: "EXTFS"
|
|
datasize:
|
|
type: integer
|
|
example: 9859634200000
|
|
size:
|
|
type: integer
|
|
example: 4505673214
|
|
sum:
|
|
type: string
|
|
example: "065a933c780ab1aaa044435ad5d4bf87"
|
|
fullsum:
|
|
type: string
|
|
example: "33575b9070e4a8043371b8c6ae52b80e"
|
|
"400":
|
|
description: "No se ha encontrado la imagen especificada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Image not found"
|
|
"500 (Error)":
|
|
description: "Error al consultar y/o devolver la información de la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al consultar y/o devolver la información de la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/status/images/{imageId}:
|
|
get:
|
|
summary: "Chequear Integridad de Imagen"
|
|
description: |
|
|
Este endpoint comprueba la integridad de la imagen especificada como parámetro, comparando el tamaño y el hash MD5 del último MB con los valores almacenados en los archivos ".size" y ".sum".
|
|
Utiliza el script "**checkImage.py**", que recibe el nombre de la imagen (con extensión) como parámetro.
|
|
tags:
|
|
- "Información de Imágenes"
|
|
parameters:
|
|
- name: imageId
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum')"
|
|
responses:
|
|
"200 (Check OK)":
|
|
description: "La imagen se ha chequeado exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Image file passed the Integrity Check correctly"
|
|
"200 (Check KO)":
|
|
description: "La imagen se ha chequeado exitosamente, pero no ha pasado el test de integridad."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Image file didn't pass the Integrity Check"
|
|
"400":
|
|
description: "No se ha encontrado la imagen especificada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Image not found (inexistent or deleted)"
|
|
"500 (Error)":
|
|
description: "Error al chequear la integridad de la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al chequear la integridad de la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# Apartado "Eliminar y Recuperar Imágenes"
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/images/{imageId}?method={method}:
|
|
delete:
|
|
summary: "Eliminar una Imagen"
|
|
description: |
|
|
Este endpoint elimina la imagen especificada como parámetro (y todos sus archivos asociados), moviéndolos a la papelera o eliminándolos permanentemente (dependiendo del parámetro "method").
|
|
Utiliza el script "**deleteImage.py**" que recibe el nombre de la imagen (con extensión) como primer parámetro, y opcionalmente el parámetro "-p" (para eliminación permanente), que a su vez llama al script "**updateRepoInfo.py**", para actualizar la información del repositorio.
|
|
tags:
|
|
- "Eliminar y Recuperar Imágenes"
|
|
parameters:
|
|
- name: imageId
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum')"
|
|
- name: method
|
|
in: query
|
|
required: true
|
|
type: string
|
|
description: "Método de eliminación (puede ser 'trash', para enviar la imagen a la papelera, o 'permanent', para eliminarla definitivamente)"
|
|
responses:
|
|
"200":
|
|
description: "La imagen se eliminó exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Image deleted successfully"
|
|
"400":
|
|
description: "No se ha encontrado la imagen especificada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Image not found (inexistent or deleted)"
|
|
"500 (Error)":
|
|
description: "Error al eliminar la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al eliminar la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/trash/images:
|
|
post:
|
|
summary: "Recuperar una Imagen"
|
|
description: |
|
|
Este endpoint recupera la imagen especificada, moviéndola desde la papelera al repositorio de imágenes.
|
|
Utiliza el script "**recoverImage.py**", que recibe el nombre de la imagen (con extensión), que a su vez llama al script "**updateRepoInfo.py**", para actualizar la información del repositorio.
|
|
tags:
|
|
- "Eliminar y Recuperar Imágenes"
|
|
parameters:
|
|
- name: JSON
|
|
in: body
|
|
required: true
|
|
description: |
|
|
* **ID_img** - Identificador de la imagen, correspondiente al contenido del archivo 'full.sum'
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ID_img:
|
|
type: string
|
|
example: "22735b9070e4a8043371b8c6ae52b90d"
|
|
responses:
|
|
"200":
|
|
description: "La imagen se recuperó exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Image recovered successfully"
|
|
"400":
|
|
description: "No se ha encontrado la imagen especificada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Image not found (inexistent or recovered previously)"
|
|
"500 (Error)":
|
|
description: "Error al recuperar la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al recuperar la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/trash/images/{imageId}:
|
|
delete:
|
|
summary: "Eliminar una Imagen de la Papelera"
|
|
description: |
|
|
Este endpoint elimina permanentemente la imagen especificada, desde la papelera.
|
|
Utiliza el script "**deleteTrashImage.py**", que recibe el nombre de la imagen (con extensión), que a su vez llama al script "**updateTrashInfo.py**", para actualizar la información de la papelera.
|
|
tags:
|
|
- "Eliminar y Recuperar Imágenes"
|
|
parameters:
|
|
- name: imageId
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum')"
|
|
responses:
|
|
"200":
|
|
description: "La imagen se eliminó exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Image deleted successfully"
|
|
"400":
|
|
description: "No se ha encontrado la imagen especificada en la papelera."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Image not found at trash"
|
|
"500 (Error)":
|
|
description: "Error al eliminar la imagen de la papelera."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al eliminar la imagen de la papelera."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# Apartado "Transferencia de Imágenes (UDPcast)"
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/udpcast:
|
|
post:
|
|
summary: "Enviar una Imagen mediante UDPcast"
|
|
description: |
|
|
Este endpoint envía la imagen especificada a través de UDPcast, utilizando el script "**sendFileMcast.py**".
|
|
Recibe la imagen y los parámetros de configuración de transferencia, que son usados para construir la cadena de parámetros que se envía al script.
|
|
|
|
**NOTA**: Este endpoint es asíncrono, ya que puede tardar mucho tiempo, por lo que solo informa de que la imagen se está enviando, y abre un proceso paralelo (pero no avisa a ogCore de su finalización, porque no puede comprobar cuando acaba la tarea de restauración de la imagen).
|
|
tags:
|
|
- "Transferencia de Imágenes (UDPcast)"
|
|
parameters:
|
|
- name: JSON
|
|
in: body
|
|
required: true
|
|
description: |
|
|
* **ID_img** - Identificador de la imagen, correspondiente al contenido del archivo 'full.sum'
|
|
* **port** - Puerto Multicast
|
|
* **method** - Modalidad half-duplex o full-duplex ("half" o "full")
|
|
* **ip** - IP Multicast
|
|
* **bitrate** - Velocidad de transmisión, en Mbps
|
|
* **nclients** - Número minimo de clientes
|
|
* **maxtime** - Tiempo máximo de espera
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ID_img:
|
|
type: string
|
|
example: "22735b9070e4a8043371b8c6ae52b90d"
|
|
port:
|
|
type: string
|
|
description: "Puerto Multicast a utilizar para la transmisión"
|
|
example: "9000"
|
|
method:
|
|
type: string
|
|
description: "Modalidad de transmisión (puede ser 'half' o 'full' para half-duplex o full-duplex)"
|
|
example: "full"
|
|
ip:
|
|
type: string
|
|
description: "IP Multicast a la que se enviará la imagen"
|
|
example: "239.194.17.2"
|
|
bitrate:
|
|
type: string
|
|
description: "Velocidad de transmisión en Mbps"
|
|
example: "70M"
|
|
nclients:
|
|
type: integer
|
|
description: "Número mínimo de clientes"
|
|
example: 20
|
|
maxtime:
|
|
type: integer
|
|
description: "Tiempo máximo de espera en segundos"
|
|
example: 120
|
|
responses:
|
|
"200":
|
|
description: "La imagen se está enviando mediante UDPcast."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Sending image.."
|
|
"400":
|
|
description: "No se ha encontrado la imagen especificada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Image not found"
|
|
"500 (Error)":
|
|
description: "Error al enviar la imagen mediante UDPcast."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Image send failed"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al enviar la imagen mediante UDPcast."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
#/ogrepository/v1/udpcast:
|
|
get:
|
|
summary: "Ver Estado de Transmisiones UDPcast"
|
|
description: |
|
|
Este endpoint devuelve información sobre los procesos activos de "**udp-sender**" en formato JSON, permitiendo comprobar las transferencias UDPcast activas.
|
|
Utiliza el script "**getUDPcastInfo.py**" para obtener esta información.
|
|
tags:
|
|
- "Transferencia de Imágenes (UDPcast)"
|
|
responses:
|
|
"200":
|
|
description: "La información de las transmisiones UDPcast activas se obtuvo exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
image_id:
|
|
type: string
|
|
example: "22735b9070e4a8043371b8c6ae52b90d"
|
|
image_name:
|
|
type: string
|
|
example: "Ubuntu20.img"
|
|
"400":
|
|
description: "No se han encontrado transmisiones UDPcast activas."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "No UDPCast active transmissions"
|
|
"500 (Error)":
|
|
description: "Error al comprobar las transmisiones UDPcast activas."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al comprobar las transmisiones UDPcast activas."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/udpcast/images/{imageId}:
|
|
delete:
|
|
summary: "Cancelar Transmisión UDPcast"
|
|
description: |
|
|
Este endpoint cancela la transmisión UDPcast activa de la imagen especificada, deteniendo el proceso "**udp-sender**" asociado.
|
|
Utiliza el script "**stopUDPcast.py**" para finalizar la transmisión.
|
|
tags:
|
|
- "Transferencia de Imágenes (UDPcast)"
|
|
parameters:
|
|
- name: imageId
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum')"
|
|
responses:
|
|
"200":
|
|
description: "La transmisión UDPcast se ha cancelado exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Image transmission canceled successfully"
|
|
"400 (Image not found)":
|
|
description: "No se ha encontrado la imagen especificada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Image not found"
|
|
"400 (No transmissions for image)":
|
|
description: "No hay transmisiones UDPcast activas para la imagen especificada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "No UDPCast active transmissions for specified image"
|
|
"500 (Error)":
|
|
description: "Error al cancelar la transmisión UDPcast."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Check Exception)":
|
|
description: "Error al verificar las transmisiones UDPcast activas."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Unexpected error checking UDPcast transmissions"
|
|
"500 (Finalize Exception)":
|
|
description: "Error inesperado al finalizar la transmisión UDPcast."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Unexpected error finalizing UDPcast transmission"
|
|
"500 (General Exception)":
|
|
description: "Excepción inesperada al cancelar la transmisión UDPcast."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# Apartado "Transferencia de Imágenes (UFTP)"
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/uftp:
|
|
post:
|
|
summary: "Enviar una Imagen mediante UFTP"
|
|
description: |
|
|
Este endpoint envía una imagen especificada a través de UFTP, utilizando el script "**sendFileUFTP.py**".
|
|
Requiere que los clientes ogLive estén previamente en escucha con un daemon "UFTPD", ejecutando el script "**listenUFTPD.py**".
|
|
Recibe la imagen y los parámetros de configuración de transferencia, que son usados para construir la cadena de parámetros que se envía al script.
|
|
|
|
**NOTA**: Este endpoint es asíncrono, ya que puede tardar mucho tiempo, por lo que solo informa de que la imagen se está enviando, y abre un proceso paralelo (pero no avisa a ogCore de su finalización, porque no puede comprobar cuando acaba la tarea de restauración de la imagen).
|
|
tags:
|
|
- "Transferencia de Imágenes (UFTP)"
|
|
parameters:
|
|
- name: JSON
|
|
in: body
|
|
required: true
|
|
description: |
|
|
* **ID_img** - Identificador de la imagen, correspondiente al contenido del archivo 'full.sum'
|
|
* **port** - Puerto Multicast
|
|
* **ip** - IP Unicast/Multicast),
|
|
* **bitrate** - Velocidad de transmisión, con 'K' para Kbps, 'M' para Mbps o 'G' para Gbps
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ID_img:
|
|
type: string
|
|
example: "22735b9070e4a8043371b8c6ae52b90d"
|
|
port:
|
|
type: string
|
|
description: "Puerto para la transmisión UFTP"
|
|
example: "9000"
|
|
ip:
|
|
type: string
|
|
description: "IP Unicast o Multicast para la transmisión"
|
|
example: "239.194.17.2"
|
|
bitrate:
|
|
type: string
|
|
description: "Velocidad de transmisión (con 'K' para Kbps, 'M' para Mbps, o 'G' para Gbps)"
|
|
example: "1G"
|
|
responses:
|
|
"200":
|
|
description: "La imagen se está enviando mediante UFTP."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Sending image..."
|
|
"400":
|
|
description: "No se ha encontrado la imagen especificada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Image not found"
|
|
"500 (Error)":
|
|
description: "Error al enviar la imagen mediante UFTP."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Image send failed"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al enviar la imagen mediante UFTP."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
#/ogrepository/v1/uftp:
|
|
get:
|
|
summary: "Ver Estado de Transmisiones UFTP"
|
|
description: |
|
|
Este endpoint devuelve información sobre los procesos activos de "**uftp**" en formato JSON, permitiendo comprobar las transferencias UFTP activas.
|
|
Utiliza el script "**getUFTPInfo.py**" para obtener esta información.
|
|
tags:
|
|
- "Transferencia de Imágenes (UFTP)"
|
|
responses:
|
|
"200":
|
|
description: "La información de las transmisiones UFTP activas se obtuvo exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
image_id:
|
|
type: string
|
|
example: "22735b9070e4a8043371b8c6ae52b90d"
|
|
image_name:
|
|
type: string
|
|
example: "Ubuntu20.img"
|
|
"400":
|
|
description: "No se han encontrado transmisiones UFTP activas."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "No UFTP active transmissions"
|
|
"500 (Error)":
|
|
description: "Error al comprobar las transmisiones UFTP activas."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al comprobar las transmisiones UFTP activas."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/uftp/images/{imageId}:
|
|
delete:
|
|
summary: "Cancelar Transmisión UFTP"
|
|
description: |
|
|
Este endpoint cancela la transmisión UFTP activa de una imagen especificada, deteniendo el proceso "**uftp**" asociado.
|
|
Utiliza el script "**stopUFTP.py**" para finalizar la transmisión.
|
|
tags:
|
|
- "Transferencia de Imágenes (UFTP)"
|
|
parameters:
|
|
- name: imageId
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum')"
|
|
responses:
|
|
"200":
|
|
description: "La transmisión UFTP se ha cancelado exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Image transmission canceled successfully"
|
|
"400 (Image not found)":
|
|
description: "No se ha encontrado la imagen especificada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Image not found"
|
|
"400 (No transmissions for image)":
|
|
description: "No hay transmisiones UFTP activas para la imagen especificada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "No UFTP active transmissions for specified image"
|
|
"500 (Error)":
|
|
description: "Error al cancelar la transmisión UFTP."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Check Exception)":
|
|
description: "Error al verificar las transmisiones UFTP activas."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Unexpected error checking UFTP transmissions"
|
|
"500 (Finalize Exception)":
|
|
description: "Error inesperado al finalizar la transmisión UFTP."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Unexpected error finalizing UFTP transmission"
|
|
"500 (General Exception)":
|
|
description: "Excepción inesperada al cancelar la transmisión UFTP."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# Apartado "Transferencia de Imágenes (P2P)"
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/p2p:
|
|
post:
|
|
summary: "Enviar una Imagen mediante P2P"
|
|
description: |
|
|
Este endpoint inicia el tracker y el seeder de torrents para enviar una imagen especificada mediante P2P.
|
|
Utiliza los scripts "**runTorrentTracker.py**" y "**runTorrentSeeder.py**" para iniciar el tracker y el seeder en el directorio de imágenes.
|
|
|
|
**NOTA**: Este endpoint es asíncrono, ya que puede tardar mucho tiempo, por lo que solo informa de que la imagen se está enviando, y abre un proceso paralelo (pero no avisa a ogCore de su finalización, porque no puede comprobar cuando acaba la tarea de restauración de la imagen).
|
|
tags:
|
|
- "Transferencia de Imágenes (P2P)"
|
|
parameters:
|
|
- name: JSON
|
|
in: body
|
|
required: true
|
|
description: |
|
|
* **ID_img** - Identificador de la imagen, correspondiente al contenido del archivo 'full.sum'
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ID_img:
|
|
type: string
|
|
example: "22735b9070e4a8043371b8c6ae52b90d"
|
|
responses:
|
|
"200":
|
|
description: "La imagen se está enviando mediante P2P."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Tracker and Seeder serving image correctly"
|
|
"400":
|
|
description: "No se ha encontrado la imagen especificada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Image not found"
|
|
"500":
|
|
description: "Error al enviar la imagen mediante P2P."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Tracker or Seeder (or both) not running"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
#/ogrepository/v1/p2p:
|
|
delete:
|
|
summary: "Cancelar Transmisiones P2P"
|
|
description: |
|
|
Este endpoint cancela todas las transmisiones P2P activas, finalizando los procesos "**bttrack**" (tracker) y "**btlaunchmany.bittornado**" (seeder).
|
|
Utiliza el script "**stopP2P.py**" para detener las transmisiones P2P activas en el servidor.
|
|
tags:
|
|
- "Transferencia de Imágenes (P2P)"
|
|
responses:
|
|
"200":
|
|
description: "Las transmisiones P2P se han cancelado exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "P2P transmissions canceled successfully"
|
|
"500 (Error)":
|
|
description: "Error al cancelar las transmisiones P2P."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al cancelar las transmisiones P2P."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# Apartado "Importar y Exportar Imágenes"
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/repo/images:
|
|
post:
|
|
summary: "Importar una Imagen"
|
|
description: |
|
|
Este endpoint importa la imagen especificada desde un servidor remoto al servidor local.
|
|
Utiliza el script "**importImage.py**", que recibe como parámetros el nombre de la imagen, la IP o hostname del servidor remoto, y el usuario con el que conectar al servidor remoto.
|
|
que a su vez llama al script "**updateRepoInfo.py**", para actualizar la información del repositorio.
|
|
|
|
**NOTA**: Este endpoint es asíncrono, ya que puede tardar mucho tiempo, por lo que solo informa de que la imagen se está importando, y abre un proceso paralelo, que avisará a ogCore cuando finalice la tarea (llamando a un endpoint de ogCore).
|
|
tags:
|
|
- "Importar y Exportar Imágenes"
|
|
parameters:
|
|
- name: JSON
|
|
in: body
|
|
required: true
|
|
description: |
|
|
* **image** - Nombre de la imagen, con extensión
|
|
* **repo_ip** - Dirección IP del servidor remoto
|
|
* **user** - Usuario con el que conectar al servidor remoto
|
|
schema:
|
|
type: object
|
|
properties:
|
|
image:
|
|
type: string
|
|
example: "Windows10.img"
|
|
repo_ip:
|
|
type: string
|
|
description: "Dirección IP del repositorio remoto"
|
|
example: "192.168.56.100"
|
|
user:
|
|
type: string
|
|
description: "Usuario para acceder al repositorio remoto"
|
|
example: "user_name"
|
|
responses:
|
|
"200":
|
|
description: "La imagen se está importando."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Importing image..."
|
|
"400 (Connection fail)":
|
|
description: "Error de conexión con el servidor remoto."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Can't connect to remote server"
|
|
"400 (Image not found)":
|
|
description: "No se ha encontrado la imagen remota."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Remote image not found"
|
|
"400 (Image locked)":
|
|
description: "La imagen remota está bloqueada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Remote image is locked"
|
|
"500":
|
|
description: "Error al importar la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Image import failed"
|
|
"500 (Error)":
|
|
description: "Error al importar la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al importar la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
#/ogrepository/v1/repo/images:
|
|
put:
|
|
summary: "Exportar una Imagen"
|
|
description: |
|
|
Este endpoint exporta la imagen especificada desde el servidor local a un servidor remoto.
|
|
Utiliza el script "**exportImage.py**", que recibe como parámetros el nombre de la imagen, la IP o hostname del servidor remoto, y el usuario con el que conectar al servidor remoto.
|
|
|
|
Una vez que acabe, debe llamarse al endpoint "**Actualizar Información del Repositorio**" en el ogRepository destino de la exportación, para actualizar la información del repositorio.
|
|
|
|
**NOTA**: Este endpoint es asíncrono, ya que puede tardar mucho tiempo, por lo que solo informa de que la imagen se está exportando, y abre un proceso paralelo, que avisará a ogCore cuando finalice la tarea (llamando a un endpoint de ogCore).
|
|
tags:
|
|
- "Importar y Exportar Imágenes"
|
|
parameters:
|
|
- name: JSON
|
|
in: body
|
|
required: true
|
|
description: |
|
|
* **ID_img** - Identificador de la imagen, correspondiente al contenido del archivo 'full.sum'
|
|
* **repo_ip** - Dirección IP del servidor remoto
|
|
* **user** - Usuario con el que conectar al servidor remoto
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ID_img:
|
|
type: string
|
|
example: "22735b9070e4a8043371b8c6ae52b90d"
|
|
repo_ip:
|
|
type: string
|
|
description: "Dirección IP del repositorio remoto"
|
|
example: "192.168.56.100"
|
|
user:
|
|
type: string
|
|
description: "Usuario para acceder al repositorio remoto"
|
|
example: "user_name"
|
|
responses:
|
|
"200":
|
|
description: "La imagen se está exportando."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Exporting image..."
|
|
"400 (Image not found)":
|
|
description: "No se ha encontrado la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Image not found"
|
|
"400 (Image locked)":
|
|
description: "La imagen está bloqueada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Image is locked"
|
|
"400 (Connection fail)":
|
|
description: "Error de conexión con el servidor remoto."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Can't connect to remote server"
|
|
"400 (Image present)":
|
|
description: "La imagen ya existe en el servidor remoto."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Image already exists on remote server"
|
|
"500":
|
|
description: "Error al exportar la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "Export image failed"
|
|
"500 (Error)":
|
|
description: "Error al exportar la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al exportar la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# Apartado "Varios"
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/images/torrentsum:
|
|
post:
|
|
summary: "Crear archivos auxiliares"
|
|
description: |
|
|
Este endpoint crea los archivos "**size**", "**sum**", "**full.sum**" y "**torrent**" para la imagen especificada.
|
|
Utiliza el script "**createTorrentSum.py**", que recibe como parámetro el nombre de la imagen (con extensión), que a su vez llama al script "**updateRepoInfo.py**, para actualizar la información del repositorio".
|
|
|
|
Debe ser llamado cada vez que se cree una imagen desde un ogLive, y cada vez que se llame al endpoint "**Exportar una Imagen**" (en este último caso, debe ejecutarse en el ogRepository destino de la exportación).
|
|
|
|
**NOTA**: Este endpoint es asíncrono, ya que puede tardar cierto tiempo, por lo que solo informa de que se están creando los archivos auxiliares, y abre un proceso paralelo, que avisará a ogCore cuando finalice la tarea (llamando a un endpoint de ogCore).
|
|
tags:
|
|
- "Varios"
|
|
parameters:
|
|
- name: JSON
|
|
in: body
|
|
required: true
|
|
description: |
|
|
* **image** - Nombre de la imagen, con extensión
|
|
schema:
|
|
type: object
|
|
properties:
|
|
image:
|
|
type: string
|
|
example: "Windows10.img"
|
|
responses:
|
|
"200":
|
|
description: "Los archivos auxiliares se están creando."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Creating auxiliar files..."
|
|
"400 (Image not found)":
|
|
description: "No se ha encontrado la imagen."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Image not found"
|
|
"400 (Image locked)":
|
|
description: "La imagen está bloqueada."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "Image is locked"
|
|
"500 (Error)":
|
|
description: "Error al crear los archivos auxiliares."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al crear los archivos auxiliares."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/wol:
|
|
post:
|
|
summary: "Enviar paquete Wake On Lan"
|
|
description: |
|
|
Este endpoint envía un paquete mágico Wake On Lan (**WOL**) a la dirección MAC especificada, a través de la IP de broadcast especificada.
|
|
Utiliza el script "**sendWakeOnLan.py**", que recibe como parámetros la IP de broadcast y la dirección MAC del equipo a encender.
|
|
tags:
|
|
- "Varios"
|
|
parameters:
|
|
- name: JSON
|
|
in: body
|
|
required: true
|
|
description: |
|
|
* **broadcast_ip** - IP de broadcast a la que se enviará el paquete WOL, que puede ser '255.255.255.255' o la IP de broadcast de una subred
|
|
* **mac** - Dirección MAC del equipo que se desea encender via Wake On Lan
|
|
schema:
|
|
type: object
|
|
properties:
|
|
broadcast_ip:
|
|
type: string
|
|
example: "255.255.255.255"
|
|
mac:
|
|
type: string
|
|
example: "00:19:99:5c:bb:bb"
|
|
responses:
|
|
"200":
|
|
description: "El paquete Wake On Lan se ha enviado exitosamente."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
output:
|
|
type: string
|
|
example: "Wake On Lan packet sent successfully"
|
|
"500 (Error)":
|
|
description: "Error al enviar el paquete Wake On Lan."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
error:
|
|
type: string
|
|
example: "(Error description)"
|
|
"500 (Exception)":
|
|
description: "Excepción inesperada al enviar el paquete Wake On Lan."
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: false
|
|
exception:
|
|
type: string
|
|
example: "(Exception description)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|