From 02df1cf428c7da6c22571cebd7275310f26ae1f9 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 18 Jul 2026 13:56:47 -0700 Subject: [PATCH] shell: cluster.ps lists s3 servers (#10359) * shell: cluster.ps lists s3 servers * explicit returns in listClusterNodes helper --- weed/shell/command_cluster_ps.go | 61 +++++++++++++++++--------------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/weed/shell/command_cluster_ps.go b/weed/shell/command_cluster_ps.go index 0f9e8e5ec..a2fa8dc19 100644 --- a/weed/shell/command_cluster_ps.go +++ b/weed/shell/command_cluster_ps.go @@ -47,39 +47,31 @@ func (c *commandClusterPs) Do(args []string, commandEnv *CommandEnv, writer io.W return nil } - var filerNodes []*master_pb.ListClusterNodesResponse_ClusterNode - var mqBrokerNodes []*master_pb.ListClusterNodesResponse_ClusterNode - - // get the list of filers - err = commandEnv.MasterClient.WithClient(false, func(client master_pb.SeaweedClient) error { - resp, err := client.ListClusterNodes(context.Background(), &master_pb.ListClusterNodesRequest{ - ClientType: cluster.FilerType, - FilerGroup: *commandEnv.option.FilerGroup, + listClusterNodes := func(clientType string) ([]*master_pb.ListClusterNodesResponse_ClusterNode, error) { + var nodes []*master_pb.ListClusterNodesResponse_ClusterNode + err := commandEnv.MasterClient.WithClient(false, func(client master_pb.SeaweedClient) error { + resp, err := client.ListClusterNodes(context.Background(), &master_pb.ListClusterNodesRequest{ + ClientType: clientType, + FilerGroup: *commandEnv.option.FilerGroup, + }) + if err != nil { + return err + } + nodes = resp.ClusterNodes + return nil }) - if err != nil { - return err - } + return nodes, err + } - filerNodes = resp.ClusterNodes - return err - }) + filerNodes, err := listClusterNodes(cluster.FilerType) if err != nil { return } - - // get the list of message queue brokers - err = commandEnv.MasterClient.WithClient(false, func(client master_pb.SeaweedClient) error { - resp, err := client.ListClusterNodes(context.Background(), &master_pb.ListClusterNodesRequest{ - ClientType: cluster.BrokerType, - FilerGroup: *commandEnv.option.FilerGroup, - }) - if err != nil { - return err - } - - mqBrokerNodes = resp.ClusterNodes - return err - }) + mqBrokerNodes, err := listClusterNodes(cluster.BrokerType) + if err != nil { + return + } + s3Nodes, err := listClusterNodes(cluster.S3Type) if err != nil { return } @@ -97,6 +89,19 @@ func (c *commandClusterPs) Do(args []string, commandEnv *CommandEnv, writer io.W } } + if len(s3Nodes) > 0 { + fmt.Fprintf(writer, "* s3 servers %d\n", len(s3Nodes)) + for _, node := range s3Nodes { + fmt.Fprintf(writer, " * %s (%v)\n", node.Address, node.Version) + if node.DataCenter != "" { + fmt.Fprintf(writer, " DataCenter: %v\n", node.DataCenter) + } + if node.Rack != "" { + fmt.Fprintf(writer, " Rack: %v\n", node.Rack) + } + } + } + filerSignatures := make(map[*master_pb.ListClusterNodesResponse_ClusterNode]int32) fmt.Fprintf(writer, "* filers %d\n", len(filerNodes)) for _, node := range filerNodes {