commit full of PRs

PRs full of commit

basically i used the ENTIRE mimo grant to convert a system to another. hope this one is good. may fail.
This commit is contained in:
lda committed 2026-05-03 00:48:11 +07:00 Verified
1 parent b5a28c801c
commit b850c218ec
112 files changed
+2407 -4237

No files matched your search

+10 -29
View File
@@ -4,8 +4,8 @@ use std::fmt;
use std::net::IpAddr;
use wakey_core::parse::mac;
use wakey_core::{
DeviceInventory, DhcpLeaseWithState, InterfaceSummary, InventoryQuery, InventoryQueryBuilder,
WakeResult,
Device, DeviceInventory, DhcpLeaseWithState, InterfaceSummary, InventoryQuery,
InventoryQueryBuilder, WakeResult,
};
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -130,17 +130,6 @@ pub struct WakeRequest {
pub ip: Option<IpAddr>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AgentObservation {
pub kind: String,
pub action: String,
pub mac: Option<String>,
pub ip: Option<IpAddr>,
pub hostname: Option<String>,
pub first_seen_unix: u64,
pub last_seen_unix: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "kind", rename_all = "snake_case")]
pub enum AgentCommand {
@@ -172,9 +161,9 @@ pub enum ClientMessage {
Heartbeat {
agent_id: String,
},
Observations {
DeviceSnapshot {
agent_id: String,
observations: Vec<AgentObservation>,
devices: Vec<Device>,
},
Result {
request_id: RequestId,
@@ -193,7 +182,7 @@ pub enum ServerMessage {
request_id: RequestId,
command: AgentCommand,
},
SyncObservations,
SyncDeviceSnapshot,
}
#[cfg(test)]
@@ -233,22 +222,14 @@ mod tests {
}
#[test]
fn observations_message_serializes() {
let msg = ClientMessage::Observations {
fn device_snapshot_serializes() {
let msg = ClientMessage::DeviceSnapshot {
agent_id: "agent-a".into(),
observations: vec![AgentObservation {
kind: "dhcp".into(),
action: "update".into(),
mac: Some("aa:bb:cc:dd:ee:ff".into()),
ip: Some("192.168.1.10".parse().expect("ip")),
hostname: Some("lda".into()),
first_seen_unix: 10,
last_seen_unix: 20,
}],
devices: vec![],
};
let json = serde_json::to_string(&msg).expect("serialize");
assert!(json.contains("\"type\":\"observations\""));
assert!(json.contains("\"kind\":\"dhcp\""));
assert!(json.contains("\"type\":\"device_snapshot\""));
assert!(json.contains("\"devices\""));
}
}