Allow to delete routes (#1244)

This commit is contained in:
Juan Font 2023-03-06 09:05:40 +01:00 committed by GitHub
parent c9ecdd6ef1
commit ea82035222
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 790 additions and 258 deletions

View file

@ -116,6 +116,34 @@ func (h *Headscale) DisableRoute(id uint64) error {
return h.handlePrimarySubnetFailover()
}
func (h *Headscale) DeleteRoute(id uint64) error {
route, err := h.GetRoute(id)
if err != nil {
return err
}
if err := h.db.Unscoped().Delete(&route).Error; err != nil {
return err
}
return h.handlePrimarySubnetFailover()
}
func (h *Headscale) DeleteMachineRoutes(m *Machine) error {
routes, err := h.GetMachineRoutes(m)
if err != nil {
return err
}
for i := range routes {
if err := h.db.Unscoped().Delete(&routes[i]).Error; err != nil {
return err
}
}
return h.handlePrimarySubnetFailover()
}
// isUniquePrefix returns if there is another machine providing the same route already.
func (h *Headscale) isUniquePrefix(route Route) bool {
var count int64