refs #631 - Modify paths in scripts and API
parent
fb0dff9598
commit
f6064b962d
28
README.md
28
README.md
|
@ -8,7 +8,7 @@ Este repositorio GIT contiene la estructura de datos del repositorio de imágene
|
|||
- **api** ------ API de ogRepository.
|
||||
- **bin** ------ Scripts en Python 3 y binarios de gestión de ogRepository.
|
||||
- **etc** ------ Ficheros y plantillas de configuración de ogRepository.
|
||||
- **packets** - Paquetes cuya intalación es requerida.
|
||||
- **packets** - Paquetes cuya instalación es requerida.
|
||||
|
||||
---
|
||||
|
||||
|
@ -16,7 +16,7 @@ Este repositorio GIT contiene la estructura de datos del repositorio de imágene
|
|||
|
||||
Paquetes APT requeridos:
|
||||
- **uftp** (se puede instalar con "sudo DEBIAN_FRONTEND=noninteractive apt install uftp -y", para que no pida la ruta predeterminada)
|
||||
- **udpcast** (se puede instalar con "sudo apt install ./udpcast_20230924_amd64.deb", apuntando al paquete, que debe descargarse previamente)
|
||||
- **udpcast** (se puede instalar con "sudo apt install ./udpcast_20230924_amd64.deb", apuntando al paquete)
|
||||
- **ctorrent** (se puede instalar con "sudo apt install ctorrent")
|
||||
- **bittorrent** (se puede instalar con "sudo apt install bittorrent", pero previamente hay que añadir un repositorio de Debian)
|
||||
- **bittornado** (se puede instalar con "sudo apt install bittornado", pero previamente hay que añadir un repositorio de Debian)
|
||||
|
@ -28,14 +28,14 @@ Librerías Python requeridas:
|
|||
- **flasgger** (se puede instalar con "sudo apt install python3-flasgger")
|
||||
|
||||
Para que todos los endpoints y scripts funcionen con la configuración actual deben existir los siguientes directorios:
|
||||
- **/opt/opengnsys/images/**
|
||||
- **/opt/opengnsys/images_trash/** (debe estar en la misma unidad que el anterior, o tardarán mucho las eliminaciones y restauraciones)
|
||||
- **/opt/opengnsys/bin/** (aquí deben estar todos los scripts de Python, y el binario "udp-sender")
|
||||
- **/opt/opengnsys/etc/** (aquí se guardan los archivos "repoinfo.json" y "trashinfo.json")
|
||||
- **/opt/opengnsys/log/** (aquí se guardan los logs)
|
||||
- **/opt/opengnsys/ogrepository/images/**
|
||||
- **/opt/opengnsys/ogrepository/images_trash/** (debe estar en la misma partición que el anterior, o tardarán mucho las eliminaciones y restauraciones)
|
||||
- **/opt/opengnsys/ogrepository/bin/** (aquí deben estar todos los scripts de Python, y el binario "udp-sender")
|
||||
- **/opt/opengnsys/ogrepository/etc/** (aquí se guardan los archivos "repoinfo.json" y "trashinfo.json")
|
||||
- **/opt/opengnsys/ogrepository/log/** (aquí se guardan los logs)
|
||||
|
||||
Y también debe existir el siguiente archivo:
|
||||
- **/opt/opengnsys/etc/ogAdmRepo.cfg** (de aquí pilla la IP de ogRepository)
|
||||
- **/opt/opengnsys/ogrepository/etc/ogAdmRepo.cfg** (de aquí pilla la IP de ogRepository)
|
||||
|
||||
---
|
||||
|
||||
|
@ -122,7 +122,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/stat
|
|||
---
|
||||
### 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 almacenadas en el repositorio), y en el archivo "**/opt/opengnsys/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.
|
||||
**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.
|
||||
|
||||
|
@ -142,7 +142,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/imag
|
|||
```json
|
||||
{
|
||||
"REPOSITORY": {
|
||||
"directory": "/opt/opengnsys/images",
|
||||
"directory": "/opt/opengnsys/ogrepository/images",
|
||||
"images": [
|
||||
{
|
||||
"name": "Ubuntu24",
|
||||
|
@ -191,7 +191,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/imag
|
|||
}
|
||||
},
|
||||
"TRASH": {
|
||||
"directory": "/opt/opengnsys/images_trash",
|
||||
"directory": "/opt/opengnsys/ogrepository/images_trash",
|
||||
"images": [],
|
||||
"ous": [
|
||||
{
|
||||
|
@ -228,7 +228,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 de la imagen especificada, que puede estar en el archivo "**/opt/opengnsys/etc/repoinfo.json**" o en el archivo "**/opt/opengnsys/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.
|
||||
**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.
|
||||
|
||||
|
@ -248,7 +248,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/imag
|
|||
- **Contenido:** Información de la imagen en formato JSON.
|
||||
```json
|
||||
{
|
||||
"directory": "/opt/opengnsys/images",
|
||||
"directory": "/opt/opengnsys/ogrepository/images",
|
||||
"images": [
|
||||
{
|
||||
"name": "Windows10",
|
||||
|
@ -279,7 +279,7 @@ 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 actualizará la información de las imágenes almacenadas en el repositorio, reflejándola en el archivo "**/opt/opengnsys/ogrepository/etc/repoinfo.json**".
|
||||
Se puede hacer con el script "**updateRepoInfo.py**", que debe ser llamado por el endpoint (y que es similar al script bash original "**checkrepo**").
|
||||
Este endpoint es llamado por el script "**deleteImage.py**" (para actualizar la información cada vez que se elimine una imagen), y creemos que también debe ser llamado por ogCore u ogLive cada vez que se haya creado una imagen.
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/stat
|
|||
---
|
||||
### 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 almacenadas en el repositorio), y en el archivo "**/opt/opengnsys/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.
|
||||
**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.
|
||||
|
||||
|
@ -102,7 +102,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/imag
|
|||
```json
|
||||
{
|
||||
"REPOSITORY": {
|
||||
"directory": "/opt/opengnsys/images",
|
||||
"directory": "/opt/opengnsys/ogrepository/images",
|
||||
"images": [
|
||||
{
|
||||
"name": "Ubuntu24",
|
||||
|
@ -151,7 +151,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/imag
|
|||
}
|
||||
},
|
||||
"TRASH": {
|
||||
"directory": "/opt/opengnsys/images_trash",
|
||||
"directory": "/opt/opengnsys/ogrepository/images_trash",
|
||||
"images": [],
|
||||
"ous": [
|
||||
{
|
||||
|
@ -188,7 +188,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 de la imagen especificada, que puede estar en el archivo "**/opt/opengnsys/etc/repoinfo.json**" o en el archivo "**/opt/opengnsys/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.
|
||||
**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.
|
||||
|
||||
|
@ -208,7 +208,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/imag
|
|||
- **Contenido:** Información de la imagen en formato JSON.
|
||||
```json
|
||||
{
|
||||
"directory": "/opt/opengnsys/images",
|
||||
"directory": "/opt/opengnsys/ogrepository/images",
|
||||
"images": [
|
||||
{
|
||||
"name": "Windows10",
|
||||
|
@ -239,7 +239,7 @@ 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 actualizará la información de las imágenes almacenadas en el repositorio, reflejándola en el archivo "**/opt/opengnsys/ogrepository/etc/repoinfo.json**".
|
||||
Se puede hacer con el script "**updateRepoInfo.py**", que debe ser llamado por el endpoint (y que es similar al script bash original "**checkrepo**").
|
||||
Este endpoint es llamado por el script "**deleteImage.py**" (para actualizar la información cada vez que se elimine una imagen), y creemos que también debe ser llamado por ogCore u ogLive cada vez que se haya creado una imagen.
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ import paramiko
|
|||
import logging
|
||||
import threading
|
||||
import requests
|
||||
import random
|
||||
# Imports para Swagger:
|
||||
from flasgger import Swagger
|
||||
import yaml
|
||||
|
@ -36,10 +37,12 @@ import yaml
|
|||
# VARIABLES
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
script_path = '/opt/opengnsys/bin'
|
||||
repo_file = '/opt/opengnsys/etc/repoinfo.json'
|
||||
trash_file = '/opt/opengnsys/etc/trashinfo.json'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
script_path = '/opt/opengnsys/ogrepository/bin'
|
||||
repo_file = '/opt/opengnsys/ogrepository/etc/repoinfo.json'
|
||||
trash_file = '/opt/opengnsys/ogrepository/etc/trashinfo.json'
|
||||
|
||||
ogcore_ip = '192.168.56.101' # En la versión final, se tendrá que pillar de una variable de entorno
|
||||
|
||||
"""
|
||||
repo_path = '/home/user/images/'
|
||||
|
@ -147,7 +150,7 @@ def search_process(process, string_to_search):
|
|||
# ---------------------------------------------------------
|
||||
|
||||
|
||||
def check_lock_local(image_file_path):
|
||||
def check_lock_local(image_file_path, job_id):
|
||||
""" Cada minuto comprueba si existe un archivo ".lock" asociado a la imagen que recibe como parámetro
|
||||
(lo que significará que hay una tarea en curso), en el repositorio local.
|
||||
Cuando no encuentre el archivo ".lock" lo comunicará a ogCore, llamando a un endpoint,
|
||||
|
@ -158,9 +161,17 @@ def check_lock_local(image_file_path):
|
|||
|
||||
# Creamos un bucle infinito:
|
||||
while True:
|
||||
# Si ya no existe el archivo ".lock", imprimimos un mensaje en la API, y salimos del bucle:
|
||||
# Si ya no existe el archivo ".lock", imprimimos un mensaje en la API, respondemos a ogCore y salimos del bucle:
|
||||
if not os.path.exists(f"{image_file_path}.lock"):
|
||||
app.logger.info("Task finalized (no .lock file)") # De momento solamente imprimimos un mensaje en la API (pero debe llamar a un endpoint)
|
||||
app.logger.info("Task finalized (no .lock file)")
|
||||
app.logger.info(f"Job_ID: {job_id}")
|
||||
|
||||
# Almacenamos en un diccionario los datos a enviar a ogCore:
|
||||
data = {
|
||||
'job_id': job_id
|
||||
}
|
||||
# Llamamos al endpoint de ogCore, enviando los datos (de momento comento la llamada, porque la función llama a un endpoint inexistente):
|
||||
#recall_ogcore(data)
|
||||
break
|
||||
# Si aun existe el archivo ".lock", imprimimos un mensaje en la API:
|
||||
else:
|
||||
|
@ -172,7 +183,7 @@ def check_lock_local(image_file_path):
|
|||
# ---------------------------------------------------------
|
||||
|
||||
|
||||
def check_lock_remote(image_file_path, remote_host, remote_user):
|
||||
def check_lock_remote(image_file_path, remote_host, remote_user, job_id):
|
||||
""" Cada minuto comprueba si existe un archivo ".lock" asociado a la imagen que recibe como parámetro
|
||||
(lo que significará que hay una tarea en curso), en un repositorio remoto (al que conecta por SSH/SFTP).
|
||||
Cuando no encuentre el archivo ".lock" lo comunicará a ogCore, llamando a un endpoint,
|
||||
|
@ -199,8 +210,16 @@ def check_lock_remote(image_file_path, remote_host, remote_user):
|
|||
sftp_client.stat(f"{image_file_path}.lock")
|
||||
app.logger.info("Task in process (.lock file exists)")
|
||||
except IOError:
|
||||
# Si ya no existe el archivo ".lock", imprimimos un mensaje en la API, y salimos del bucle:
|
||||
app.logger.info("Task finalized (no .lock file)") # De momento solamente imprimimos un mensaje en la API (pero debe llamar a un endpoint)
|
||||
# Si ya no existe el archivo ".lock", imprimimos un mensaje en la API, respondemos a ogCore y salimos del bucle:
|
||||
app.logger.info("Task finalized (no .lock file)")
|
||||
app.logger.info(f"Job_ID: {job_id}")
|
||||
|
||||
# Almacenamos en un diccionario los datos a enviar a ogCore:
|
||||
data = {
|
||||
'job_id': job_id
|
||||
}
|
||||
# Llamamos al endpoint de ogCore, enviando los datos (de momento comento la llamada, porque la función llama a un endpoint inexistente):
|
||||
#recall_ogcore(data)
|
||||
break
|
||||
# Esperamos 1 minuto para volver a realizar la comprobación:
|
||||
sleep(60)
|
||||
|
@ -213,7 +232,7 @@ def check_lock_remote(image_file_path, remote_host, remote_user):
|
|||
# ---------------------------------------------------------
|
||||
|
||||
|
||||
def check_aux_files(image_file_path):
|
||||
def check_aux_files(image_file_path, job_id):
|
||||
""" Cada 10 segundos comprueba si se han creado todos los archivos auxiliares de la imagen que recibe como parámetro,
|
||||
en cuyo caso lo comunicará a ogCore, llamando a un endpoint, y dejará de realizar la comprobación.
|
||||
También obtiene el valor del archivo ".full.sum" (que corresonde al ID), y se lo comunica a ogCore.
|
||||
|
@ -223,17 +242,18 @@ def check_aux_files(image_file_path):
|
|||
# Si faltan archivos auxiliares por crear, imprimimos un mensaje en la API:
|
||||
if not os.path.exists(f"{image_file_path}.size") or not os.path.exists(f"{image_file_path}.sum") or not os.path.exists(f"{image_file_path}.full.sum") or not os.path.exists(f"{image_file_path}.torrent") or not os.path.exists(f"{image_file_path}.info.checked"):
|
||||
app.logger.info("Task in process (auxiliar files remaining)")
|
||||
# Si ya se han creado todos los archivos auxiliares, imprimimos un mensaje en la API, y salimos del bucle:
|
||||
# Si ya se han creado todos los archivos auxiliares, imprimimos un mensaje en la API, respondemos a ogCore y salimos del bucle:
|
||||
else:
|
||||
app.logger.info("Task finalized (all auxilar files created)") # De momento solamente imprimimos un mensaje en la API (pero debe llamar a un endpoint)
|
||||
app.logger.info("Task finalized (all auxilar files created)")
|
||||
# Obtenemos el valor del archivo "full.sum", que corresponde al ID, y lo imprimimos:
|
||||
with open(f"{image_file_path}.full.sum", 'r') as file:
|
||||
image_id = file.read().strip('\n')
|
||||
app.logger.info(f"Job_ID: {job_id}")
|
||||
app.logger.info(f"Image_ID: {image_id}")
|
||||
|
||||
# Almacenamos en un diccionario los datos a enviar a ogCore:
|
||||
data = {
|
||||
'job_id': 222, # Este no es un dato real (deberá pasarmelo ogCore previamente)
|
||||
'job_id': job_id,
|
||||
'image_id': image_id
|
||||
}
|
||||
# Llamamos al endpoint de ogCore, enviando los datos (de momento comento la llamada, porque la función llama a un endpoint inexistente):
|
||||
|
@ -252,7 +272,7 @@ def recall_ogcore(data):
|
|||
que estaba corriendo en un proceso independiente (no controlado por los endpoints).
|
||||
"""
|
||||
# Almacenamos la URL del endpoint de ogCore:
|
||||
endpoint_url = 'http://192.168.56.101:8006//ogcore/v1/test'
|
||||
endpoint_url = f"http://{ogcore_ip}:8006//ogcore/v1/test"
|
||||
|
||||
# Almacenamos los headers, y convertiomos "data" a JSON:
|
||||
headers = {'content-type': 'application/json'}
|
||||
|
@ -635,6 +655,7 @@ def import_image():
|
|||
ou_subdir = json_data.get("ou_subdir")
|
||||
remote_ip = json_data.get("repo_ip")
|
||||
remote_user = json_data.get("user")
|
||||
ogcore_ip = json_data.get("ogcore_ip")
|
||||
|
||||
# Evaluamos los parámetros obtenidos, para construir la ruta de la imagen:
|
||||
if ou_subdir == "none":
|
||||
|
@ -649,16 +670,20 @@ def import_image():
|
|||
# Ejecutamos el script "importImage.py" (con los parámetros almacenados), y almacenamos el resultado (pero sin esperar a que termine el proceso):
|
||||
result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='UTF8')
|
||||
|
||||
# Generamos el ID para identificar el trabajo asíncrono:
|
||||
job_id = '{}-{}'.format ('ImportImage', ''.join(random.choice('0123456789abcdef') for _ in range(8)))
|
||||
|
||||
# Evaluamos el resultado de la ejecución, y devolvemos una respuesta:
|
||||
if result.returncode is None:
|
||||
# Si el resultado es correcto, llamamos a la función "check_lock_local" en un hilo paralelo
|
||||
# (para que compruebe si la imagen se ha acabado de importar exitosamente):
|
||||
threading.Thread(target=check_lock_local, args=(image_file_path,)).start()
|
||||
threading.Thread(target=check_lock_local, args=(image_file_path, job_id,)).start()
|
||||
|
||||
# Informamos que la imagen se está importando, y salimos del endpoint:
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"output": "Importing image..."
|
||||
"output": "Importing image...",
|
||||
"job_id": job_id
|
||||
}), 200
|
||||
else:
|
||||
return jsonify({
|
||||
|
@ -709,6 +734,7 @@ def export_image():
|
|||
image_id = json_data.get("ID_img")
|
||||
remote_ip = json_data.get("repo_ip")
|
||||
remote_user = json_data.get("user")
|
||||
ogcore_ip = json_data.get("ogcore_ip")
|
||||
|
||||
# Obtenemos el nombre y la extensión de la imagen (y el subdirectorio de OU, si fuera el caso):
|
||||
param_dict = get_image_params(image_id, "repo")
|
||||
|
@ -732,16 +758,20 @@ def export_image():
|
|||
# Ejecutamos el script "exportImage.py" (con los parámetros almacenados), y almacenamos el resultado (pero sin esperar a que termine el proceso):
|
||||
result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='UTF8')
|
||||
|
||||
# Generamos el ID para identificar el trabajo asíncrono:
|
||||
job_id = '{}-{}'.format ('ExportImage', ''.join(random.choice('0123456789abcdef') for _ in range(8)))
|
||||
|
||||
# Evaluamos el resultado de la ejecución, y devolvemos una respuesta:
|
||||
if result.returncode is None:
|
||||
# Si el resultado es correcto, llamamos a la función "check_lock_remote" en un hilo paralelo
|
||||
# (para que compruebe si la imagen se ha acabado de exportar exitosamente):
|
||||
threading.Thread(target=check_lock_remote, args=(f"{repo_path}{image_file_path}", remote_ip, remote_user,)).start()
|
||||
threading.Thread(target=check_lock_remote, args=(f"{repo_path}{image_file_path}", remote_ip, remote_user, job_id,)).start()
|
||||
|
||||
# Informamos que la imagen se está exportando, y salimos del endpoint:
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"output": "Exporting image..."
|
||||
"output": "Exporting image...",
|
||||
"job_id": job_id
|
||||
}), 200
|
||||
else:
|
||||
return jsonify({
|
||||
|
@ -789,6 +819,7 @@ def create_torrent_sum():
|
|||
json_data = json.loads(request.data)
|
||||
image_name = json_data.get("image")
|
||||
ou_subdir = json_data.get("ou_subdir")
|
||||
ogcore_ip = json_data.get("ogcore_ip")
|
||||
|
||||
# Evaluamos los parámetros obtenidos, para construir la ruta de la imagen (relativa a "repo_path"):
|
||||
if ou_subdir == "none":
|
||||
|
@ -803,16 +834,20 @@ def create_torrent_sum():
|
|||
# Ejecutamos el script "createTorrentSum.py" (con los parámetros almacenados), y almacenamos el resultado (pero sin esperar a que termine el proceso):
|
||||
result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='UTF8')
|
||||
|
||||
# Generamos el ID para identificar el trabajo asíncrono:
|
||||
job_id = '{}-{}'.format ('CreateAuxiliarFiles', ''.join(random.choice('0123456789abcdef') for _ in range(8)))
|
||||
|
||||
# Evaluamos el resultado de la ejecución, y devolvemos una respuesta:
|
||||
if result.returncode is None:
|
||||
# Si el resultado es correcto, llamamos a la función "check_aux_files" en un hilo paralelo
|
||||
# (para que compruebe si se han creado todos los archivos auxiliares exitosamente):
|
||||
threading.Thread(target=check_aux_files, args=(f"{repo_path}{image_file_path}",)).start()
|
||||
threading.Thread(target=check_aux_files, args=(f"{repo_path}{image_file_path}", job_id,)).start()
|
||||
|
||||
# Informamos que los archivos auxiliares se están creando, y salimos del endpoint:
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"output": "Creating auxiliar files..."
|
||||
"output": "Creating auxiliar files...",
|
||||
"job_id": job_id
|
||||
}), 200
|
||||
else:
|
||||
return jsonify({
|
||||
|
|
|
@ -14,7 +14,7 @@ info:
|
|||
|
||||
Paquetes APT requeridos:
|
||||
- **uftp** (se puede instalar con "sudo DEBIAN_FRONTEND=noninteractive apt install uftp -y", para que no pida la ruta predeterminada)
|
||||
- **udpcast** (se puede instalar con "sudo apt install ./udpcast_20230924_amd64.deb", apuntando al paquete, que debe descargarse previamente)
|
||||
- **udpcast** (se puede instalar con "sudo apt install ./udpcast_20230924_amd64.deb", apuntando al paquete)
|
||||
- **ctorrent** (se puede instalar con "sudo apt install ctorrent")
|
||||
- **bittorrent** (se puede instalar con "sudo apt install bittorrent", pero previamente hay que añadir un repositorio de Debian)
|
||||
- **bittornado** (se puede instalar con "sudo apt install bittornado", pero previamente hay que añadir un repositorio de Debian)
|
||||
|
@ -26,14 +26,14 @@ info:
|
|||
- **flasgger** (se puede instalar con "sudo apt install python3-flasgger")
|
||||
|
||||
Para que todos los endpoints de la API funcionen con la configuración actual deben existir los siguientes directorios:
|
||||
- **/opt/opengnsys/images/**
|
||||
- **/opt/opengnsys/images_trash/** (debe estar en la misma unidad que el anterior, o tardarán mucho las eliminaciones y restauraciones)
|
||||
- **/opt/opengnsys/bin/** (aquí deben estar todos los scripts de Python, y el binario "udp-sender")
|
||||
- **/opt/opengnsys/etc/** (aquí se guardan los archivos "repoinfo.json" y "trashinfo.json")
|
||||
- **/opt/opengnsys/log/** (aquí se guardan los logs)
|
||||
- **/opt/opengnsys/ogrepository/images/**
|
||||
- **/opt/opengnsys/ogrepository/images_trash/** (debe estar en la misma partición que el anterior, o tardarán mucho las eliminaciones y restauraciones)
|
||||
- **/opt/opengnsys/ogrepository/bin/** (aquí deben estar todos los scripts de Python, y el binario "udp-sender")
|
||||
- **/opt/opengnsys/ogrepository/etc/** (aquí se guardan los archivos "repoinfo.json" y "trashinfo.json")
|
||||
- **/opt/opengnsys/ogrepository/log/** (aquí se guardan los logs)
|
||||
|
||||
Y también debe existir el siguiente archivo:
|
||||
- **/opt/opengnsys/etc/ogAdmRepo.cfg** (de aquí pilla la IP de ogRepository)
|
||||
- **/opt/opengnsys/ogrepository/etc/ogAdmRepo.cfg** (de aquí pilla la IP de ogRepository)
|
||||
|
||||
---
|
||||
|
||||
|
@ -238,7 +238,7 @@ paths:
|
|||
properties:
|
||||
directory:
|
||||
type: string
|
||||
example: "/opt/opengnsys/images"
|
||||
example: "/opt/opengnsys/ogrepository/images"
|
||||
images:
|
||||
type: array
|
||||
items:
|
||||
|
@ -322,7 +322,7 @@ paths:
|
|||
properties:
|
||||
directory:
|
||||
type: string
|
||||
example: "/opt/opengnsys/images_trash"
|
||||
example: "/opt/opengnsys/ogrepository/images_trash"
|
||||
images:
|
||||
type: array
|
||||
items:
|
||||
|
@ -424,7 +424,7 @@ paths:
|
|||
properties:
|
||||
directory:
|
||||
type: string
|
||||
example: "/opt/opengnsys/images"
|
||||
example: "/opt/opengnsys/ogrepository/images"
|
||||
images:
|
||||
type: array
|
||||
items:
|
||||
|
@ -1528,7 +1528,7 @@ paths:
|
|||
properties:
|
||||
ID_img:
|
||||
type: string
|
||||
example: "image_id"
|
||||
example: "22735b9070e4a8043371b8c6ae52b90d"
|
||||
repo_ip:
|
||||
type: string
|
||||
description: "Dirección IP del repositorio remoto"
|
||||
|
@ -1658,7 +1658,6 @@ paths:
|
|||
example: "Windows10.img"
|
||||
ou_subdir:
|
||||
type: string
|
||||
description: "Subdirectorio correspondiente a la OU (o 'none' si no es el caso)"
|
||||
example: "none"
|
||||
responses:
|
||||
"200":
|
||||
|
|
|
@ -9,10 +9,10 @@ Este script comprueba la integridad de la imagen que recibe como parámetro, vol
|
|||
------------
|
||||
sys.argv[1] - Nombre completo de la imagen a chequear (con o sin ruta), pero incluyendo el subdirectorio correspondiente a la OU, si es el caso.
|
||||
- Ejemplo1: image1.img
|
||||
- Ejemplo2: /opt/opengnsys/images/image1.img
|
||||
- Ejemplo2: /opt/opengnsys/ogrepository/images/image1.img
|
||||
- Ejemplo3: ou_subdir/image1.img
|
||||
- Ejemplo4: /ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/images/ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
|
||||
Sintaxis
|
||||
----------
|
||||
|
@ -21,10 +21,10 @@ sys.argv[1] - Nombre completo de la imagen a chequear (con o sin ruta), pero inc
|
|||
Ejemplos
|
||||
---------
|
||||
./checkImage.py image1.img
|
||||
./checkImage.py /opt/opengnsys/images/image1.img
|
||||
./checkImage.py /opt/opengnsys/ogrepository/images/image1.img
|
||||
./checkImage.py ou_subdir/image1.img
|
||||
./checkImage.py /ou_subdir/image1.img
|
||||
./checkImage.py /opt/opengnsys/images/ou_subdir/image1.img
|
||||
./checkImage.py /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
"""
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -41,7 +41,7 @@ import hashlib
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -55,10 +55,10 @@ def show_help():
|
|||
help_text = f"""
|
||||
Sintaxis: {script_name} [ou_subdir/]image_name|/image_path/image_name
|
||||
Ejemplo1: {script_name} image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/images/image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/ogrepository/images/image1.img
|
||||
Ejemplo3: {script_name} ou_subdir/image1.img
|
||||
Ejemplo4: {script_name} /ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/images/ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
|
|
|
@ -12,10 +12,10 @@ Debería ser llamado por ogCore u ogLive cada vez que se cree una imagen.
|
|||
------------
|
||||
sys.argv[1] - Nombre completo de la imagen (con o sin ruta), pero incluyendo el subdirectorio correspondiente a la OU, si es el caso.
|
||||
- Ejemplo1: image1.img
|
||||
- Ejemplo2: /opt/opengnsys/images/image1.img
|
||||
- Ejemplo2: /opt/opengnsys/ogrepository/images/image1.img
|
||||
- Ejemplo3: ou_subdir/image1.img
|
||||
- Ejemplo4: /ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/images/ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
|
||||
Sintaxis
|
||||
----------
|
||||
|
@ -24,10 +24,10 @@ sys.argv[1] - Nombre completo de la imagen (con o sin ruta), pero incluyendo el
|
|||
Ejemplos
|
||||
---------
|
||||
./createTorrentSum.py image1.img
|
||||
./createTorrentSum.py /opt/opengnsys/images/image1.img
|
||||
./createTorrentSum.py /opt/opengnsys/ogrepository/images/image1.img
|
||||
./createTorrentSum.py ou_subdir/image1.img
|
||||
./createTorrentSum.py /ou_subdir/image1.img
|
||||
./createTorrentSum.py /opt/opengnsys/images/ou_subdir/image1.img
|
||||
./createTorrentSum.py /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
"""
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -45,9 +45,9 @@ import hashlib
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
config_file = '/opt/opengnsys/etc/ogAdmRepo.cfg'
|
||||
update_repo_script = '/opt/opengnsys/bin/updateRepoInfo.py'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
config_file = '/opt/opengnsys/ogrepository/etc/ogAdmRepo.cfg'
|
||||
update_repo_script = '/opt/opengnsys/ogrepository/bin/updateRepoInfo.py'
|
||||
|
||||
|
||||
|
||||
|
@ -62,10 +62,10 @@ def show_help():
|
|||
help_text = f"""
|
||||
Sintaxis: {script_name} [ou_subdir/]image_name|/image_path/image_name
|
||||
Ejemplo1: {script_name} image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/images/image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/ogrepository/images/image1.img
|
||||
Ejemplo3: {script_name} ou_subdir/image1.img
|
||||
Ejemplo4: {script_name} /ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/images/ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
|
|
|
@ -11,10 +11,10 @@ Llama al script "updateRepoInfo.py", para actualizar la información del reposit
|
|||
------------
|
||||
sys.argv[1] - Nombre completo de la imagen a eliminar (con o sin ruta), pero incluyendo el subdirectorio correspondiente a la OU, si es el caso.
|
||||
- Ejemplo1: image1.img
|
||||
- Ejemplo2: /opt/opengnsys/images/image1.img
|
||||
- Ejemplo2: /opt/opengnsys/ogrepository/images/image1.img
|
||||
- Ejemplo3: ou_subdir/image1.img
|
||||
- Ejemplo4: /ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/images/ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
|
||||
sys.argv[2] - Parámetro opcional para especificar que la eliminación sea permanente (sin papelera).
|
||||
- Ejemplo: -p
|
||||
|
@ -26,10 +26,10 @@ sys.argv[2] - Parámetro opcional para especificar que la eliminación sea perma
|
|||
Ejemplos
|
||||
---------
|
||||
./deleteImage.py image1.img -p
|
||||
./deleteImage.py /opt/opengnsys/images/image1.img -p
|
||||
./deleteImage.py /opt/opengnsys/ogrepository/images/image1.img -p
|
||||
./deleteImage.py ou_subdir/image1.img -p
|
||||
./deleteImage.py /ou_subdir/image1.img
|
||||
./deleteImage.py /opt/opengnsys/images/ou_subdir/image1.img
|
||||
./deleteImage.py /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
"""
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -49,9 +49,9 @@ import subprocess
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
trash_path = '/opt/opengnsys/images_trash/'
|
||||
update_repo_script = '/opt/opengnsys/bin/updateRepoInfo.py'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
trash_path = '/opt/opengnsys/ogrepository/images_trash/'
|
||||
update_repo_script = '/opt/opengnsys/ogrepository/bin/updateRepoInfo.py'
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -66,10 +66,10 @@ def show_help():
|
|||
help_text = f"""
|
||||
Sintaxis: {script_name} [ou_subdir/]image_name|/image_path/image_name [-p]
|
||||
Ejemplo1: {script_name} image1.img -p
|
||||
Ejemplo2: {script_name} /opt/opengnsys/images/image1.img -p
|
||||
Ejemplo2: {script_name} /opt/opengnsys/ogrepository/images/image1.img -p
|
||||
Ejemplo3: {script_name} ou_subdir/image1.img -p
|
||||
Ejemplo4: {script_name} /ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/images/ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
|
|
|
@ -9,10 +9,10 @@ Llama al script "updateTrashInfo.py", para actualizar la información de las im
|
|||
------------
|
||||
sys.argv[1] - Nombre completo de la imagen a eliminar (con o sin ruta), pero incluyendo el subdirectorio correspondiente a la OU, si es el caso.
|
||||
- Ejemplo1: image1.img
|
||||
- Ejemplo2: /opt/opengnsys/images_trash/image1.img
|
||||
- Ejemplo2: /opt/opengnsys/ogrepository/images_trash/image1.img
|
||||
- Ejemplo3: ou_subdir/image1.img
|
||||
- Ejemplo4: /ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/images_trash/ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/ogrepository/images_trash/ou_subdir/image1.img
|
||||
|
||||
Sintaxis
|
||||
----------
|
||||
|
@ -21,10 +21,10 @@ sys.argv[1] - Nombre completo de la imagen a eliminar (con o sin ruta), pero inc
|
|||
Ejemplos
|
||||
---------
|
||||
./deleteTrashImage.py image1.img
|
||||
./deleteTrashImage.py /opt/opengnsys/images_trash/image1.img
|
||||
./deleteTrashImage.py /opt/opengnsys/ogrepository/images_trash/image1.img
|
||||
./deleteTrashImage.py ou_subdir/image1.img
|
||||
./deleteTrashImage.py /ou_subdir/image1.img
|
||||
./deleteTrashImage.py /opt/opengnsys/images_trash/ou_subdir/image1.img
|
||||
./deleteTrashImage.py /opt/opengnsys/ogrepository/images_trash/ou_subdir/image1.img
|
||||
"""
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -41,8 +41,8 @@ import subprocess
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
trash_path = '/opt/opengnsys/images_trash/'
|
||||
update_trash_script = '/opt/opengnsys/bin/updateTrashInfo.py'
|
||||
trash_path = '/opt/opengnsys/ogrepository/images_trash/' # No borrar la barra final
|
||||
update_trash_script = '/opt/opengnsys/ogrepository/bin/updateTrashInfo.py'
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -57,10 +57,10 @@ def show_help():
|
|||
help_text = f"""
|
||||
Sintaxis: {script_name} [ou_subdir/]image_name|/image_path/image_name
|
||||
Ejemplo1: {script_name} image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/images_trash/image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/ogrepository/images_trash/image1.img
|
||||
Ejemplo3: {script_name} ou_subdir/image1.img
|
||||
Ejemplo4: {script_name} /ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/images_trash/ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/ogrepository/images_trash/ou_subdir/image1.img
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
|
|
|
@ -13,10 +13,10 @@ Librerías Python requeridas: "paramiko" (se puede instalar con "sudo apt instal
|
|||
------------
|
||||
sys.argv[1] - Nombre completo de la imagen a exportar (con o sin ruta), pero incluyendo el subdirectorio correspondiente a la OU, si es el caso.
|
||||
- Ejemplo1: image1.img
|
||||
- Ejemplo2: /opt/opengnsys/images/image1.img
|
||||
- Ejemplo2: /opt/opengnsys/ogrepository/images/image1.img
|
||||
- Ejemplo3: ou_subdir/image1.img
|
||||
- Ejemplo4: /ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/images/ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
|
||||
sys.argv[2] - IP o hostname del repositorio remoto.
|
||||
- Ejemplo1: 192.168.56.100
|
||||
|
@ -33,10 +33,10 @@ sys.argv[3] - Usuario con el que conectar al repositorio remoto.
|
|||
Ejemplos
|
||||
---------
|
||||
./exportImage.py image1.img 192.168.56.100 user
|
||||
./exportImage.py /opt/opengnsys/images/image1.img 192.168.56.100 user
|
||||
./exportImage.py /opt/opengnsys/ogrepository/images/image1.img 192.168.56.100 user
|
||||
./exportImage.py ou_subdir/image1.img remote_hostname user
|
||||
./exportImage.py /ou_subdir/image1.img remote_hostname root
|
||||
./exportImage.py /opt/opengnsys/images/ou_subdir/image1.img remote_hostname root
|
||||
./exportImage.py /opt/opengnsys/ogrepository/images/ou_subdir/image1.img remote_hostname root
|
||||
"""
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -57,7 +57,7 @@ import warnings
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -71,10 +71,10 @@ def show_help():
|
|||
help_text = f"""
|
||||
Sintaxis: {script_name} [ou_subdir/]image_name|/image_path/image_name remote_host remote_user
|
||||
Ejemplo1: {script_name} image1.img 192.168.56.100 user
|
||||
Ejemplo2: {script_name} /opt/opengnsys/images/image1.img 192.168.56.100 user
|
||||
Ejemplo2: {script_name} /opt/opengnsys/ogrepository/images/image1.img 192.168.56.100 user
|
||||
Ejemplo3: {script_name} ou_subdir/image1.img remote_hostname user
|
||||
Ejemplo4: {script_name} /ou_subdir/image1.img remote_hostname root
|
||||
Ejemplo5: {script_name} /opt/opengnsys/images/ou_subdir/image1.img remote_hostname root
|
||||
Ejemplo5: {script_name} /opt/opengnsys/ogrepository/images/ou_subdir/image1.img remote_hostname root
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Este script obtiene y devuelve la interfaz de red asociada a la IP especificada en el archivo "/opt/opengnsys/etc/ogAdmRepo.cfg" (en la clave "IPlocal").
|
||||
Este script obtiene y devuelve la interfaz de red asociada a la IP especificada en el archivo "/opt/opengnsys/ogrepository/etc/ogAdmRepo.cfg" (en la clave "IPlocal").
|
||||
En principio, debería hacer lo mismo que el script bash original (cuyo nombre es "getRepoIface", a secas).
|
||||
|
||||
No recibe ningún parámetro, y siempre es llamado por otros scripts, que necesitan dicha interfaz (por ejemplo, "sendFileMcast").
|
||||
|
@ -21,7 +21,7 @@ import struct
|
|||
# VARIABLES
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
config_file = '/opt/opengnsys/etc/ogAdmRepo.cfg'
|
||||
config_file = '/opt/opengnsys/ogrepository/etc/ogAdmRepo.cfg'
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -40,8 +40,8 @@ import json
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_file = '/opt/opengnsys/etc/repoinfo.json'
|
||||
trash_file = '/opt/opengnsys/etc/trashinfo.json'
|
||||
repo_file = '/opt/opengnsys/ogrepository/etc/repoinfo.json'
|
||||
trash_file = '/opt/opengnsys/ogrepository/etc/trashinfo.json'
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -23,7 +23,7 @@ import sys
|
|||
# VARIABLES
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -23,7 +23,7 @@ import sys
|
|||
# VARIABLES
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -13,10 +13,10 @@ Librerías Python requeridas: "paramiko" (se puede instalar con "sudo apt instal
|
|||
------------
|
||||
sys.argv[1] - Nombre completo de la imagen a importar (con o sin ruta), pero incluyendo el subdirectorio correspondiente a la OU, si es el caso.
|
||||
- Ejemplo1: image1.img
|
||||
- Ejemplo2: /opt/opengnsys/images/image1.img
|
||||
- Ejemplo2: /opt/opengnsys/ogrepository/images/image1.img
|
||||
- Ejemplo3: ou_subdir/image1.img
|
||||
- Ejemplo4: /ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/images/ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
|
||||
sys.argv[2] - IP o hostname del repositorio remoto.
|
||||
- Ejemplo1: 192.168.56.100
|
||||
|
@ -33,10 +33,10 @@ sys.argv[3] - Usuario con el que conectar al repositorio remoto.
|
|||
Ejemplos
|
||||
---------
|
||||
./importImage.py image1.img 192.168.56.100 user
|
||||
./importImage.py /opt/opengnsys/images/image1.img 192.168.56.100 user
|
||||
./importImage.py /opt/opengnsys/ogrepository/images/image1.img 192.168.56.100 user
|
||||
./importImage.py ou_subdir/image1.img remote_hostname user
|
||||
./importImage.py /ou_subdir/image1.img remote_hostname root
|
||||
./importImage.py /opt/opengnsys/images/ou_subdir/image1.img remote_hostname root
|
||||
./importImage.py /opt/opengnsys/ogrepository/images/ou_subdir/image1.img remote_hostname root
|
||||
"""
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -57,8 +57,8 @@ import warnings
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
update_repo_script = '/opt/opengnsys/bin/updateRepoInfo.py'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
update_repo_script = '/opt/opengnsys/ogrepository/bin/updateRepoInfo.py'
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -72,10 +72,10 @@ def show_help():
|
|||
help_text = f"""
|
||||
Sintaxis: {script_name} [ou_subdir/]image_name|/image_path/image_name remote_host remote_user
|
||||
Ejemplo1: {script_name} image1.img 192.168.56.100 user
|
||||
Ejemplo2: {script_name} /opt/opengnsys/images/image1.img 192.168.56.100 user
|
||||
Ejemplo2: {script_name} /opt/opengnsys/ogrepository/images/image1.img 192.168.56.100 user
|
||||
Ejemplo3: {script_name} ou_subdir/image1.img remote_hostname user
|
||||
Ejemplo4: {script_name} /ou_subdir/image1.img remote_hostname root
|
||||
Ejemplo5: {script_name} /opt/opengnsys/images/ou_subdir/image1.img remote_hostname root
|
||||
Ejemplo5: {script_name} /opt/opengnsys/ogrepository/images/ou_subdir/image1.img remote_hostname root
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Este script recupera la imagen que recibe como parámetro (y todos sus archivos asociados), moviendo los archivos a "/opt/opengnsys/images", desde la papelera
|
||||
Este script recupera la imagen que recibe como parámetro (y todos sus archivos asociados), moviendo los archivos a "/opt/opengnsys/ogrepository/images", desde la papelera
|
||||
(respetando el subdirectorio correspondiente a la OU, si fuera el caso).
|
||||
Llama al script "updateRepoInfo.py", para actualizar la información del repositorio.
|
||||
|
||||
|
@ -10,10 +10,10 @@ Llama al script "updateRepoInfo.py", para actualizar la información del reposit
|
|||
------------
|
||||
sys.argv[1] - Nombre completo de la imagen a recuperar (con o sin ruta), pero incluyendo el subdirectorio correspondiente a la OU, si es el caso.
|
||||
- Ejemplo1: image1.img
|
||||
- Ejemplo2: /opt/opengnsys/images_trash/image1.img
|
||||
- Ejemplo2: /opt/opengnsys/ogrepository/images_trash/image1.img
|
||||
- Ejemplo3: ou_subdir/image1.img
|
||||
- Ejemplo4: /ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/images_trash/ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/ogrepository/images_trash/ou_subdir/image1.img
|
||||
|
||||
Sintaxis
|
||||
----------
|
||||
|
@ -22,10 +22,10 @@ sys.argv[1] - Nombre completo de la imagen a recuperar (con o sin ruta), pero in
|
|||
Ejemplos
|
||||
---------
|
||||
./recoverImage.py image1.img
|
||||
./recoverImage.py /opt/opengnsys/images_trash/image1.img
|
||||
./recoverImage.py /opt/opengnsys/ogrepository/images_trash/image1.img
|
||||
./recoverImage.py ou_subdir/image1.img
|
||||
./recoverImage.py /ou_subdir/image1.img
|
||||
./recoverImage.py /opt/opengnsys/images_trash/ou_subdir/image1.img
|
||||
./recoverImage.py /opt/opengnsys/ogrepository/images_trash/ou_subdir/image1.img
|
||||
"""
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -43,9 +43,9 @@ import subprocess
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
trash_path = '/opt/opengnsys/images_trash/'
|
||||
update_repo_script = '/opt/opengnsys/bin/updateRepoInfo.py'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
trash_path = '/opt/opengnsys/ogrepository/images_trash/' # No borrar la barra final
|
||||
update_repo_script = '/opt/opengnsys/ogrepository/bin/updateRepoInfo.py'
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -59,10 +59,10 @@ def show_help():
|
|||
help_text = f"""
|
||||
Sintaxis: {script_name} [ou_subdir/]image_name|/image_path/image_name
|
||||
Ejemplo1: {script_name} image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/images_trash/image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/ogrepository/images_trash/image1.img
|
||||
Ejemplo3: {script_name} ou_subdir/image1.img
|
||||
Ejemplo4: {script_name} /ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/images_trash/ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/ogrepository/images_trash/ou_subdir/image1.img
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import subprocess
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images' # En este caso, no lleva barra final
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -38,11 +38,11 @@ import time
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images' # En este caso, no lleva barra final
|
||||
|
||||
bttrack_port = 6969
|
||||
bttrack_dfile = '/tmp/dstate'
|
||||
bttrack_log = '/opt/opengnsys/log/bttrack.log'
|
||||
bttrack_log = '/opt/opengnsys/ogrepository/log/bttrack.log'
|
||||
bttrack_interval = 10
|
||||
bttrack_allow_get = 0 # Este valor impide la descarga desde clientes no autorizados
|
||||
|
||||
|
|
|
@ -9,10 +9,10 @@ En principio, debería hacer lo mismo que el script bash original (cuyo nombre e
|
|||
------------
|
||||
sys.argv[1] - Nombre completo de la imagen a enviar (con o sin ruta), pero incluyendo el subdirectorio correspondiente a la OU, si es el caso.
|
||||
- Ejemplo1: image1.img
|
||||
- Ejemplo2: /opt/opengnsys/images/image1.img
|
||||
- Ejemplo2: /opt/opengnsys/ogrepository/images/image1.img
|
||||
- Ejemplo3: ou_subdir/image1.img
|
||||
- Ejemplo4: /ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/images/ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
|
||||
sys.argv[2] - Parámetros Multicast (en formato "Port:Duplex:IP:Mpbs:Nclients:Timeout")
|
||||
- Ejemplo: 9000:full:239.194.17.2:70M:20:120
|
||||
|
@ -24,10 +24,10 @@ sys.argv[2] - Parámetros Multicast (en formato "Port:Duplex:IP:Mpbs:Nclients:Ti
|
|||
Ejemplos
|
||||
---------
|
||||
./sendFileMcast.py image1.img 9000:full:239.194.17.2:70M:20:120
|
||||
./sendFileMcast.py /opt/opengnsys/images/image1.img 9000:full:239.194.17.2:70M:20:120
|
||||
./sendFileMcast.py /opt/opengnsys/ogrepository/images/image1.img 9000:full:239.194.17.2:70M:20:120
|
||||
./sendFileMcast.py ou_subdir/image1.img 9000:full:239.194.17.2:70M:20:120
|
||||
./sendFileMcast.py /ou_subdir/image1.img 9000:full:239.194.17.2:70M:20:120
|
||||
./sendFileMcast.py /opt/opengnsys/images/ou_subdir/image1.img 9000:full:239.194.17.2:70M:20:120
|
||||
./sendFileMcast.py /opt/opengnsys/ogrepository/images/ou_subdir/image1.img 9000:full:239.194.17.2:70M:20:120
|
||||
"""
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -44,10 +44,10 @@ import subprocess
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
bin_path = '/opt/opengnsys/bin/'
|
||||
repo_iface_script = '/opt/opengnsys/bin/getRepoIface.py'
|
||||
log_file = '/opt/opengnsys/log/udpcast.log'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
bin_path = '/opt/opengnsys/ogrepository/bin/' # No borrar la barra final
|
||||
repo_iface_script = '/opt/opengnsys/ogrepository/bin/getRepoIface.py'
|
||||
log_file = '/opt/opengnsys/ogrepository/log/udpcast.log'
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -61,10 +61,10 @@ def show_help():
|
|||
help_text = f"""
|
||||
Sintaxis: {script_name} [ou_subdir/]image_name|/image_path/image_name Port:Duplex:IP:Mpbs:Nclients:Timeout
|
||||
Ejemplo1: {script_name} image1.img 9000:full-duplex:239.194.17.2:70M:20:120
|
||||
Ejemplo2: {script_name} /opt/opengnsys/images/image1.img 9000:full-duplex:239.194.17.2:70M:20:120
|
||||
Ejemplo2: {script_name} /opt/opengnsys/ogrepository/images/image1.img 9000:full-duplex:239.194.17.2:70M:20:120
|
||||
Ejemplo3: {script_name} ou_subdir/image1.img 9000:full-duplex:239.194.17.2:70M:20:120
|
||||
Ejemplo4: {script_name} /ou_subdir/image1.img 9000:full-duplex:239.194.17.2:70M:20:120
|
||||
Ejemplo5: {script_name} /opt/opengnsys/images/ou_subdir/image1.img 9000:full-duplex:239.194.17.2:70M:20:120
|
||||
Ejemplo5: {script_name} /opt/opengnsys/ogrepository/images/ou_subdir/image1.img 9000:full-duplex:239.194.17.2:70M:20:120
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
|
|
|
@ -13,10 +13,10 @@ Paquetes APT requeridos: "uftp" (se puede instalar con "sudo apt install uftp").
|
|||
------------
|
||||
sys.argv[1] - Nombre completo de la imagen a enviar (con o sin ruta), pero incluyendo el subdirectorio correspondiente a la OU, si es el caso.
|
||||
- Ejemplo1: image1.img
|
||||
- Ejemplo2: /opt/opengnsys/images/image1.img
|
||||
- Ejemplo2: /opt/opengnsys/ogrepository/images/image1.img
|
||||
- Ejemplo3: ou_subdir/image1.img
|
||||
- Ejemplo4: /ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/images/ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
|
||||
sys.argv[2] - Parámetros Multicast/Unicast (en formato "Port:IP:Bitrate")
|
||||
- Ejemplo1: 9000:239.194.17.2:100M
|
||||
|
@ -29,10 +29,10 @@ sys.argv[2] - Parámetros Multicast/Unicast (en formato "Port:IP:Bitrate")
|
|||
Ejemplos
|
||||
---------
|
||||
./sendFileUFTP.py image1.img 9000:239.194.17.2:100M
|
||||
./sendFileUFTP.py /opt/opengnsys/images/image1.img 9000:239.194.17.2:100M
|
||||
./sendFileUFTP.py /opt/opengnsys/ogrepository/images/image1.img 9000:239.194.17.2:100M
|
||||
./sendFileUFTP.py ou_subdir/image1.img 9000:192.168.56.101:1G
|
||||
./sendFileUFTP.py /ou_subdir/image1.img 9000:192.168.56.101:1G
|
||||
./sendFileUFTP.py /opt/opengnsys/images/ou_subdir/image1.img 9000:192.168.56.101:1G
|
||||
./sendFileUFTP.py /opt/opengnsys/ogrepository/images/ou_subdir/image1.img 9000:192.168.56.101:1G
|
||||
"""
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -49,9 +49,9 @@ import subprocess
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
cache_path = '/opt/opengnsys/cache'
|
||||
log_file = '/opt/opengnsys/log/uftp.log'
|
||||
log_file = '/opt/opengnsys/ogrepository/log/uftp.log'
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -65,10 +65,10 @@ def show_help():
|
|||
help_text = f"""
|
||||
Sintaxis: {script_name} [ou_subdir/]image_name|/image_path/image_name Port:IP:Bitrate
|
||||
Ejemplo1: {script_name} image1.img 9000:239.194.17.2:100M
|
||||
Ejemplo2: {script_name} /opt/opengnsys/images/image1.img 9000:239.194.17.2:100M
|
||||
Ejemplo2: {script_name} /opt/opengnsys/ogrepository/images/image1.img 9000:239.194.17.2:100M
|
||||
Ejemplo3: {script_name} ou_subdir/image1.img 9000:192.168.56.101:1G
|
||||
Ejemplo4: {script_name} /ou_subdir/image1.img 9000:192.168.56.101:1G
|
||||
Ejemplo5: {script_name} /opt/opengnsys/images/ou_subdir/image1.img 9000:192.168.56.101:1G
|
||||
Ejemplo5: {script_name} /opt/opengnsys/ogrepository/images/ou_subdir/image1.img 9000:192.168.56.101:1G
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
|
|
|
@ -10,10 +10,10 @@ Este script finaliza el proceso "udp-sender" asociado a la imagen que recibe com
|
|||
------------
|
||||
sys.argv[1] - Nombre completo de la imagen a cancelar su transmisión (con o sin ruta), pero incluyendo el subdirectorio correspondiente a la OU, si es el caso.
|
||||
- Ejemplo1: image1.img
|
||||
- Ejemplo2: /opt/opengnsys/images/image1.img
|
||||
- Ejemplo2: /opt/opengnsys/ogrepository/images/image1.img
|
||||
- Ejemplo3: ou_subdir/image1.img
|
||||
- Ejemplo4: /ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/images/ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
|
||||
Sintaxis
|
||||
----------
|
||||
|
@ -22,10 +22,10 @@ sys.argv[1] - Nombre completo de la imagen a cancelar su transmisión (con o sin
|
|||
Ejemplos
|
||||
---------
|
||||
./stopUDPcast.py image1.img
|
||||
./stopUDPcast.py /opt/opengnsys/images/image1.img
|
||||
./stopUDPcast.py /opt/opengnsys/ogrepository/images/image1.img
|
||||
./stopUDPcast.py ou_subdir/image1.img
|
||||
./stopUDPcast.py /ou_subdir/image1.img
|
||||
./stopUDPcast.py /opt/opengnsys/images/ou_subdir/image1.img
|
||||
./stopUDPcast.py /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
"""
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -42,7 +42,7 @@ import subprocess
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -56,10 +56,10 @@ def show_help():
|
|||
help_text = f"""
|
||||
Sintaxis: {script_name} [ou_subdir/]image_name|/image_path/image_name
|
||||
Ejemplo1: {script_name} image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/images/image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/ogrepository/images/image1.img
|
||||
Ejemplo3: {script_name} ou_subdir/image1.img
|
||||
Ejemplo4: {script_name} /ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/images/ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
|
|
|
@ -10,10 +10,10 @@ Este script finaliza el proceso "uftp" asociado a la imagen que recibe como par
|
|||
------------
|
||||
sys.argv[1] - Nombre completo de la imagen a cancelar su transmisión (con o sin ruta), pero incluyendo el subdirectorio correspondiente a la OU, si es el caso.
|
||||
- Ejemplo1: image1.img
|
||||
- Ejemplo2: /opt/opengnsys/images/image1.img
|
||||
- Ejemplo2: /opt/opengnsys/ogrepository/images/image1.img
|
||||
- Ejemplo3: ou_subdir/image1.img
|
||||
- Ejemplo4: /ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/images/ou_subdir/image1.img
|
||||
- Ejemplo5: /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
|
||||
Sintaxis
|
||||
----------
|
||||
|
@ -22,10 +22,10 @@ sys.argv[1] - Nombre completo de la imagen a cancelar su transmisión (con o sin
|
|||
Ejemplos
|
||||
---------
|
||||
./stopUDPcast.py image1.img
|
||||
./stopUDPcast.py /opt/opengnsys/images/image1.img
|
||||
./stopUDPcast.py /opt/opengnsys/ogrepository/images/image1.img
|
||||
./stopUDPcast.py ou_subdir/image1.img
|
||||
./stopUDPcast.py /ou_subdir/image1.img
|
||||
./stopUDPcast.py /opt/opengnsys/images/ou_subdir/image1.img
|
||||
./stopUDPcast.py /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
"""
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -42,7 +42,7 @@ import subprocess
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
script_name = os.path.basename(__file__)
|
||||
repo_path = '/opt/opengnsys/images/'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images/' # No borrar la barra final
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
@ -56,10 +56,10 @@ def show_help():
|
|||
help_text = f"""
|
||||
Sintaxis: {script_name} [ou_subdir/]image_name|/image_path/image_name
|
||||
Ejemplo1: {script_name} image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/images/image1.img
|
||||
Ejemplo2: {script_name} /opt/opengnsys/ogrepository/images/image1.img
|
||||
Ejemplo3: {script_name} ou_subdir/image1.img
|
||||
Ejemplo4: {script_name} /ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/images/ou_subdir/image1.img
|
||||
Ejemplo5: {script_name} /opt/opengnsys/ogrepository/images/ou_subdir/image1.img
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Este script actualiza la información de las imágenes del repositorio, reflejándola en el archivo "/opt/opengnsys/etc/repoinfo.json",
|
||||
Este script actualiza la información de las imágenes del repositorio, reflejándola en el archivo "/opt/opengnsys/ogrepository/etc/repoinfo.json",
|
||||
añadiendo información de las imágenes nuevas, y borrando la información de las imágenes que fueron eliminadas.
|
||||
La información es obtenida desde archivos "<imagen_name>.info", que originalmente eran eliminados,
|
||||
pero que en esta versión son renombrados a "<imagen_name>.info.checked", obteniendo la misma funcionalidad.
|
||||
|
@ -27,9 +27,9 @@ import shutil
|
|||
# VARIABLES
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
repo_path = '/opt/opengnsys/images'
|
||||
info_file = '/opt/opengnsys/etc/repoinfo.json'
|
||||
update_trash_script = '/opt/opengnsys/bin/updateTrashInfo.py'
|
||||
repo_path = '/opt/opengnsys/ogrepository/images' # En este caso, no lleva barra final
|
||||
info_file = '/opt/opengnsys/ogrepository/etc/repoinfo.json'
|
||||
update_trash_script = '/opt/opengnsys/ogrepository/bin/updateTrashInfo.py'
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Este script actualiza la información de las imágenes de la papelera del repositorio, reflejándola en el archivo "/opt/opengnsys/etc/trashinfo.json",
|
||||
Este script actualiza la información de las imágenes de la papelera del repositorio, reflejándola en el archivo "/opt/opengnsys/ogrepository/etc/trashinfo.json",
|
||||
añadiendo información de las nuevas imágenes eliminadas, y borrando la información de las imágenes que fueron restauradas (o que ya no están en la papelera).
|
||||
La información es obtenida desde archivos "<imagen_name>.info.checked", cuyo nombre original era "<imagen_name>.info"
|
||||
(pero que fueron renombrados al ser insertada su información en el archivo ""/opt/opengnsys/etc/repoinfo.json", antes de ser eliminadas).
|
||||
(pero que fueron renombrados al ser insertada su información en el archivo ""/opt/opengnsys/ogrepository/etc/repoinfo.json", antes de ser eliminadas).
|
||||
|
||||
No recibe ningún parámetro, y no necesita ser llamado explícitamente (porque lo llama el script "updateRepoInfo.py")".
|
||||
"""
|
||||
|
@ -27,8 +27,8 @@ import shutil
|
|||
# VARIABLES
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
trash_path = '/opt/opengnsys/images_trash'
|
||||
info_file = '/opt/opengnsys/etc/trashinfo.json'
|
||||
trash_path = '/opt/opengnsys/ogrepository/images_trash' # En este caso, no lleva barra final
|
||||
info_file = '/opt/opengnsys/ogrepository/etc/trashinfo.json'
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue