From cb5ea80e66cd83ee4d5c5589e418fd36e1dc8f9a Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Tue, 22 Aug 2023 20:17:34 +0000 Subject: [PATCH] zones: introduce Zones.GetMachineByName() Signed-off-by: Alejandro Mery --- pkg/zones/zones.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkg/zones/zones.go b/pkg/zones/zones.go index ae0a99d..3f4a559 100644 --- a/pkg/zones/zones.go +++ b/pkg/zones/zones.go @@ -53,6 +53,24 @@ func (m *Zones) ForEachZone(fn func(*Zone) bool) { } } +// GetMachineByName looks for a machine with the specified +// name on any zone +func (m *Zones) GetMachineByName(name string) (*Machine, bool) { + var out *Machine + + if name != "" { + m.ForEachMachine(func(p *Machine) bool { + if p.Name == name { + out = p + } + + return out != nil + }) + } + + return out, out != nil +} + // NewFS builds a [Zones] tree using the given directory func NewFS(dir fs.FS, domain string) (*Zones, error) { lockuper := resolver.NewCloudflareLookuper()