Skip to content

Commit 4b3b484

Browse files
committed
Return the machine when registering
1 parent 33bee1d commit 4b3b484

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

cli.go

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,45 @@
11
package headscale
22

33
import (
4-
"fmt"
4+
"errors"
55
"log"
66

77
"tailscale.com/wgengine/wgcfg"
88
)
99

1010
// RegisterMachine is executed from the CLI to register a new Machine using its MachineKey
11-
func (h *Headscale) RegisterMachine(key string, namespace string) error {
11+
func (h *Headscale) RegisterMachine(key string, namespace string) (*Machine, error) {
1212
ns, err := h.GetNamespace(namespace)
1313
if err != nil {
14-
return err
14+
return nil, err
1515
}
1616
mKey, err := wgcfg.ParseHexKey(key)
1717
if err != nil {
18-
log.Printf("Cannot parse client key: %s", err)
19-
return err
18+
return nil, err
2019
}
2120
db, err := h.db()
2221
if err != nil {
2322
log.Printf("Cannot open DB: %s", err)
24-
return err
23+
return nil, err
2524
}
2625
defer db.Close()
2726
m := Machine{}
2827
if db.First(&m, "machine_key = ?", mKey.HexString()).RecordNotFound() {
29-
log.Printf("Cannot find machine with machine key: %s", mKey.Base64())
30-
return err
28+
return nil, errors.New("Machine not found")
3129
}
3230

3331
if m.isAlreadyRegistered() {
34-
fmt.Println("This machine already registered")
35-
return nil
32+
return nil, errors.New("Machine already registered")
3633
}
3734

3835
ip, err := h.getAvailableIP()
3936
if err != nil {
40-
log.Println(err)
41-
return err
37+
return nil, err
4238
}
4339
m.IPAddress = ip.String()
4440
m.NamespaceID = ns.ID
4541
m.Registered = true
4642
m.RegisterMethod = "cli"
4743
db.Save(&m)
48-
fmt.Println("Machine registered 🎉")
49-
return nil
44+
return &m, nil
5045
}

0 commit comments

Comments
 (0)