1721 lines
63 KiB
YAML
1721 lines
63 KiB
YAML
swagger: "2.0"
|
|
info:
|
|
title: "OgRepository API"
|
|
version: "1.0"
|
|
description: |
|
|
API de ogRepository, programada en Flask.
|
|
|
|
Responde a peticiones HTTP (enviadas desde ogCore) mediante endpoints, que a su vez ejecutan los scripts Python almacenados en ogRepo.
|
|
En ciertos casos, transforma los parámetros recibidos desde el portal, para adaptarlos a los que es necesario enviar a los scripts
|
|
(por ejemplo, a partir del ID de una imagen obtiene su nombre, su extensión y el subdirectorio de OU).
|
|
|
|
Librerías Python requeridas:
|
|
- flask (se puede instalar con "sudo apt install python3-flask")
|
|
- paramiko (se puede instalar con "sudo apt install python3-paramiko")
|
|
- requests (se puede instalar con "sudo apt install python3-requests") - No tengo claro que para este paquete sea necesario
|
|
- flasgger (se puede instalar con "sudo apt install python3-flasgger")
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# 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:
|
|
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 también ejecuta "updateTrashInfo.py".
|
|
Este proceso se realiza para mantener actualizados los datos del repositorio y la papelera, y debería ser invocado cada vez que se elimine o cree una imagen.
|
|
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 los parámetros "all" y "none" para devolver información
|
|
de todas las imágenes almacenadas en el repositorio y en la papelera.
|
|
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/images"
|
|
images:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: "Ubuntu24"
|
|
type:
|
|
type: string
|
|
example: "img"
|
|
clientname:
|
|
type: string
|
|
example: "Ubuntu_24"
|
|
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"
|
|
ous:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
subdir:
|
|
type: string
|
|
example: "OU_subdir"
|
|
images:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: "Ubuntu20"
|
|
type:
|
|
type: string
|
|
example: "img"
|
|
clientname:
|
|
type: string
|
|
example: "Ubuntu_20"
|
|
clonator:
|
|
type: string
|
|
example: "partclone"
|
|
compressor:
|
|
type: string
|
|
example: "lzop"
|
|
filesystem:
|
|
type: string
|
|
example: "EXTFS"
|
|
datasize:
|
|
type: integer
|
|
example: 8912896000000
|
|
size:
|
|
type: integer
|
|
example: 3803794535
|
|
sum:
|
|
type: string
|
|
example: "081a933c780ab1aaa044435ad5d4bf56"
|
|
fullsum:
|
|
type: string
|
|
example: "22735b9070e4a8043371b8c6ae52b90d"
|
|
TRASH:
|
|
type: object
|
|
properties:
|
|
directory:
|
|
type: string
|
|
example: "/opt/opengnsys/images_trash"
|
|
images:
|
|
type: array
|
|
items:
|
|
type: object
|
|
ous:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
subdir:
|
|
type: string
|
|
example: "CentroVirtual"
|
|
images:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: "Ubuntu20OLD"
|
|
type:
|
|
type: string
|
|
example: "img"
|
|
clientname:
|
|
type: string
|
|
example: "Ubuntu_20"
|
|
clonator:
|
|
type: string
|
|
example: "partclone"
|
|
compressor:
|
|
type: string
|
|
example: "lzop"
|
|
filesystem:
|
|
type: string
|
|
example: "EXTFS"
|
|
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.
|
|
Puede utilizar el script "getRepoInfo.py" que recibe como parámetros el nombre de la imagen con extensión y el subdirectorio correspondiente a la OU (o "none" si no es el caso).
|
|
La imagen puede estar en el archivo "/opt/opengnsys/etc/repoinfo.json" (si está almacenada) o en "/opt/opengnsys/etc/trashinfo.json" (si está en la papelera).
|
|
tags:
|
|
- "Información de Imágenes"
|
|
parameters:
|
|
- name: imageId
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "El ID de la imagen (corresponde al hash MD5 'fullsum' de la imagen)"
|
|
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/images"
|
|
images:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: "Windows10"
|
|
type:
|
|
type: string
|
|
example: "img"
|
|
clientname:
|
|
type: string
|
|
example: "Windows_10"
|
|
clonator:
|
|
type: string
|
|
example: "partclone"
|
|
compressor:
|
|
type: string
|
|
example: "lzop"
|
|
filesystem:
|
|
type: string
|
|
example: "NTFS"
|
|
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) y el subdirectorio correspondiente a la OU, si aplica.
|
|
tags:
|
|
- "Información de Imágenes"
|
|
parameters:
|
|
- name: imageId
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "El ID de la imagen (corresponde al hash MD5 'fullsum' de la imagen)"
|
|
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 y subdirectorio correspondiente a la OU, si aplica)
|
|
como primer parámetro, y opcionalmente el parámetro "-p" para eliminación permanente.
|
|
tags:
|
|
- "Eliminar y Recuperar Imágenes"
|
|
parameters:
|
|
- name: imageId
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "El ID de la imagen (corresponde al hash MD5 'fullsum' de la imagen)"
|
|
- name: method
|
|
in: query
|
|
required: false
|
|
type: string
|
|
description: "Método de eliminación (puede ser 'trash' para enviar a la papelera o 'permanent' para eliminar 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 y subdirectorio correspondiente a la OU, si aplica).
|
|
tags:
|
|
- "Eliminar y Recuperar Imágenes"
|
|
parameters:
|
|
- name: ID_img
|
|
in: body
|
|
required: true
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum' asociado)"
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ID_img:
|
|
type: string
|
|
example: "image_id"
|
|
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 y subdirectorio correspondiente a la OU, si aplica).
|
|
tags:
|
|
- "Eliminar y Recuperar Imágenes"
|
|
parameters:
|
|
- name: imageId
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "El ID de la imagen (corresponde al hash MD5 'fullsum' de la imagen en la papelera)"
|
|
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 "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,
|
|
el usuario para la conexión, y el subdirectorio correspondiente a la OU (si aplica).
|
|
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: image
|
|
in: body
|
|
required: true
|
|
description: "Nombre de la imagen (con extensión)"
|
|
schema:
|
|
type: object
|
|
properties:
|
|
image:
|
|
type: string
|
|
example: "Windows10.img"
|
|
ou_subdir:
|
|
type: string
|
|
description: "Subdirectorio correspondiente a la OU (o 'none' si no es el caso)"
|
|
example: "none"
|
|
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,
|
|
el usuario para la conexión, y el subdirectorio correspondiente a la OU (si aplica).
|
|
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: ID_img
|
|
in: body
|
|
required: true
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum' asociado)"
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ID_img:
|
|
type: string
|
|
example: "image_id"
|
|
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 subdirectorio de OU, si aplica).
|
|
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: image
|
|
in: body
|
|
required: true
|
|
description: "Nombre de la imagen (con extensión)"
|
|
schema:
|
|
type: object
|
|
properties:
|
|
image:
|
|
type: string
|
|
example: "Windows10.img"
|
|
ou_subdir:
|
|
type: string
|
|
description: "Subdirectorio correspondiente a la OU (o 'none' si no es el caso)"
|
|
example: "none"
|
|
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: broadcast_ip
|
|
in: body
|
|
required: true
|
|
description: "IP de broadcast a la que se enviará el paquete WOL"
|
|
schema:
|
|
type: object
|
|
properties:
|
|
broadcast_ip:
|
|
type: string
|
|
example: "255.255.255.255"
|
|
mac:
|
|
type: string
|
|
description: "Dirección MAC del equipo a encender"
|
|
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)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# Apartado "Transferencia de Imágenes"
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/udpcast:
|
|
post:
|
|
summary: "Enviar una Imagen mediante UDPcast"
|
|
description: >
|
|
Este endpoint envía una 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, que avisará a ogCore cuando finalice la tarea (llamando a un endpoint de ogCore).
|
|
tags:
|
|
- "Transferencia de Imágenes"
|
|
parameters:
|
|
- name: ID_img
|
|
in: body
|
|
required: true
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum' asociado)"
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ID_img:
|
|
type: string
|
|
example: "image_id"
|
|
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"
|
|
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/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, que avisará a ogCore cuando finalice la tarea (llamando a un endpoint de ogCore).
|
|
tags:
|
|
- "Transferencia de Imágenes"
|
|
parameters:
|
|
- name: ID_img
|
|
in: body
|
|
required: true
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum' asociado)"
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ID_img:
|
|
type: string
|
|
example: "image_id"
|
|
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"
|
|
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/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 la imagen.
|
|
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, que avisará a ogCore cuando finalice la tarea (llamando a un endpoint de ogCore).
|
|
tags:
|
|
- "Transferencia de Imágenes"
|
|
parameters:
|
|
- name: ID_img
|
|
in: body
|
|
required: true
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum' asociado)"
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ID_img:
|
|
type: string
|
|
example: "image_id"
|
|
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"
|
|
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)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/udpcast/images/{ID_img}:
|
|
delete:
|
|
summary: "Cancelar Transmisión UDPcast"
|
|
description: >
|
|
Este endpoint cancela la transmisión UDPcast activa de una imagen especificada, deteniendo el proceso "udp-sender" asociado.
|
|
Utiliza el script "stopUDPcast.py" para finalizar la transmisión.
|
|
tags:
|
|
- "Transferencia de Imágenes"
|
|
parameters:
|
|
- name: ID_img
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum' asociado)"
|
|
example: "image_id"
|
|
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)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
|
|
/ogrepository/v1/uftp/images/{ID_img}:
|
|
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"
|
|
parameters:
|
|
- name: ID_img
|
|
in: path
|
|
required: true
|
|
type: string
|
|
description: "Identificador de la imagen (correspondiente al contenido del archivo 'full.sum' asociado)"
|
|
example: "image_id"
|
|
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)"
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|