dev #1

Merged
alientim merged 145 commits from dev into main 2025-10-12 13:44:14 +02:00
Showing only changes of commit 772d190369 - Show all commits

View File

@@ -1,21 +1,12 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import sqlite3 import sqlite3
import tempfile
import os
from app import decrypt_password, DB_PATH from app import decrypt_password, DB_PATH
def generate_ips_list(): def generate_ips_list():
conn = sqlite3.connect(DB_PATH) conn = sqlite3.connect(DB_PATH)
conn.row_factory = sqlite3.Row conn.row_factory = sqlite3.Row
# Alle Switches laden
switches = {row['hostname']: row for row in conn.execute("SELECT hostname, ip, username, password FROM switches")} switches = {row['hostname']: row for row in conn.execute("SELECT hostname, ip, username, password FROM switches")}
# # Alle Geräte laden
# devices = conn.execute("SELECT mac, rpi_ip, port, name, switch_hostname FROM devices").fetchall()
# conn.close()
# Nur aktive Geräte laden
devices = conn.execute(""" devices = conn.execute("""
SELECT mac, rpi_ip, port, name, switch_hostname SELECT mac, rpi_ip, port, name, switch_hostname
FROM devices FROM devices
@@ -23,22 +14,13 @@ def generate_ips_list():
""").fetchall() """).fetchall()
conn.close() conn.close()
tmp = tempfile.NamedTemporaryFile(delete=False, mode='w', prefix='ips_', suffix='.list')
tmp_path = tmp.name
for dev in devices: for dev in devices:
switch = switches.get(dev['switch_hostname']) switch = switches.get(dev['switch_hostname'])
if not switch: if not switch:
continue # Switch existiert nicht, überspringen continue
password = decrypt_password(switch['password']) password = decrypt_password(switch['password'])
# Format: IP-Device:Hostname-Device:IP-Switch:Hostname-Switch:Port-Switch:Username-Switch:Password-Switch port = dev['port'] or ""
line = f"{dev['rpi_ip']}:{dev['name']}:{switch['ip']}:{switch['hostname']}:{dev['port']}:{switch['username']}:{password}\n" print(f"{dev['rpi_ip']}:{dev['name']}:{switch['ip']}:{switch['hostname']}:{port}:{switch['username']}:{password}")
tmp.write(line)
tmp.close()
return tmp_path
if __name__ == "__main__": if __name__ == "__main__":
path = generate_ips_list() generate_ips_list()
print(path) # optional, gibt die Tempdatei zurück