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