Skip to content

Commit d8f3f86

Browse files
authored
Merge pull request #29 from VinceCui/master
2 parents 7605c65 + ae1a50e commit d8f3f86

File tree

4 files changed

+60
-11
lines changed

4 files changed

+60
-11
lines changed

cmd/care.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func init() {
3838
// and all subcommands, e.g.:
3939
// careCmd.PersistentFlags().String("foo", "", "A help for foo")
4040
careCmd.Flags().BoolVar(&care.LVS.RunOnce, "run-once", false, "is run once mode")
41-
careCmd.Flags().StringVar(&care.LVS.VirtualServer, "vs", "", "virturl server like 10.54.0.2:6443")
41+
careCmd.Flags().StringVar(&care.LVS.VirtualServer, "vs", "", "virtual server like 10.54.0.2:6443")
4242
careCmd.Flags().StringSliceVar(&care.LVS.RealServer, "rs", []string{}, "real server like 192.168.0.2:6443")
4343
careCmd.Flags().StringVar(&care.LVS.Logger, "logger", "INFO", "logger level: DEBG/INFO")
4444
careCmd.Flags().BoolVar(&care.LVS.Clean, "clean", false, "before run clean ipvs rules")

service/service.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ type EndPoint struct {
1919
}
2020

2121
func (ep EndPoint) String() string {
22-
port := strconv.Itoa(int(ep.Port))
23-
return ep.IP + ":" + port
22+
return net.JoinHostPort(ep.IP, strconv.Itoa(int(ep.Port)))
2423
}
2524

2625
//Lvser is

utils/utils.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,24 @@ import (
88
"net"
99
"net/http"
1010
"strconv"
11-
"strings"
1211
)
1312

1413
//SplitServer is
1514
func SplitServer(server string) (string, uint16) {
16-
s := strings.Split(server, ":")
17-
if len(s) != 2 {
18-
glog.Warning("SplitServer error: len(s) is not two.")
15+
glog.V(8).Infof("server %s", server)
16+
17+
ip, port, err := net.SplitHostPort(server)
18+
if err != nil {
19+
glog.Errorf("SplitServer error: %v.", err)
1920
return "", 0
2021
}
21-
glog.V(8).Infof("SplitServer debug: IP: %s, Port: %s", s[0], s[1])
22-
p, err := strconv.Atoi(s[1])
22+
glog.V(8).Infof("SplitServer debug: IP: %s, Port: %s", ip, port)
23+
p, err := strconv.Atoi(port)
2324
if err != nil {
2425
glog.Warningf("SplitServer error: %v", err)
2526
return "", 0
2627
}
27-
return s[0], uint16(p)
28+
return ip, uint16(p)
2829
}
2930

3031
//IsHTTPAPIHealth is check http error
@@ -33,7 +34,7 @@ func IsHTTPAPIHealth(ip, port, path, schem string) bool {
3334
url := fmt.Sprintf("%s://%s:%s%s", schem, ip, port, path)
3435
resp, err := http.Get(url)
3536
if err != nil {
36-
glog.V(8).Infof("IsHTTPAPIHealth error: ", err)
37+
glog.V(8).Infof("IsHTTPAPIHealth error: %v", err)
3738
return false
3839
}
3940
defer resp.Body.Close()

utils/utils_test.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
// alibaba-inc.com Inc.
2+
// Copyright (c) 2004-2022 All Rights Reserved.
3+
//
4+
// @Author : huaiyou.cyz
5+
// @Time : 2022/5/25 4:08 PM
6+
// @File : utils_test.go
7+
//
8+
9+
package utils
10+
11+
import "testing"
12+
13+
func TestSplitServer(t *testing.T) {
14+
type args struct {
15+
server string
16+
}
17+
tests := []struct {
18+
name string
19+
args args
20+
want string
21+
want1 uint16
22+
}{
23+
{
24+
args: args{
25+
server: "[1408:4003:10bb:6a01:83b9:6360:c66d:ed3e]:6443",
26+
},
27+
want: "1408:4003:10bb:6a01:83b9:6360:c66d:ed3e",
28+
want1: 6443,
29+
},
30+
{
31+
args: args{
32+
server: "1.1.1.1:6443",
33+
},
34+
want: "1.1.1.1",
35+
want1: 6443,
36+
},
37+
}
38+
for _, tt := range tests {
39+
t.Run(tt.name, func(t *testing.T) {
40+
got, got1 := SplitServer(tt.args.server)
41+
if got != tt.want {
42+
t.Errorf("SplitServer() got = %v, want %v", got, tt.want)
43+
}
44+
if got1 != tt.want1 {
45+
t.Errorf("SplitServer() got1 = %v, want %v", got1, tt.want1)
46+
}
47+
})
48+
}
49+
}

0 commit comments

Comments
 (0)