Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions backend/cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"net/http"
_ "net/http/pprof"
"os"
"os/exec"
"os/signal"
"path"
"runtime"
Expand Down Expand Up @@ -105,6 +106,13 @@ func main() {
trace.Fatal().Err(err).Msg("setting up ADJ")
}

test := exec.Command("python3", "testadj.py")
out, err := test.CombinedOutput()
if err != nil || len(out) != 0 {
fmt.Printf("\nPython test failed:\nError: %v\nOutput: %s\n", err, string(out))
os.Exit(1)
}

podData, err := pod_data.NewPodData(adj.Boards, adj.Info.Units)
if err != nil {
fmt.Println(err)
Expand Down
41 changes: 17 additions & 24 deletions backend/cmd/testpython.py → backend/cmd/testadj.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import os
import json
from collections import Counter


def validate_json_structure(data):
errors = []


if "board_id" in data:
if not isinstance(data["board_id"], int):
errors.append(f"'board_id' debe ser un entero, pero se encontró: {type(data['board_id']).__name__}.")
Expand All @@ -15,13 +13,13 @@ def validate_json_structure(data):
if not isinstance(data["board_ip"], str):
errors.append(f"'board_ip' debe ser una cadena, pero se encontró: {type(data['board_ip']).__name__}.")


if "measurements" in data:
if not isinstance(data["measurements"], list):
errors.append("La clave 'measurements' debe ser una lista.")
else:
for measurement in data["measurements"]:
if isinstance(measurement, dict):
if isinstance(measurement, dict):
required_keys = ["id", "name", "type", "podUnits", "displayUnits"]
for key in required_keys:
if key not in measurement:
Expand All @@ -40,17 +38,17 @@ def validate_json_structure(data):
errors.append(f"El 'podUnits' debe ser una cadena en: {measurement}")
if "podUnits" in measurement and not isinstance(measurement["podUnits"], str):
errors.append(f"El 'podUnits' debe ser una cadena en: {measurement}") #esto se puede quitar (json 516)
elif not isinstance(measurement, str):
elif not isinstance(measurement, str):
errors.append("Cada elemento en 'measurements' debe ser un objeto o una cadena (nombre de archivo).")


if "packets" in data:
if not isinstance(data["packets"], list):
errors.append("La clave 'packets' debe ser una lista.")
else:
for packet in data["packets"]:
if isinstance(packet, dict):
required_keys = ["id", "name", "type","variable"]
if isinstance(packet, dict):
required_keys = ["id", "name", "type","variable"]
for key in required_keys:
if key not in packet:
errors.append(f"Falta la clave '{key}' en un objeto de 'packets'.")
Expand All @@ -69,7 +67,7 @@ def validate_json_structure(data):
errors.append(f"Cada elemento en 'variables' debe ser un objeto en: {packet}")
if "name" not in variable:
errors.append(f"Falta la clave 'name' en un objeto de 'variables' en: {packet}")
elif not isinstance(packet, str):
elif not isinstance(packet, str):
errors.append("Cada elemento en 'packets' debe ser un objeto o una cadena (nombre de archivo).")

return errors
Expand All @@ -78,19 +76,19 @@ def validate_json_structure(data):

def validate_json_folder(folder_path):
boards_file_path = os.path.join(folder_path, "boards.json")

try:
with open(boards_file_path, 'r') as boards_file:
boards_data = json.load(boards_file)
boards = boards_data.get("boards", {})


board_keys = list(boards.keys())
duplicate_keys = [key for key in board_keys if board_keys.count(key) > 1]

if duplicate_keys:
print(f"Error: El archivo boards.json contiene claves duplicadas: {', '.join(duplicate_keys)}")
return
return

except json.JSONDecodeError as e:
print(f"Error al decodificar JSON en {boards_file_path}: {e}")
Expand All @@ -99,7 +97,7 @@ def validate_json_folder(folder_path):
print(f"Error al procesar el archivo {boards_file_path}: {e}")
return


for board_name, board_file_path in boards.items():
full_path = os.path.join(folder_path, board_file_path)
try:
Expand All @@ -110,19 +108,14 @@ def validate_json_folder(folder_path):
print(f"Errores encontrados en {full_path} para la placa '{board_name}':")
for error in errors:
print(f"- {error}")
else:
print(f"{full_path} para la placa '{board_name}' está bien estructurado.")

except json.JSONDecodeError as e:
print(f"Error al decodificar JSON en {full_path}: {e}")
except Exception as e:
print(f"Error al procesar el archivo {full_path}: {e}")


print(f"Error al procesar el archivo {full_path}: {e}")


if os.path.exists('./JSON_ADE/'):
print("La carpeta JSON_ADE existe")
else:
if os.path.exists('./JSON_ADE/') == False:
print("La carpeta JSON_ADE no existe")
if __name__ == "__main__":
validate_json_folder("./JSON_ADE/")
validate_json_folder("./JSON_ADE/")
Loading