From 3609fb676bf0cda3d432f64a37d071f54309570d Mon Sep 17 00:00:00 2001 From: rcourtman Date: Fri, 27 Mar 2026 15:25:52 +0000 Subject: [PATCH] Preserve named guest interfaces without MACs (#1319) --- internal/monitoring/guest_metadata.go | 6 +++--- internal/monitoring/guest_metadata_test.go | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/internal/monitoring/guest_metadata.go b/internal/monitoring/guest_metadata.go index 65bfb909be..ec93ca19a8 100644 --- a/internal/monitoring/guest_metadata.go +++ b/internal/monitoring/guest_metadata.go @@ -611,9 +611,9 @@ func processGuestNetworkInterfaces(raw []proxmox.VMNetworkInterface) ([]string, if ifaceName == "" || lowerName == "lo" || lowerName == "loopback" { continue } - if mac == "" || mac == "00:00:00:00:00:00" { - continue - } + // Preserve named non-loopback interfaces even when early/partial guest-agent + // payloads have not populated MAC or IP details yet. The interface identity + // is still useful for the VM Summary view and should not wait for a later poll. } guestIfaces = append(guestIfaces, models.GuestNetworkInterface{ diff --git a/internal/monitoring/guest_metadata_test.go b/internal/monitoring/guest_metadata_test.go index d4132bdd09..049ed69cc3 100644 --- a/internal/monitoring/guest_metadata_test.go +++ b/internal/monitoring/guest_metadata_test.go @@ -557,6 +557,21 @@ func TestProcessGuestNetworkInterfaces(t *testing.T) { {Name: "eth0", MAC: "00:11:22:33:44:55", Addresses: nil}, }, }, + { + name: "interface with name only still keeps non-loopback identity", + raw: []proxmox.VMNetworkInterface{ + { + Name: "Ethernet 2", + HardwareAddr: "", + IPAddresses: nil, + Statistics: nil, + }, + }, + wantIPs: []string{}, + wantIfaces: []models.GuestNetworkInterface{ + {Name: "Ethernet 2", MAC: "", Addresses: nil}, + }, + }, { name: "loopback-only interface with no IPs and no traffic is excluded", raw: []proxmox.VMNetworkInterface{