From fa3758bb31821f2229c8af97e48a40750933adec Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Sat, 26 Aug 2023 16:54:49 +0000 Subject: [PATCH] zones: WireguardConfigWriter() [WIP] Signed-off-by: Alejandro Mery --- pkg/zones/zone_rings.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/pkg/zones/zone_rings.go b/pkg/zones/zone_rings.go index 714a5c0..e85c706 100644 --- a/pkg/zones/zone_rings.go +++ b/pkg/zones/zone_rings.go @@ -15,6 +15,7 @@ type machineRinger interface { SyncWireguardConfig(ring int) error PruneWireguardConfig(ring int) error + WriteWireguardConfig(ring int) error } // SyncWireguardConfig updates all wgN.conf files for the specified @@ -36,6 +37,17 @@ func (z *Zone) PruneWireguardConfig(ring int) error { return pruneWireguardConfig(z, ring) } +func (z *Zone) WriteWireguardConfig(ring int) error { + switch ring { + case 0: + return writeWireguardConfig(z.zones, z.zones, ring) + case 1: + return writeWireguardConfig(z.zones, z, ring) + default: + return fs.ErrInvalid + } +} + // WriteWireguardKeys rewrites all wgN.{key,pub} files on this zone func (z *Zone) WriteWireguardKeys(ring int) error { return writeWireguardKeys(z, ring) @@ -65,6 +77,22 @@ func (m *Zones) PruneWireguardConfig(ring int) error { return pruneWireguardConfig(m, ring) } +func (m *Zones) WriteWireguardConfig(ring int) error { + switch ring { + case 0: + return writeWireguardConfig(m, m, ring) + case 1: + var err error + m.ForEachZone(func(z *Zone) bool { + err = writeWireguardConfig(m, z, ring) + return err != nil + }) + return err + default: + return fs.ErrInvalid + } +} + // WriteWireguardKeys rewrites all wgN.{key,pub} files func (m *Zones) WriteWireguardKeys(ring int) error { return writeWireguardKeys(m, ring)