From 5d3449eb2a79b01546157d05d84612f1903272c2 Mon Sep 17 00:00:00 2001 From: Ilja Rotar Date: Tue, 24 Mar 2026 13:05:50 +0100 Subject: [PATCH] Quick fix for wrong machine connections --- cmd/metal-api/internal/datastore/switch.go | 9 +++++++-- cmd/metal-api/internal/service/machine-service.go | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/cmd/metal-api/internal/datastore/switch.go b/cmd/metal-api/internal/datastore/switch.go index 25b2c193..94689804 100644 --- a/cmd/metal-api/internal/datastore/switch.go +++ b/cmd/metal-api/internal/datastore/switch.go @@ -97,11 +97,16 @@ func (rs *RethinkStore) SearchSwitches(q *SwitchSearchQuery, ss *metal.Switches) return rs.searchEntities(q.generateTerm(rs), ss) } -// SearchSwitchesConnectedToMachine searches switches that are connected to the given machine. +// SearchSwitchesConnectedToMachine searches switches that are connected to the given machine in the machine's rack. func (rs *RethinkStore) SearchSwitchesConnectedToMachine(m *metal.Machine) (metal.Switches, error) { + return rs.SearchSwitchesConnectedToMachineInRack(m, &m.RackID) +} + +// SearchSwitchesConnectedToMachineInRack search for machine connections in a specific rack or in all racks if rack == nil. +func (rs *RethinkStore) SearchSwitchesConnectedToMachineInRack(m *metal.Machine, rack *string) (metal.Switches, error) { switches := metal.Switches{} - err := rs.SearchSwitches(&SwitchSearchQuery{RackID: &m.RackID}, &switches) + err := rs.SearchSwitches(&SwitchSearchQuery{RackID: rack}, &switches) if err != nil { return nil, err } diff --git a/cmd/metal-api/internal/service/machine-service.go b/cmd/metal-api/internal/service/machine-service.go index bf1576e8..d5d53176 100644 --- a/cmd/metal-api/internal/service/machine-service.go +++ b/cmd/metal-api/internal/service/machine-service.go @@ -1860,7 +1860,7 @@ func (r *machineResource) deleteMachine(request *restful.Request, response *rest return } - switches, err := r.ds.SearchSwitchesConnectedToMachine(m) + switches, err := r.ds.SearchSwitchesConnectedToMachineInRack(m, nil) if err != nil { r.sendError(request, response, defaultError(err)) return