mirror of
https://github.com/juanfont/headscale.git
synced 2024-11-26 17:03:06 +00:00
Remove registrated field
This commit removes the field from the database and does a DB migration **removing** all unregistered machines from headscale. This means that from this version, all machines in the database is considered registered.
This commit is contained in:
parent
a8649d83c4
commit
78251ce8ec
2 changed files with 33 additions and 1 deletions
33
db.go
33
db.go
|
@ -5,6 +5,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/glebarez/sqlite"
|
"github.com/glebarez/sqlite"
|
||||||
|
"github.com/rs/zerolog/log"
|
||||||
"gorm.io/driver/postgres"
|
"gorm.io/driver/postgres"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"gorm.io/gorm/logger"
|
"gorm.io/gorm/logger"
|
||||||
|
@ -34,6 +35,38 @@ func (h *Headscale) initDB() error {
|
||||||
|
|
||||||
_ = db.Migrator().RenameColumn(&Machine{}, "ip_address", "ip_addresses")
|
_ = db.Migrator().RenameColumn(&Machine{}, "ip_address", "ip_addresses")
|
||||||
|
|
||||||
|
// If the Machine table has a column for registered,
|
||||||
|
// find all occourences of "false" and drop them. Then
|
||||||
|
// remove the column.
|
||||||
|
if db.Migrator().HasColumn(&Machine{}, "registered") {
|
||||||
|
log.Info().
|
||||||
|
Msg(`Database has legacy "registered" column in machine, removing...`)
|
||||||
|
|
||||||
|
machines := Machines{}
|
||||||
|
if err := h.db.Not("registered").Find(&machines).Error; err != nil {
|
||||||
|
log.Error().Err(err).Msg("Error accessing db")
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, machine := range machines {
|
||||||
|
log.Info().
|
||||||
|
Str("machine", machine.Name).
|
||||||
|
Str("machine_key", machine.MachineKey).
|
||||||
|
Msg("Deleting unregistered machine")
|
||||||
|
if err := h.db.Delete(&Machine{}, machine.ID).Error; err != nil {
|
||||||
|
log.Error().
|
||||||
|
Err(err).
|
||||||
|
Str("machine", machine.Name).
|
||||||
|
Str("machine_key", machine.MachineKey).
|
||||||
|
Msg("Error deleting unregistered machine")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err := db.Migrator().DropColumn(&Machine{}, "registered")
|
||||||
|
if err != nil {
|
||||||
|
log.Error().Err(err).Msg("Error dropping registered column")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = db.AutoMigrate(&Machine{})
|
err = db.AutoMigrate(&Machine{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -45,7 +45,6 @@ type Machine struct {
|
||||||
NamespaceID uint
|
NamespaceID uint
|
||||||
Namespace Namespace `gorm:"foreignKey:NamespaceID"`
|
Namespace Namespace `gorm:"foreignKey:NamespaceID"`
|
||||||
|
|
||||||
Registered bool // temp
|
|
||||||
RegisterMethod string
|
RegisterMethod string
|
||||||
|
|
||||||
// TODO(kradalby): This seems like irrelevant information?
|
// TODO(kradalby): This seems like irrelevant information?
|
||||||
|
|
Loading…
Reference in a new issue