diff --git a/core/headscale/client.go b/core/headscale/client.go
index f4d0f51..766ae52 100644
--- a/core/headscale/client.go
+++ b/core/headscale/client.go
@@ -96,14 +96,22 @@
 	IPAddresses []net.IP `json:"ip_addresses"`
 }
 
-func (c *client) getNodeId(user, node string) (string, error) {
+func (c *client) getUserNodes(user string) ([]nodeInfo, error) {
 	cmd := exec.Command("headscale", c.config, "--user", user, "node", "list", "-o", "json")
 	out, err := cmd.Output()
 	if err != nil {
-		return "", err
+		return nil, err
 	}
 	var nodes []nodeInfo
 	if err := json.NewDecoder(bytes.NewReader(out)).Decode(&nodes); err != nil {
+		return nil, err
+	}
+	return nodes, nil
+}
+
+func (c *client) getNodeId(user, node string) (string, error) {
+	nodes, err := c.getUserNodes(user)
+	if err != nil {
 		return "", err
 	}
 	for _, n := range nodes {
