in tools/dubbogo-cli/cmd/show.go [52:124]
func show(cmd *cobra.Command, _ []string) {
var (
methodsMap map[string][]string
err error
)
registry, _ := cmd.Flags().GetString("r")
metadataCenter, _ := cmd.Flags().GetString("mc")
host, _ := cmd.Flags().GetString("h")
// Validate inputs
if registry == "" && metadataCenter == "" {
log.Println("Error: At least one of --r (registry) or --mc (metadata center) must be specified")
return
}
if host == "" {
log.Println("Error: Host (--h) is required")
return
}
table := tablewriter.NewWriter(os.Stdout)
table.SetHeader([]string{"Interface", "Method"})
if registry != "" {
registryFactory, ok := metadata.GetFactory(registry)
if !ok {
log.Printf("Error: Registry type '%s' is not supported", registry)
return
}
// Pass the raw host address instead of constructing a URL
hostArg := []string{host}
methodsMap, err = registryFactory("dubbogo-cli", hostArg).ShowRegistryCenterChildren()
if err != nil {
log.Printf("Failed to fetch registry data from %s: %v", registry, err)
fmt.Printf("======================\n")
fmt.Printf("Registry (%s): No data available\n", registry)
fmt.Printf("======================\n")
return
}
fmt.Printf("======================\n")
fmt.Printf("Registry (%s):\n", registry)
if len(methodsMap) == 0 {
fmt.Println("No interfaces found")
} else {
for k, v := range methodsMap {
table.Append([]string{k, strings.Join(v, ", ")})
}
table.Render()
}
fmt.Printf("======================\n")
}
if metadataCenter != "" {
metadataCenterFactory, ok := metadata.GetFactory(metadataCenter)
if !ok {
log.Printf("Error: Metadata center type '%s' is not supported", metadataCenter)
return
}
hostArg := []string{host}
methodsMap, err = metadataCenterFactory("dubbogo-cli", hostArg).ShowMetadataCenterChildren()
if err != nil {
log.Printf("Error fetching metadata center data: %v", err)
return
}
fmt.Printf("======================\n")
fmt.Printf("MetadataCenter (%s):\n", metadataCenter)
for k, v := range methodsMap {
table.Append([]string{k, strings.Join(v, ", ")})
}
table.Render()
fmt.Printf("======================\n")
}
}