shell: cluster.ps lists s3 servers (#10359)

* shell: cluster.ps lists s3 servers

* explicit returns in listClusterNodes helper
This commit is contained in:
Chris Lu
2026-07-18 13:56:47 -07:00
committed by GitHub
parent fba01ae2dd
commit 02df1cf428
+33 -28
View File
@@ -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 {