Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d04a0ceb46 | |||
| fa3758bb31 | |||
| 236af793b9 |
+31
-5
@@ -13,7 +13,9 @@ var (
|
||||
type machineRinger interface {
|
||||
MachineIterator
|
||||
|
||||
SyncWireguardConfig(ring int) error
|
||||
PruneWireguardConfig(ring int) error
|
||||
WriteWireguardConfig(ring int) error
|
||||
}
|
||||
|
||||
// SyncWireguardConfig updates all wgN.conf files for the specified
|
||||
@@ -35,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)
|
||||
@@ -64,17 +77,28 @@ 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)
|
||||
}
|
||||
|
||||
func syncWireguardConfig(z ZoneIterator, m machineRinger, ring int) error {
|
||||
err := m.PruneWireguardConfig(ring)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r, err := NewRing(z, m, ring)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -83,6 +107,8 @@ func syncWireguardConfig(z ZoneIterator, m machineRinger, ring int) error {
|
||||
m.ForEachMachine(func(p *Machine) bool {
|
||||
if _, ok := p.getRingInfo(ring); ok {
|
||||
err = p.writeWireguardRingConfig(r)
|
||||
} else {
|
||||
err = p.RemoveWireguardConfig(ring)
|
||||
}
|
||||
return err != nil
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user