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)