refs #631 - Modify 'getRepoInfo.py'
parent
a367aed25a
commit
b3e31219dc
|
@ -123,7 +123,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/stat
|
||||||
### Obtener Información de todas las Imágenes
|
### Obtener Información de todas las Imágenes
|
||||||
|
|
||||||
Se devolverá la informacion contenida en el archivo "**/opt/opengnsys/ogrepository/etc/repoinfo.json**" (que corresponde a todas las imágenes almacenadas en el repositorio), y en el archivo "**/opt/opengnsys/ogrepository/etc/trashinfo.json**" (que corresponde a las imágenes que fueron eliminadas, que estarán en la papelera).
|
Se devolverá la informacion contenida en el archivo "**/opt/opengnsys/ogrepository/etc/repoinfo.json**" (que corresponde a todas las imágenes almacenadas en el repositorio), y en el archivo "**/opt/opengnsys/ogrepository/etc/trashinfo.json**" (que corresponde a las imágenes que fueron eliminadas, que estarán en la papelera).
|
||||||
Se puede utilizar el script "**getRepoInfo.py**, que debe ser llamado por el endpoint.
|
Se puede utilizar el script "**getRepoInfo.py**, que debe ser llamado por el endpoint, que a su vez llama al script "**updateRepoInfo.py**", para actualizar previamente la información del repositorio.
|
||||||
**NOTA**: El script requiere que se le pase "all" como primer parámetro (que correspondería al nombre de la imagen) y "none" como segundo parámetro (que corresponderia al nombre del subdirectorio correspondiente a la OU). Esta transformación de parámetros se realiza en la API.
|
**NOTA**: El script requiere que se le pase "all" como primer parámetro (que correspondería al nombre de la imagen) y "none" como segundo parámetro (que corresponderia al nombre del subdirectorio correspondiente a la OU). Esta transformación de parámetros se realiza en la API.
|
||||||
|
|
||||||
**URL:** `/ogrepository/v1/images`
|
**URL:** `/ogrepository/v1/images`
|
||||||
|
@ -229,7 +229,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/imag
|
||||||
### Obtener Información de una Imagen concreta
|
### Obtener Información de una Imagen concreta
|
||||||
|
|
||||||
Se devolverá la informacion de la imagen especificada, que puede estar en el archivo "**/opt/opengnsys/ogrepository/etc/repoinfo.json**" o en el archivo "**/opt/opengnsys/ogrepository/etc/trashinfo.json**" (en este último caso, si la imagen está en la papelera).
|
Se devolverá la informacion de la imagen especificada, que puede estar en el archivo "**/opt/opengnsys/ogrepository/etc/repoinfo.json**" o en el archivo "**/opt/opengnsys/ogrepository/etc/trashinfo.json**" (en este último caso, si la imagen está en la papelera).
|
||||||
Se puede utilizar el script "**getRepoInfo.py**, que debe ser llamado por el endpoint.
|
Se puede utilizar el script "**getRepoInfo.py**, que debe ser llamado por el endpoint, que a su vez llama al script "**updateRepoInfo.py**", para actualizar previamente la información del repositorio.
|
||||||
**NOTA**: El script requiere que se le pase el nombre de la imagen (con extensión) como primer parámetro, y el subdirectorio correspondiente a la OU (o "none" si no es el caso) como segundo parámetro. Estos datos se obtienen en la API, a partir del ID de la imagen (que corresponde al contenido del archivo "full.sum"), y alli se realiza la transformación de parámetros.
|
**NOTA**: El script requiere que se le pase el nombre de la imagen (con extensión) como primer parámetro, y el subdirectorio correspondiente a la OU (o "none" si no es el caso) como segundo parámetro. Estos datos se obtienen en la API, a partir del ID de la imagen (que corresponde al contenido del archivo "full.sum"), y alli se realiza la transformación de parámetros.
|
||||||
|
|
||||||
**URL:** `/ogrepository/v1/images/{ID_img}`
|
**URL:** `/ogrepository/v1/images/{ID_img}`
|
||||||
|
|
|
@ -83,7 +83,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/stat
|
||||||
### Obtener Información de todas las Imágenes
|
### Obtener Información de todas las Imágenes
|
||||||
|
|
||||||
Se devolverá la informacion contenida en el archivo "**/opt/opengnsys/ogrepository/etc/repoinfo.json**" (que corresponde a todas las imágenes almacenadas en el repositorio), y en el archivo "**/opt/opengnsys/ogrepository/etc/trashinfo.json**" (que corresponde a las imágenes que fueron eliminadas, que estarán en la papelera).
|
Se devolverá la informacion contenida en el archivo "**/opt/opengnsys/ogrepository/etc/repoinfo.json**" (que corresponde a todas las imágenes almacenadas en el repositorio), y en el archivo "**/opt/opengnsys/ogrepository/etc/trashinfo.json**" (que corresponde a las imágenes que fueron eliminadas, que estarán en la papelera).
|
||||||
Se puede utilizar el script "**getRepoInfo.py**, que debe ser llamado por el endpoint.
|
Se puede utilizar el script "**getRepoInfo.py**, que debe ser llamado por el endpoint, que a su vez llama al script "**updateRepoInfo.py**", para actualizar previamente la información del repositorio.
|
||||||
**NOTA**: El script requiere que se le pase "all" como primer parámetro (que correspondería al nombre de la imagen) y "none" como segundo parámetro (que corresponderia al nombre del subdirectorio correspondiente a la OU). Esta transformación de parámetros se realiza en la API.
|
**NOTA**: El script requiere que se le pase "all" como primer parámetro (que correspondería al nombre de la imagen) y "none" como segundo parámetro (que corresponderia al nombre del subdirectorio correspondiente a la OU). Esta transformación de parámetros se realiza en la API.
|
||||||
|
|
||||||
**URL:** `/ogrepository/v1/images`
|
**URL:** `/ogrepository/v1/images`
|
||||||
|
@ -189,7 +189,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/imag
|
||||||
### Obtener Información de una Imagen concreta
|
### Obtener Información de una Imagen concreta
|
||||||
|
|
||||||
Se devolverá la informacion de la imagen especificada, que puede estar en el archivo "**/opt/opengnsys/ogrepository/etc/repoinfo.json**" o en el archivo "**/opt/opengnsys/ogrepository/etc/trashinfo.json**" (en este último caso, si la imagen está en la papelera).
|
Se devolverá la informacion de la imagen especificada, que puede estar en el archivo "**/opt/opengnsys/ogrepository/etc/repoinfo.json**" o en el archivo "**/opt/opengnsys/ogrepository/etc/trashinfo.json**" (en este último caso, si la imagen está en la papelera).
|
||||||
Se puede utilizar el script "**getRepoInfo.py**, que debe ser llamado por el endpoint.
|
Se puede utilizar el script "**getRepoInfo.py**, que debe ser llamado por el endpoint, que a su vez llama al script "**updateRepoInfo.py**", para actualizar previamente la información del repositorio.
|
||||||
**NOTA**: El script requiere que se le pase el nombre de la imagen (con extensión) como primer parámetro, y el subdirectorio correspondiente a la OU (o "none" si no es el caso) como segundo parámetro. Estos datos se obtienen en la API, a partir del ID de la imagen (que corresponde al contenido del archivo "full.sum"), y alli se realiza la transformación de parámetros.
|
**NOTA**: El script requiere que se le pase el nombre de la imagen (con extensión) como primer parámetro, y el subdirectorio correspondiente a la OU (o "none" si no es el caso) como segundo parámetro. Estos datos se obtienen en la API, a partir del ID de la imagen (que corresponde al contenido del archivo "full.sum"), y alli se realiza la transformación de parámetros.
|
||||||
|
|
||||||
**URL:** `/ogrepository/v1/images/{ID_img}`
|
**URL:** `/ogrepository/v1/images/{ID_img}`
|
||||||
|
|
|
@ -217,7 +217,7 @@ paths:
|
||||||
get:
|
get:
|
||||||
summary: "Obtener Información de todas las Imágenes"
|
summary: "Obtener Información de todas las Imágenes"
|
||||||
description: |
|
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.
|
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, 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.
|
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:
|
tags:
|
||||||
- "Información de Imágenes"
|
- "Información de Imágenes"
|
||||||
|
@ -400,7 +400,7 @@ paths:
|
||||||
summary: "Obtener Información de una Imagen concreta"
|
summary: "Obtener Información de una Imagen concreta"
|
||||||
description: |
|
description: |
|
||||||
Este endpoint devuelve información de la imagen especificada mediante su ID, en formato JSON.
|
Este endpoint devuelve información de la imagen especificada mediante su ID, en formato JSON.
|
||||||
Utiliza 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).
|
Utiliza 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), 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).
|
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:
|
tags:
|
||||||
- "Información de Imágenes"
|
- "Información de Imágenes"
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
"""
|
"""
|
||||||
Este script devuelve información (en formato json) de todas las imágenes contenidas en el repositorio (incluída la papelera),
|
Este script devuelve información (en formato json) de todas las imágenes contenidas en el repositorio (incluída la papelera),
|
||||||
o de la imagen que se especifique como primer parámetro (debiendo especificar también el subdirectorio de OU como segundo parámetro, si procede).
|
o de la imagen que se especifique como primer parámetro (debiendo especificar también el subdirectorio de OU como segundo parámetro, si procede).
|
||||||
|
Previamente, llama al script "updateRepoInfo.py", para actualizar la información del repositorio (para evitar que dé error si no hay ninguna, por ejemplo).
|
||||||
|
|
||||||
Parámetros
|
Parámetros
|
||||||
------------
|
------------
|
||||||
|
@ -32,6 +33,7 @@ sys.argv[2] - Subdirectorio correspondiente a la OU, o "none" si no procede..
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import subprocess
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
|
||||||
|
@ -42,6 +44,7 @@ import json
|
||||||
script_name = os.path.basename(__file__)
|
script_name = os.path.basename(__file__)
|
||||||
repo_file = '/opt/opengnsys/ogrepository/etc/repoinfo.json'
|
repo_file = '/opt/opengnsys/ogrepository/etc/repoinfo.json'
|
||||||
trash_file = '/opt/opengnsys/ogrepository/etc/trashinfo.json'
|
trash_file = '/opt/opengnsys/ogrepository/etc/trashinfo.json'
|
||||||
|
update_repo_script = '/opt/opengnsys/ogrepository/bin/updateRepoInfo.py'
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------------------------
|
||||||
|
@ -79,6 +82,21 @@ def check_params():
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def update_repo_info():
|
||||||
|
""" Actualiza la información del repositorio, ejecutando el script "updateRepoInfo.py".
|
||||||
|
Como se ve, es necesario que el script se ejecute como sudo, o dará error.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
result = subprocess.run(['sudo', 'python3', update_repo_script], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
|
except subprocess.CalledProcessError as error:
|
||||||
|
print(f"Error Output: {error.stderr.decode()}")
|
||||||
|
sys.exit(3)
|
||||||
|
except Exception as error:
|
||||||
|
print(f"Se ha producido un error inesperado: {error}")
|
||||||
|
sys.exit(4)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_all_info(repo_data, trash_data):
|
def get_all_info(repo_data, trash_data):
|
||||||
""" Imprime un json con la información de todo el repositorio, con todas las imágenes que contiene,
|
""" Imprime un json con la información de todo el repositorio, con todas las imágenes que contiene,
|
||||||
incluyendo las imágenes que fueron eliminadas (que estarán en la papelera).
|
incluyendo las imágenes que fueron eliminadas (que estarán en la papelera).
|
||||||
|
@ -163,6 +181,9 @@ def main():
|
||||||
# Evaluamos si se ha enviado la cantidad correcta de parámetros, y en el formato correcto:
|
# Evaluamos si se ha enviado la cantidad correcta de parámetros, y en el formato correcto:
|
||||||
check_params()
|
check_params()
|
||||||
|
|
||||||
|
# Actualizamos la información del repositorio, ejecutando el script "updateRepoInfo.py":
|
||||||
|
update_repo_info()
|
||||||
|
|
||||||
# Almacenamos la información de las imágenes del repositorio, en la variable "repo_data"
|
# Almacenamos la información de las imágenes del repositorio, en la variable "repo_data"
|
||||||
# (solo si el archivo tiene contenido, o dará error):
|
# (solo si el archivo tiene contenido, o dará error):
|
||||||
if os.path.getsize(repo_file) > 0:
|
if os.path.getsize(repo_file) > 0:
|
||||||
|
|
Loading…
Reference in New Issue