package zones import "os" // PruneWireguardConfig removes wgN.conf files of machines with // the corresponding ring disabled. func (z *Zone) PruneWireguardConfig(ring int) error { return pruneWireguardConfig(z, ring) } // WriteWireguardKeys rewrites all wgN.{key,pub} files on this zone func (z *Zone) WriteWireguardKeys(ring int) error { return writeWireguardKeys(z, ring) } // PruneWireguardConfig removes wgN.conf files of machines with // the corresponding ring disabled on all zones func (m *Zones) PruneWireguardConfig(ring int) error { return pruneWireguardConfig(m, ring) } // WriteWireguardKeys rewrites all wgN.{key,pub} files func (m *Zones) WriteWireguardKeys(ring int) error { return writeWireguardKeys(m, ring) } func pruneWireguardConfig(m MachineIterator, ring int) error { var err error m.ForEachMachine(func(p *Machine) bool { _, ok := p.getRingInfo(ring) if !ok { err = p.RemoveWireguardConfig(ring) } return err != nil }) return err } func writeWireguardKeys(m MachineIterator, ring int) error { var err error m.ForEachMachine(func(p *Machine) bool { err = p.WriteWireguardKeys(ring) if os.IsNotExist(err) { // ignore err = nil } return err != nil }) return err }