refs #794 - Modify API proposal and 'sendFileMcast.py'
parent
de649f84dc
commit
bc30ed1e45
45
README.md
45
README.md
|
@ -32,9 +32,9 @@ El presente documento detalla los endpoints de la API, con sus respectivos pará
|
||||||
10. [Exportar una Imagen](#exportar-una-imagen) - `PUT /ogrepository/v1/repo/images`
|
10. [Exportar una Imagen](#exportar-una-imagen) - `PUT /ogrepository/v1/repo/images`
|
||||||
11. [Crear archivos auxiliares](#crear-archivos-auxiliares) - `POST /ogrepository/v1/images/torrentsum`
|
11. [Crear archivos auxiliares](#crear-archivos-auxiliares) - `POST /ogrepository/v1/images/torrentsum`
|
||||||
12. [Enviar paquete Wake On Lan](#enviar-paquete-wake-on-lan) - `POST /ogrepository/v1/wol`
|
12. [Enviar paquete Wake On Lan](#enviar-paquete-wake-on-lan) - `POST /ogrepository/v1/wol`
|
||||||
13. [Enviar una Imagen mediante UDPcast](#enviar-una-imagen-mediante-udpcast) - `POST /ogrepository/v1/udpcast/images/{ID_img}`
|
13. [Enviar una Imagen mediante UDPcast](#enviar-una-imagen-mediante-udpcast) - `POST /ogrepository/v1/udpcast`
|
||||||
14. [Enviar una Imagen mediante UFTP](#enviar-una-imagen-mediante-uftp) - `POST /ogrepository/v1/uftp/images/{ID_img}`
|
14. [Enviar una Imagen mediante UFTP](#enviar-una-imagen-mediante-uftp) - `POST /ogrepository/v1/uftp`
|
||||||
15. [Enviar una Imagen mediante P2P](#enviar-una-imagen-mediante-p2p) - `POST /ogrepository/v1/p2p/images/{ID_img}`
|
15. [Enviar una Imagen mediante P2P](#enviar-una-imagen-mediante-p2p) - `POST /ogrepository/v1/p2p`
|
||||||
16. [Ver Estado de Transmisiones UDPcast](#ver-estado-de-transmisiones-udpcast) - `GET /ogrepository/v1/udpcast`
|
16. [Ver Estado de Transmisiones UDPcast](#ver-estado-de-transmisiones-udpcast) - `GET /ogrepository/v1/udpcast`
|
||||||
17. [Cancelar Transmisión UDPcast](#cancelar-transmisión-udpcast) - `DELETE /ogrepository/v1/udpcast/images/{ID_img}`
|
17. [Cancelar Transmisión UDPcast](#cancelar-transmisión-udpcast) - `DELETE /ogrepository/v1/udpcast/images/{ID_img}`
|
||||||
18. [Cancelar Transmisiones P2P](#cancelar-transmisiones-p2p) - `DELETE /ogrepository/v1/p2p`
|
18. [Cancelar Transmisiones P2P](#cancelar-transmisiones-p2p) - `DELETE /ogrepository/v1/p2p`
|
||||||
|
@ -408,6 +408,7 @@ curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d
|
||||||
|
|
||||||
Se crearán los archivos ".sum", ".full.sum", ".size" y ".torrent", para la imagen especificada como parámetro.
|
Se crearán los archivos ".sum", ".full.sum", ".size" y ".torrent", para la imagen especificada como parámetro.
|
||||||
Se puede hacer con el script "**createTorrentSum.py**", que debe ser llamado por el endpoint.
|
Se puede hacer con el script "**createTorrentSum.py**", que debe ser llamado por el endpoint.
|
||||||
|
**NOTA**: La versión actual de este script requiere que se le pase el nombre de la imagen (con extensión, e incluyendo el nombre del directorio correspondiente a la OU, si fuera el caso) como unico parámetro. Este parámetro no puede obtenerse en la API, a partir del ID de imagen (como en otros casos), porque el ID corresponde al contenido del archivo "full.sum" asociado (que no estará creado hasta que no se ejecute este script).
|
||||||
|
|
||||||
**URL:** `/ogrepository/v1/images/torrentsum`
|
**URL:** `/ogrepository/v1/images/torrentsum`
|
||||||
**Método HTTP:** POST
|
**Método HTTP:** POST
|
||||||
|
@ -431,6 +432,7 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d
|
||||||
|
|
||||||
Se enviará un paquete Wake On Lan a la dirección MAC especificada, a través de la IP de broadcast especificada.
|
Se enviará un paquete Wake On Lan a la dirección MAC especificada, a través de la IP de broadcast especificada.
|
||||||
Se puede hacer con el script "**sendWakeOnLan.py**", que debe ser llamado por el endpoint.
|
Se puede hacer con el script "**sendWakeOnLan.py**", que debe ser llamado por el endpoint.
|
||||||
|
**NOTA**: La versión actual de este script requiere que se le pase la dirección IP de broadcast como primer parámetro, y la dirección MAC destino como segundo parámetro. Estos datos deben enviarse desde ogCore (en el JSON).
|
||||||
|
|
||||||
**URL:** `/ogrepository/v1/wol`
|
**URL:** `/ogrepository/v1/wol`
|
||||||
**Método HTTP:** POST
|
**Método HTTP:** POST
|
||||||
|
@ -453,14 +455,13 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d
|
||||||
|
|
||||||
Se enviará la imagen especificada por Multicast, mediante la aplicación UDPcast.
|
Se enviará la imagen especificada por Multicast, mediante la aplicación UDPcast.
|
||||||
Se puede hacer con el script "**sendFileMcast.py**", que a su vez llama al binario "**udp-sender**", que es quien realmente realiza el envío.
|
Se puede hacer con el script "**sendFileMcast.py**", que a su vez llama al binario "**udp-sender**", que es quien realmente realiza el envío.
|
||||||
**NOTA**: Los datos multicast deben extraerse de la configuracién del Aula/OU (incluido el puerto).
|
**NOTA**: La versión actual de este script requiere que se le pase el nombre de la imagen (con extensión, e incluyendo el nombre del directorio correspondiente a la OU, si fuera el caso) como primer parámetro, y los datos de transferencia como segundo parámetro (en una cadena, con los datos separados por dos puntos). El primer parámetro se obtiene en la API, a partir del ID de la imagen (que corresponde al contenido del archivo "full.sum"), pero los datos de transferencia deben enviarse desde ogCore (y luego son tratados en la API, para construir la cadena correspondiente al parámetro).
|
||||||
|
|
||||||
**URL:** `/ogrepository/v1/udpcast/images/{ID_img}`
|
**URL:** `/ogrepository/v1/udpcast`
|
||||||
**Método HTTP:** POST
|
**Método HTTP:** POST
|
||||||
|
|
||||||
**Cuerpo de la Solicitud (JSON):**
|
**Cuerpo de la Solicitud (JSON):**
|
||||||
- **image**: Nombre de la imagen (con extensión).
|
- **ID_img**: Identificador de la imagen (correspondiente al contenido del archivo "full.sum" asociado).
|
||||||
- **ou_subdir**: Subdirectorio correspondiente a la OU (o "none" si no es el caso).
|
|
||||||
- **port**: Puerto Multicast.
|
- **port**: Puerto Multicast.
|
||||||
- **method**: Modalidad half-duplex o full-duplex.
|
- **method**: Modalidad half-duplex o full-duplex.
|
||||||
- **ip**: IP Multicast.
|
- **ip**: IP Multicast.
|
||||||
|
@ -471,7 +472,7 @@ Se puede hacer con el script "**sendFileMcast.py**", que a su vez llama al binar
|
||||||
**Ejemplo de Solicitud:**
|
**Ejemplo de Solicitud:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"image":"Windows10.img", "ou_subdir":"none", "port":"9000", "method":"full", "ip":"239.194.17.2", "bitrate":"70M", "nclients":"20", "maxtime":"120"}' http://example.com/ogrepository/v1/udpcast/images/{ID_img}
|
curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"ID_img":"image_id", "port":"9000", "method":"full", "ip":"239.194.17.2", "bitrate":"70M", "nclients":"20", "maxtime":"120"}' http://example.com/ogrepository/v1/udpcast
|
||||||
```
|
```
|
||||||
**Respuestas:**
|
**Respuestas:**
|
||||||
- **Código 500 Internal Server Error:** Ocurrió un error al enviar la imagen.
|
- **Código 500 Internal Server Error:** Ocurrió un error al enviar la imagen.
|
||||||
|
@ -482,15 +483,14 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d
|
||||||
### Enviar una Imagen mediante UFTP
|
### Enviar una Imagen mediante UFTP
|
||||||
|
|
||||||
Se enviará la imagen especificada por Unicast o Multicast, mediante el protocolo "UFTP".
|
Se enviará la imagen especificada por Unicast o Multicast, mediante el protocolo "UFTP".
|
||||||
Se puede hacer con el script "**sendFileUFTP.py**", que requiere que previamente los clientes ogLive destino se pongan en escucha con un daemon "UFTPD" (ejecutando el script "**listenUFTPD.py**").
|
Se puede hacer con el script "**sendFileUFTP.py**", que requiere que previamente los clientes ogLive destino se pongan en escucha con un daemon "UFTPD" (ejecutando el script "**listenUFTPD.py**"). Esto funciona al revés que "UDPcast", ya que primero se debe ejecutar un comando en los clientes, y luego en el servidor.
|
||||||
**NOTA**: Los envíos mediante "UFTP" funcionan al revés que los envíos mediante "UDPcast" (con este último, primero se debe ejecutar un comando en el servidor, y luego en los clientes).
|
**NOTA**: La versión actual de este script requiere que se le pase el nombre de la imagen (con extensión, e incluyendo el nombre del directorio correspondiente a la OU, si fuera el caso) como primer parámetro, y los datos de transferencia como segundo parámetro (en una cadena, con los datos separados por dos puntos). El primer parámetro se obtiene en la API, a partir del ID de la imagen (que corresponde al contenido del archivo "full.sum"), pero los datos de transferencia deben enviarse desde ogCore (y luego son tratados en la API, para construir la cadena correspondiente al parámetro).
|
||||||
|
|
||||||
**URL:** `/ogrepository/v1/uftp/images/{ID_img}`
|
**URL:** `/ogrepository/v1/uftp`
|
||||||
**Método HTTP:** POST
|
**Método HTTP:** POST
|
||||||
|
|
||||||
**Cuerpo de la Solicitud (JSON):**
|
**Cuerpo de la Solicitud (JSON):**
|
||||||
- **image**: Nombre de la imagen (con extensión).
|
- **ID_img**: Identificador de la imagen (correspondiente al contenido del archivo "full.sum" asociado).
|
||||||
- **ou_subdir**: Subdirectorio correspondiente a la OU (o "none" si no es el caso).
|
|
||||||
- **port**: Puerto Multicast.
|
- **port**: Puerto Multicast.
|
||||||
- **ip**: IP Unicast/Multicast.
|
- **ip**: IP Unicast/Multicast.
|
||||||
- **bitrate**: Velocidad de transmisión (con "K" para Kbps, "M" para Mbps o "G" para Gbps).
|
- **bitrate**: Velocidad de transmisión (con "K" para Kbps, "M" para Mbps o "G" para Gbps).
|
||||||
|
@ -498,7 +498,7 @@ Se puede hacer con el script "**sendFileUFTP.py**", que requiere que previamente
|
||||||
**Ejemplo de Solicitud:**
|
**Ejemplo de Solicitud:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"image":"Windows10.img", "ou_subdir":"none", "port":"9000", "ip":"239.194.17.2", "bitrate":"1G"}' http://example.com/ogrepository/v1/uftp/images/{ID_img}
|
curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"ID_img":"image_id", "port":"9000", "ip":"239.194.17.2", "bitrate":"1G"}' http://example.com/ogrepository/v1/uftp
|
||||||
```
|
```
|
||||||
**Respuestas:**
|
**Respuestas:**
|
||||||
- **Código 500 Internal Server Error:** Ocurrió un error al enviar la imagen.
|
- **Código 500 Internal Server Error:** Ocurrió un error al enviar la imagen.
|
||||||
|
@ -508,23 +508,26 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d
|
||||||
---
|
---
|
||||||
### Enviar una Imagen mediante P2P
|
### Enviar una Imagen mediante P2P
|
||||||
|
|
||||||
Se enviará la imagen especificada mediante "P2P", iniciando el tracker y el seeder (que harán tracking y seed de los torrents contenidos en la raiz del subdirectorio especificado).
|
Se enviará la imagen especificada mediante "P2P", iniciando el tracker y el seeder (que harán tracking y seed de los torrents contenidos en la raiz del directorio especificado).
|
||||||
Se debe llamar al script "**runTorrentTracker.py**" y al script "**runTorrentSeeder.py**", especificando la ruta en la que está contenido el torrent (que debe estar en la raiz de dicha ruta).
|
Se puede hacer con los scripts "**runTorrentTracker.py**" y "**runTorrentSeeder.py**", que deben ser llamados por el endpoint.
|
||||||
**NOTA**: El directorio en el que está contenida la imagen y su torrent asociado puede obtenerse a partir del ID de la imagen (que corresponde al fullsum).
|
**NOTA**: La versión actual de estos scripts requiere que se le pase el directorio en el que está situada la imagen a enviar como único parámetro. Este dato se obtiene en la API, a partir del ID de la imagen (que corresponde al contenido del archivo "full.sum").
|
||||||
|
|
||||||
|
|
||||||
**URL:** `/ogrepository/v1/p2p/images/{ID_img}`
|
**URL:** `/ogrepository/v1/p2p`
|
||||||
**Método HTTP:** POST
|
**Método HTTP:** POST
|
||||||
|
|
||||||
|
**Cuerpo de la Solicitud (JSON):**
|
||||||
|
- **ID_img**: Identificador de la imagen (correspondiente al contenido del archivo "full.sum" asociado).
|
||||||
|
|
||||||
**Ejemplo de Solicitud:**
|
**Ejemplo de Solicitud:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/p2p/images/{ID_img}
|
curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"ID_img":"image_id"}' http://example.com/ogrepository/v1/p2p
|
||||||
```
|
```
|
||||||
**Respuestas:**
|
**Respuestas:**
|
||||||
- **Código 500 Internal Server Error:** Ocurrió un error al enviar la imagen.
|
- **Código 500 Internal Server Error:** Ocurrió un error al intentar enviar la imagen.
|
||||||
- **Código 400 Bad Request:** No se ha encontrado la imagen especificada.
|
- **Código 400 Bad Request:** No se ha encontrado la imagen especificada.
|
||||||
- **Código 200 OK:** La imagen se ha enviado exitosamente.
|
- **Código 200 OK:** La imagen se está enviando exitosamente.
|
||||||
|
|
||||||
---
|
---
|
||||||
### Ver Estado de Transmisiones UDPcast
|
### Ver Estado de Transmisiones UDPcast
|
||||||
|
|
|
@ -6,7 +6,7 @@ Este script envía mediante UFTP la imagen recibida como primer parámetro, al p
|
||||||
a la velocidad de transferencia tambíén especificada en el segundo parámetro (la sintaxis de este parámetro es "Port:IP:Bitrate").
|
a la velocidad de transferencia tambíén especificada en el segundo parámetro (la sintaxis de este parámetro es "Port:IP:Bitrate").
|
||||||
Previamente, los clientes deben haberse puesto a escuchar en la IP Multicast correspondiente (tanto para envíos Multicast como para envíos Unicast).
|
Previamente, los clientes deben haberse puesto a escuchar en la IP Multicast correspondiente (tanto para envíos Multicast como para envíos Unicast).
|
||||||
|
|
||||||
Paquetes APT requeridos: "uftp"
|
Paquetes APT requeridos: "uftp" (se puede instalar con "sudo apt install uftp").
|
||||||
|
|
||||||
Parámetros
|
Parámetros
|
||||||
------------
|
------------
|
||||||
|
|
Loading…
Reference in New Issue