mirror of
https://github.com/juanfont/headscale.git
synced 2024-12-20 19:09:07 +01:00
Add method to fetch by nodekey
This commit is contained in:
parent
dbf0e206b8
commit
e950b3be29
19
machine.go
19
machine.go
@ -350,7 +350,7 @@ func (h *Headscale) GetMachineByID(id uint64) (*Machine, error) {
|
|||||||
return &m, nil
|
return &m, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMachineByMachineKey finds a Machine by ID and returns the Machine struct.
|
// GetMachineByMachineKey finds a Machine by its MachineKey and returns the Machine struct.
|
||||||
func (h *Headscale) GetMachineByMachineKey(
|
func (h *Headscale) GetMachineByMachineKey(
|
||||||
machineKey key.MachinePublic,
|
machineKey key.MachinePublic,
|
||||||
) (*Machine, error) {
|
) (*Machine, error) {
|
||||||
@ -362,6 +362,19 @@ func (h *Headscale) GetMachineByMachineKey(
|
|||||||
return &m, nil
|
return &m, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetMachineByNodeKey finds a Machine by its current NodeKey
|
||||||
|
func (h *Headscale) GetMachineByNodeKey(
|
||||||
|
nodeKey key.NodePublic,
|
||||||
|
) (*Machine, error) {
|
||||||
|
machine := Machine{}
|
||||||
|
if result := h.db.Preload("Namespace").First(&machine, "node_key = ?",
|
||||||
|
NodePublicKeyStripPrefix(nodeKey)); result.Error != nil {
|
||||||
|
return nil, result.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
return &machine, nil
|
||||||
|
}
|
||||||
|
|
||||||
// UpdateMachineFromDatabase takes a Machine struct pointer (typically already loaded from database
|
// UpdateMachineFromDatabase takes a Machine struct pointer (typically already loaded from database
|
||||||
// and updates it with the latest data from the database.
|
// and updates it with the latest data from the database.
|
||||||
func (h *Headscale) UpdateMachineFromDatabase(machine *Machine) error {
|
func (h *Headscale) UpdateMachineFromDatabase(machine *Machine) error {
|
||||||
@ -762,11 +775,11 @@ func getTags(
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (h *Headscale) RegisterMachineFromAuthCallback(
|
func (h *Headscale) RegisterMachineFromAuthCallback(
|
||||||
machineKeyStr string,
|
nodeKeyStr string,
|
||||||
namespaceName string,
|
namespaceName string,
|
||||||
registrationMethod string,
|
registrationMethod string,
|
||||||
) (*Machine, error) {
|
) (*Machine, error) {
|
||||||
if machineInterface, ok := h.registrationCache.Get(machineKeyStr); ok {
|
if machineInterface, ok := h.registrationCache.Get(nodeKeyStr); ok {
|
||||||
if registrationMachine, ok := machineInterface.(Machine); ok {
|
if registrationMachine, ok := machineInterface.(Machine); ok {
|
||||||
namespace, err := h.GetNamespace(namespaceName)
|
namespace, err := h.GetNamespace(namespaceName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user