mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	ensure valid tags is populated on user gets too
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
This commit is contained in:
		
							parent
							
								
									af4508b9dc
								
							
						
					
					
						commit
						e6fc7851e7
					
				| @ -39,33 +39,33 @@ func init() { | ||||
| 
 | ||||
| 	err := registerNodeCmd.MarkFlagRequired("user") | ||||
| 	if err != nil { | ||||
| 		log.Fatalf(err.Error()) | ||||
| 		log.Fatal(err.Error()) | ||||
| 	} | ||||
| 	registerNodeCmd.Flags().StringP("key", "k", "", "Key") | ||||
| 	err = registerNodeCmd.MarkFlagRequired("key") | ||||
| 	if err != nil { | ||||
| 		log.Fatalf(err.Error()) | ||||
| 		log.Fatal(err.Error()) | ||||
| 	} | ||||
| 	nodeCmd.AddCommand(registerNodeCmd) | ||||
| 
 | ||||
| 	expireNodeCmd.Flags().Uint64P("identifier", "i", 0, "Node identifier (ID)") | ||||
| 	err = expireNodeCmd.MarkFlagRequired("identifier") | ||||
| 	if err != nil { | ||||
| 		log.Fatalf(err.Error()) | ||||
| 		log.Fatal(err.Error()) | ||||
| 	} | ||||
| 	nodeCmd.AddCommand(expireNodeCmd) | ||||
| 
 | ||||
| 	renameNodeCmd.Flags().Uint64P("identifier", "i", 0, "Node identifier (ID)") | ||||
| 	err = renameNodeCmd.MarkFlagRequired("identifier") | ||||
| 	if err != nil { | ||||
| 		log.Fatalf(err.Error()) | ||||
| 		log.Fatal(err.Error()) | ||||
| 	} | ||||
| 	nodeCmd.AddCommand(renameNodeCmd) | ||||
| 
 | ||||
| 	deleteNodeCmd.Flags().Uint64P("identifier", "i", 0, "Node identifier (ID)") | ||||
| 	err = deleteNodeCmd.MarkFlagRequired("identifier") | ||||
| 	if err != nil { | ||||
| 		log.Fatalf(err.Error()) | ||||
| 		log.Fatal(err.Error()) | ||||
| 	} | ||||
| 	nodeCmd.AddCommand(deleteNodeCmd) | ||||
| 
 | ||||
| @ -73,7 +73,7 @@ func init() { | ||||
| 
 | ||||
| 	err = moveNodeCmd.MarkFlagRequired("identifier") | ||||
| 	if err != nil { | ||||
| 		log.Fatalf(err.Error()) | ||||
| 		log.Fatal(err.Error()) | ||||
| 	} | ||||
| 
 | ||||
| 	moveNodeCmd.Flags().StringP("user", "u", "", "New user") | ||||
| @ -85,7 +85,7 @@ func init() { | ||||
| 
 | ||||
| 	err = moveNodeCmd.MarkFlagRequired("user") | ||||
| 	if err != nil { | ||||
| 		log.Fatalf(err.Error()) | ||||
| 		log.Fatal(err.Error()) | ||||
| 	} | ||||
| 	nodeCmd.AddCommand(moveNodeCmd) | ||||
| 
 | ||||
| @ -93,7 +93,7 @@ func init() { | ||||
| 
 | ||||
| 	err = tagCmd.MarkFlagRequired("identifier") | ||||
| 	if err != nil { | ||||
| 		log.Fatalf(err.Error()) | ||||
| 		log.Fatal(err.Error()) | ||||
| 	} | ||||
| 	tagCmd.Flags(). | ||||
| 		StringSliceP("tags", "t", []string{}, "List of tags to add to the node") | ||||
|  | ||||
| @ -11,6 +11,7 @@ import ( | ||||
| 	"strings" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"github.com/puzpuzpuz/xsync/v3" | ||||
| 	"github.com/rs/zerolog/log" | ||||
| 	"google.golang.org/grpc/codes" | ||||
| 	"google.golang.org/grpc/status" | ||||
| @ -21,6 +22,7 @@ import ( | ||||
| 
 | ||||
| 	v1 "github.com/juanfont/headscale/gen/go/headscale/v1" | ||||
| 	"github.com/juanfont/headscale/hscontrol/db" | ||||
| 	"github.com/juanfont/headscale/hscontrol/policy" | ||||
| 	"github.com/juanfont/headscale/hscontrol/types" | ||||
| 	"github.com/juanfont/headscale/hscontrol/util" | ||||
| ) | ||||
| @ -457,19 +459,7 @@ func (api headscaleV1APIServer) ListNodes( | ||||
| 			return nil, err | ||||
| 		} | ||||
| 
 | ||||
| 		response := make([]*v1.Node, len(nodes)) | ||||
| 		for index, node := range nodes { | ||||
| 			resp := node.Proto() | ||||
| 
 | ||||
| 			// Populate the online field based on
 | ||||
| 			// currently connected nodes.
 | ||||
| 			if val, ok := isLikelyConnected.Load(node.ID); ok && val { | ||||
| 				resp.Online = true | ||||
| 			} | ||||
| 
 | ||||
| 			response[index] = resp | ||||
| 		} | ||||
| 
 | ||||
| 		response := nodesToProto(api.h.polMan, isLikelyConnected, nodes) | ||||
| 		return &v1.ListNodesResponse{Nodes: response}, nil | ||||
| 	} | ||||
| 
 | ||||
| @ -482,6 +472,11 @@ func (api headscaleV1APIServer) ListNodes( | ||||
| 		return nodes[i].ID < nodes[j].ID | ||||
| 	}) | ||||
| 
 | ||||
| 	response := nodesToProto(api.h.polMan, isLikelyConnected, nodes) | ||||
| 	return &v1.ListNodesResponse{Nodes: response}, nil | ||||
| } | ||||
| 
 | ||||
| func nodesToProto(polMan policy.PolicyManager, isLikelyConnected *xsync.MapOf[types.NodeID, bool], nodes types.Nodes) []*v1.Node { | ||||
| 	response := make([]*v1.Node, len(nodes)) | ||||
| 	for index, node := range nodes { | ||||
| 		resp := node.Proto() | ||||
| @ -492,12 +487,12 @@ func (api headscaleV1APIServer) ListNodes( | ||||
| 			resp.Online = true | ||||
| 		} | ||||
| 
 | ||||
| 		validTags := api.h.polMan.Tags(node) | ||||
| 		validTags := polMan.Tags(node) | ||||
| 		resp.ValidTags = validTags | ||||
| 		response[index] = resp | ||||
| 	} | ||||
| 
 | ||||
| 	return &v1.ListNodesResponse{Nodes: response}, nil | ||||
| 	return response | ||||
| } | ||||
| 
 | ||||
| func (api headscaleV1APIServer) MoveNode( | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user