diff --git a/README.md b/README.md index f841876..2e588eb 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ El presente documento detalla los endpoints de la API, con sus respectivos pará --- ### Obtener Información de todas las Imágenes -Se devolverá la informacion contenida en el archivo "**/opt/opengnsys/etc/repoinfo.json**" (que corresponde a todas las imágenes monolíticas almacenadas en el repositorio). +Se devolverá la informacion contenida en el archivo "**/opt/opengnsys/etc/repoinfo.json**" (que corresponde a todas las imágenes monolíticas almacenadas en el repositorio). Se debe crear un script que devuelva dicha información, porque actualmente no hay ninguno. **URL:** `/ogrepository/v1/images` @@ -91,7 +91,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/imag --- ### Obtener Información de una Imagen concreta -Se devolverá la informacion contenida en el archivo "**/opt/opengnsys/etc/repoinfo.json**" (correspondiente a la imagen especificada). +Se devolverá la informacion contenida en el archivo "**/opt/opengnsys/etc/repoinfo.json**" (correspondiente a la imagen especificada). Se debe crear un script que devuelva dicha información, porque actualmente no hay ninguno. **URL:** `/ogrepository/v1/images/{name}` @@ -133,8 +133,8 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/imag --- ### Actualizar Información del Repositorio -Se actualizará la información de las imágenes almacenadas en el repositorio, reflejándola en el archivo "**/opt/opengnsys/etc/repoinfo.json**". -Se puede hacer con el script "**checkrepo**", que actualmente se ejecuta a cada minuto por crontab (indirectamente, porque es llamado por el script "**deletepreimage**", que es el que realmente se ejecuta por crontab). +Se actualizará la información de las imágenes almacenadas en el repositorio, reflejándola en el archivo "**/opt/opengnsys/etc/repoinfo.json**". +Se puede hacer con el script "**checkrepo**", que actualmente se ejecuta a cada minuto por crontab (indirectamente, porque es llamado por el script "**deletepreimage**", que es el que realmente se ejecuta por crontab). Creemos que este endpoint debe ser llamado por ogCore u ogLive cada vez que se haya creado una imagen, y ejecutado desde el propio ogRepository cada vez que se elimine una imagen. **URL:** `/ogrepository/v1/images` @@ -152,8 +152,8 @@ curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/imag --- ### Eliminar una Imagen -Se eliminará la imagen especificada como parámetro. -Se puede hacer con el script "**deleteimage**", que actualmente no se utiliza (lo que se hace ahora es eliminar todas las imágenes marcadas con ".delete", mediante el script "deletepreimage", que se ejecuta por crontab a cada minuto). +Se eliminará la imagen especificada como parámetro. +Se puede hacer con el script "**deleteimage**", que actualmente no se utiliza (lo que se hace ahora es eliminar todas las imágenes marcadas con ".delete", mediante el script "deletepreimage", que se ejecuta por crontab a cada minuto). Además, el script "deleteimage" debería llamar al script "**checkrepo**", para actualizar la información del repositorio una vez eliminada la imagen. **NOTA**: En el pliego se solicita una función "papelera", para lo que habría que modificar los scripts existentes (y posiblemente crear otros endpoints, como "recuperar imagen de la papelera", por ejemplo). @@ -174,7 +174,7 @@ curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/i --- ### Importar una Imagen -Se importará una imagen de un repositorio remoto al repositorio local. +Se importará una imagen de un repositorio remoto al repositorio local. Se puede hacer con el script "**importimage**", que actualmente no se utiliza. **URL:** `/ogrepository/v1/images/import-image` @@ -198,7 +198,7 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d --- ### Enviar una Imagen mediante UDPcast -Se enviará una imagen por Multicast, mediante la aplicación UDPcast. +Se enviará una imagen por Multicast, mediante la aplicación UDPcast. Se puede hacer con el script "**sendFileMcast**", que a su vez llama al binario "**udp-sender**", que es quien realmente realiza el envío. **URL:** `/ogrepository/v1/images/{protocol}` @@ -229,8 +229,8 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d --- ### Enviar una Imagen mediante UFTP -Se enviará una imagen 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 enviará una imagen 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**"). **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). **URL:** `/ogrepository/v1/images/{protocol}` @@ -258,8 +258,8 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d --- ### Crear archivo .torrent -Se creará un archivo ".torrent" para la imagen especificada como parámetro. -Se debe crear un script que realice dicha tarea, porque actualmente se hace mediante el script "**torrent-creator**", que se ejecuta por crontab a cada minuto (y crea un archivo ".torrent" por cada imagen que no tenga uno asociado). +Se creará un archivo ".torrent" para la imagen especificada como parámetro. +Se debe crear un script que realice dicha tarea, porque actualmente se hace mediante el script "**torrent-creator**", que se ejecuta por crontab a cada minuto (y crea un archivo ".torrent" por cada imagen que no tenga uno asociado). **NOTA**: Puede que sea preferible que esta acción la realice el propio ogLive al crear una imagen, ya que también tiene las herramientas para hacerlo. **URL:** `/ogrepository/v1/images/create-torrent` @@ -281,7 +281,7 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d --- ### Enviar una Imagen mediante P2P -Se debe hacer tracking de los torrents almacenados en ogRepository, e iniciar la transferencia de la imagen especificada (además, los clientes deben disponer del torrent asociado, y añadirlo a su cliente torrent). +Se debe hacer tracking de los torrents almacenados en ogRepository, e iniciar la transferencia de la imagen especificada (además, los clientes deben disponer del torrent asociado, y añadirlo a su cliente torrent). No tengo claro cómo se haría con los scripts existentes (que utilizan "bttrack" y "ctorrent"), pero si usáramos "opentracker" y "transmission", se debería crear nuevos scripts. **URL:** `/ogrepository/v1/images/{protocol}` @@ -306,7 +306,7 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d --- ### Chequear Integridad de Imagen -Se comprobará la integridad de todos los ficheros asociados a la imagen especificada como parámetro. +Se comprobará la integridad de todos los ficheros asociados a la imagen especificada como parámetro. Para esto, entiendo que se debe crear un script que compare el contenido de los ficheros "**.sum**" y "**.full.sum**" con una nueva extracción del checksum de la imagen, pero no veo como comprobar la integridad de todos los archivos asociados. **URL:** `/ogrepository/v1/images/check-image` @@ -329,7 +329,7 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d --- ### Exportar una Imagen -Se exportará una imagen del repositorio local a un repositorio remoto. +Se exportará una imagen del repositorio local a un repositorio remoto. Se debe crear un script que realice dicha tarea (o se puede utilizar el script "**importimage**", que realiza la acción contraria, pero que actualmente no se utiliza). **NOTA**: Aunque no se indica en el pliego, entendemos que también será necesario especificar credenciales de acceso al repositorio remoto como parámetros de entrada. @@ -355,9 +355,9 @@ curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d --- ### Definir Imagen Global -Se marcará como "global" la imagen especificada como parámetro. -En principio, esto requerirá agregar una nueva clave al archivo "**/opt/opengnsys/etc/repoinfo.json**" (por ejemplo, "scope"), modificando el script "**checkrepo**", para que realice dicha modificación. -También debe crearse un script que realice la definición de la imagen especificada (modificando el valor de la nueva clave del archivo "**/opt/opengnsys/etc/repoinfo.json**", de "local" a "global", por ejemplo). +Se marcará como "global" la imagen especificada como parámetro. +En principio, esto requerirá agregar una nueva clave al archivo "**/opt/opengnsys/etc/repoinfo.json**" (por ejemplo, "scope"), modificando el script "**checkrepo**", para que realice dicha modificación. +También debe crearse un script que realice la definición de la imagen especificada (modificando el valor de la nueva clave del archivo "**/opt/opengnsys/etc/repoinfo.json**", de "local" a "global", por ejemplo). Además, deberá llamarse a un script que exporte dicha imagen a los demás repositorios gestionados por el servidor de administración (que aun no está creado). **URL:** `/ogrepository/v1/images/set-global` @@ -379,9 +379,9 @@ curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d --- ### Definir Imagen Local -Se marcará como "local" la imagen especificada como parámetro, que previamente habría sido marcada como "global" (ya que de forma predeterminada, todas las imágenes estarán marcadas como "local"). -Como comentábamos en el endpoint precedentte, esto requerirá agregar una nueva clave al archivo "**/opt/opengnsys/etc/repoinfo.json**" (por ejemplo, "scope"), modificando el script "**checkrepo**", para que realice dicha modificación. -También debe crearse un script que realice la definición de la imagen especificada (modificando el valor de la nueva clave del archivo "**/opt/opengnsys/etc/repoinfo.json**", de "global" a "local", por ejemplo). +Se marcará como "local" la imagen especificada como parámetro, que previamente habría sido marcada como "global" (ya que de forma predeterminada, todas las imágenes estarán marcadas como "local"). +Como comentábamos en el endpoint precedentte, esto requerirá agregar una nueva clave al archivo "**/opt/opengnsys/etc/repoinfo.json**" (por ejemplo, "scope"), modificando el script "**checkrepo**", para que realice dicha modificación. +También debe crearse un script que realice la definición de la imagen especificada (modificando el valor de la nueva clave del archivo "**/opt/opengnsys/etc/repoinfo.json**", de "global" a "local", por ejemplo). Este endpoint deberá ser llamado en todos los repositorios gestionados por el mismo servidor de administración (para que todos hagan la modificación). **URL:** `/ogrepository/v1/images/set-local` @@ -403,16 +403,16 @@ curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d --- ### Ver Estado de Transmisiones Multicast-P2P -Se devolverá información del estado de las transmisiones existentes, con un identificador de cada sesión multicast o P2P, y la imagen asociada. -Se debe estudiar como realizar esta tarea para cada uno de los protocolos de transmisión, ya que cada uno tiene sus particularidades, y habitualmente no tienen comandos asociados para comprobar el estado de las transmisiones. -Y tampoco está claro que protocolo se utilizará para transimisiones Multicast (¿"UDPcast", "UFTP", o ambos?), ni qué programas se utilizarán para P2P (¿"ctorrent/bttrack" u "opentracker/Transmission"?). +Se devolverá información del estado de las transmisiones existentes, con un identificador de cada sesión multicast o P2P, y la imagen asociada. +Se debe estudiar como realizar esta tarea para cada uno de los protocolos de transmisión, ya que cada uno tiene sus particularidades, y habitualmente no tienen comandos asociados para comprobar el estado de las transmisiones. +Y tampoco está claro que protocolo se utilizará para transimisiones Multicast (¿"UDPcast", "UFTP", o ambos?), ni qué programas se utilizarán para P2P (¿"ctorrent/bttrack" u "opentracker/Transmission"?). **NOTA**: Posiblemente deba crearse un endpoint específico para cada uno de los protocolos que se utilicen. --- ### Cancelar Transmisión Multicast-P2P Se cancelará la transmisión Multicast o P2P cuyo identificador se especifique como parámetro. -Aunque cancelar una transmisión Multicast o P2P es una tarea sencilla (independientemente del protocolo o programa que se utilice), en principio deberá crearse un script para cada uno de ellos. +Aunque cancelar una transmisión Multicast o P2P es una tarea sencilla (independientemente del protocolo o programa que se utilice), en principio deberá crearse un script para cada uno de ellos. Y la definición del endpoint depende de como se defina el endpoint anterior ("**Ver Estado de Transmisiones Multicast-P2P**"), ya que será el que determine cómo se especifica el identificador de la transmisión. --- \ No newline at end of file