mirror of
https://gitee.com/rainbond/Rainbond.git
synced 2024-12-05 05:07:38 +08:00
62 lines
1.2 KiB
Go
62 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"io"
|
|
"log"
|
|
"net"
|
|
"net/http"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/goodrain/rainbond/gateway/controller/openresty/model"
|
|
"github.com/gosuri/uitable"
|
|
)
|
|
|
|
func main() {
|
|
if os.Args[1] == "tcp" {
|
|
conn, err := net.Dial("tcp", "127.0.0.1:18081")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer conn.Close()
|
|
_, err = conn.Write([]byte("GET\r\n"))
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
print(conn)
|
|
} else {
|
|
res, err := http.Get("http://127.0.0.1:18080/config/backends")
|
|
if err != nil {
|
|
fmt.Println(err.Error())
|
|
os.Exit(1)
|
|
}
|
|
if res.Body != nil {
|
|
defer res.Body.Close()
|
|
print(res.Body)
|
|
}
|
|
}
|
|
}
|
|
|
|
func print(reader io.Reader) {
|
|
decoder := json.NewDecoder(reader)
|
|
var backends []*model.Backend
|
|
if err := decoder.Decode(&backends); err != nil {
|
|
fmt.Println(err.Error())
|
|
os.Exit(1)
|
|
}
|
|
table := uitable.New()
|
|
table.Wrap = true // wrap columns
|
|
for _, b := range backends {
|
|
table.AddRow(b.Name, strings.Join(func() []string {
|
|
var re []string
|
|
for _, e := range b.Endpoints {
|
|
re = append(re, fmt.Sprintf("%s:%s %d", e.Address, e.Port, e.Weight))
|
|
}
|
|
return re
|
|
}(), ";"))
|
|
}
|
|
fmt.Println(table)
|
|
}
|