1
0
forked from extern/smegmesh
smegmesh/pkg/mesh/routemanager.go
2023-10-26 16:53:12 +01:00

74 lines
1.3 KiB
Go

package mesh
import (
"github.com/tim-beatham/wgmesh/pkg/route"
)
type RouteManager interface {
UpdateRoutes() error
ApplyWg() error
}
type RouteManagerImpl struct {
meshManager *MeshManager
routeInstaller route.RouteInstaller
}
func (r *RouteManagerImpl) UpdateRoutes() error {
// // meshes := r.meshManager.Meshes
// // ulaBuilder := new(ip.ULABuilder)
// for _, mesh1 := range meshes {
// for _, mesh2 := range meshes {
// if mesh1 == mesh2 {
// continue
// }
// ipNet, err := ulaBuilder.GetIPNet(mesh2.MeshId)
// if err != nil {
// logging.Log.WriteErrorf(err.Error())
// return err
// }
// mesh1.AddRoutes(ipNet.String())
// }
// }
return nil
}
func (r *RouteManagerImpl) ApplyWg() error {
// snapshot, err := mesh.GetMesh()
// if err != nil {
// return err
// }
// for _, node := range snapshot.Nodes {
// if node.HostEndpoint == r.meshManager.HostEndpoint {
// continue
// }
// for route, _ := range node.Routes {
// _, netIP, err := net.ParseCIDR(route)
// if err != nil {
// return err
// }
// err = r.routeInstaller.InstallRoutes(mesh.IfName, netIP)
// if err != nil {
// return err
// }
// }
// }
return nil
}
func NewRouteManager(m *MeshManager) RouteManager {
return &RouteManagerImpl{meshManager: m, routeInstaller: route.NewRouteInstaller()}
}