45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
import sqlite3
|
|
from app import decrypt_password, DB_PATH
|
|
|
|
def generate_ips_list():
|
|
conn = sqlite3.connect(DB_PATH)
|
|
conn.row_factory = sqlite3.Row
|
|
|
|
switches = {row['hostname']: row for row in conn.execute(
|
|
"SELECT hostname, ip, username, password FROM switches"
|
|
)}
|
|
|
|
devices = conn.execute("""
|
|
SELECT mac, rpi_ip, port, name, switch_hostname
|
|
FROM devices
|
|
WHERE is_active=1
|
|
""").fetchall()
|
|
conn.close()
|
|
|
|
for dev in devices:
|
|
switch = switches.get(dev['switch_hostname'])
|
|
if switch:
|
|
switch_ip = switch['ip']
|
|
switch_user = switch['username']
|
|
switch_pass = decrypt_password(switch['password'])
|
|
else:
|
|
switch_ip = ""
|
|
switch_user = ""
|
|
switch_pass = ""
|
|
|
|
port = dev['port'] or ""
|
|
print(
|
|
f"{dev['rpi_ip']}|"
|
|
f"{dev['name']}|"
|
|
f"{switch_ip}|"
|
|
f"{dev['switch_hostname'] or 'kein Switch'}|"
|
|
f"{port}|"
|
|
f"{switch_user}|"
|
|
f"{switch_pass}|"
|
|
f"{dev['mac']}"
|
|
)
|
|
|
|
if __name__ == "__main__":
|
|
generate_ips_list()
|