92 lines
3.3 KiB
Python
92 lines
3.3 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Script para probar backup manual vía API
|
|
"""
|
|
|
|
import requests
|
|
import json
|
|
|
|
|
|
def test_manual_backup_api():
|
|
"""Probar backup manual vía API HTTP"""
|
|
|
|
base_url = "http://127.0.0.1:5120"
|
|
|
|
try:
|
|
# 1. Obtener lista de proyectos
|
|
print("1. Obteniendo lista de proyectos...")
|
|
response = requests.get(f"{base_url}/api/projects")
|
|
|
|
if response.status_code == 200:
|
|
data = response.json()
|
|
projects = data.get("projects", [])
|
|
print(f" ✅ Proyectos encontrados: {len(projects)}")
|
|
|
|
if projects:
|
|
project = projects[0]
|
|
project_id = project["id"]
|
|
project_name = project["name"]
|
|
print(f" Probando con: {project_name}")
|
|
|
|
# 2. Ejecutar backup manual
|
|
print("2. Ejecutando backup manual...")
|
|
backup_response = requests.post(
|
|
f"{base_url}/api/projects/{project_id}/backup",
|
|
headers={"Content-Type": "application/json"},
|
|
)
|
|
|
|
if backup_response.status_code == 200:
|
|
backup_data = backup_response.json()
|
|
print(" ✅ BACKUP EXITOSO!")
|
|
print(f" Mensaje: {backup_data.get('message')}")
|
|
print(f" Archivo: {backup_data.get('backup_file')}")
|
|
print(f" Tamaño: {backup_data.get('file_size_mb', 'N/A')} MB")
|
|
else:
|
|
print(" ❌ BACKUP FALLÓ!")
|
|
print(f" Status: {backup_response.status_code}")
|
|
print(f" Error: {backup_response.text}")
|
|
|
|
# 3. Probar actualización de configuración
|
|
print("3. Probando actualización de configuración...")
|
|
config_data = {
|
|
"schedule_config": {
|
|
"schedule": "hourly",
|
|
"schedule_time": "15:30",
|
|
"enabled": False,
|
|
}
|
|
}
|
|
|
|
config_response = requests.put(
|
|
f"{base_url}/api/projects/{project_id}/config",
|
|
headers={"Content-Type": "application/json"},
|
|
json=config_data,
|
|
)
|
|
|
|
if config_response.status_code == 200:
|
|
print(" ✅ CONFIGURACIÓN ACTUALIZADA!")
|
|
config_result = config_response.json()
|
|
print(f" Status: {config_result.get('status')}")
|
|
else:
|
|
print(" ❌ ACTUALIZACIÓN FALLÓ!")
|
|
print(f" Status: {config_response.status_code}")
|
|
print(f" Error: {config_response.text}")
|
|
|
|
else:
|
|
print(" ❌ No hay proyectos para probar")
|
|
else:
|
|
print(f" ❌ Error obteniendo proyectos: {response.status_code}")
|
|
print(f" {response.text}")
|
|
|
|
except requests.exceptions.ConnectionError:
|
|
print("❌ ERROR: No se pudo conectar al servidor")
|
|
print(" Asegúrate de que la aplicación Flask esté ejecutándose")
|
|
except Exception as e:
|
|
print(f"❌ ERROR INESPERADO: {e}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print("AutoBackups - Test API via HTTP")
|
|
print("=" * 40)
|
|
test_manual_backup_api()
|
|
print("=" * 40)
|