Restore device details API

This commit is contained in:
2025-10-23 05:20:11 -06:00
parent 8266a982e0
commit fa0de57f61
3 changed files with 157 additions and 0 deletions

View File

@@ -1,3 +1,4 @@
import json
from datetime import datetime, timezone
import sqlite3
import time
@@ -149,3 +150,89 @@ def test_device_description_update(prepared_app, engine_settings):
assert row is not None
assert row[0] == "Primary workstation"
def test_device_details_returns_inventory(prepared_app, engine_settings):
client = prepared_app.test_client()
_ensure_admin_session(client)
hostname = "inventory-1"
guid = "B9F0A1C2-D3E4-5F67-890A-BCDEF1234567"
now = int(time.time())
memory = [{"slot": "DIMM1", "size_gb": 16}]
network = [{"name": "Ethernet", "mac": "AA:BB:CC:DD:EE:FF"}]
software = [{"name": "Agent", "version": "1.0.0"}]
storage = [{"model": "Disk", "size_gb": 512}]
cpu = {"model": "Intel", "cores": 8}
conn = sqlite3.connect(engine_settings.database.path)
cur = conn.cursor()
cur.execute(
"""
INSERT INTO devices (
guid,
hostname,
description,
created_at,
agent_hash,
memory,
network,
software,
storage,
cpu,
device_type,
domain,
external_ip,
internal_ip,
last_reboot,
last_seen,
last_user,
operating_system,
uptime,
agent_id
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""",
(
guid,
hostname,
"Workstation",
now,
"hashvalue",
json.dumps(memory),
json.dumps(network),
json.dumps(software),
json.dumps(storage),
json.dumps(cpu),
"Laptop",
"ACME",
"203.0.113.10",
"192.0.2.10",
"2024-01-01 12:00:00",
now,
"ACME\\tech",
"Windows 11",
7200,
"agent-001",
),
)
conn.commit()
conn.close()
resp = client.get(f"/api/device/details/{hostname}")
assert resp.status_code == 200
data = resp.get_json()
assert data["memory"] == memory
assert data["network"] == network
assert data["software"] == software
assert data["storage"] == storage
assert data["cpu"] == cpu
assert data["description"] == "Workstation"
assert data["agent_hash"] == "hashvalue"
assert data["agent_guid"].lower() == guid.lower()
assert data["last_user"] == "ACME\\tech"
assert data["operating_system"] == "Windows 11"
assert data["uptime"] == 7200
assert data["summary"]["hostname"] == hostname
assert data["details"]["memory"] == memory