package zones import "git.jpi.io/amery/jpictl/pkg/wireguard" type Ring struct { Ring int } func (*Ring) ExportConfig(_ int) (*wireguard.Config, error) { return nil, nil } func (*Zone) GetRing(_ int) (*Ring, error) { return &Ring{}, nil } // SyncWireguardConfig updates all wgN.conf files for the specified // ring func (z *Zone) SyncWireguardConfig(ring int) error { err := z.PruneWireguardConfig(ring) if err != nil { return err } r, err := z.GetRing(ring) if err != nil { return err } z.ForEachMachine(func(p *Machine) bool { if _, ok := p.getRingInfo(ring); ok { err = p.writeWireguardRing(r) } return err != nil }) return err } // PruneWireguardConfig removes wgN.conf files of machines with // the corresponding ring disabled. func (z *Zone) PruneWireguardConfig(ring int) error { var err error z.ForEachMachine(func(p *Machine) bool { _, ok := p.getRingInfo(ring) if !ok { err = p.RemoveWireguardConfig(ring) } return err != nil }) return err }