Skip to content
This repository was archived by the owner on Sep 1, 2025. It is now read-only.

Commit bb83e77

Browse files
committed
MINOR: peer: add shard option to peer and server lines
1 parent be87c6f commit bb83e77

7 files changed

Lines changed: 30 additions & 10 deletions

File tree

params/server-options.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ func getServerOptions() []ServerOption {
206206
&ServerOptionValue{Name: "resolve-net"},
207207
&ServerOptionValue{Name: "resolvers"},
208208
&ServerOptionValue{Name: "proxy-v2-options"},
209+
&ServerOptionValue{Name: "shard"},
209210
&ServerOptionValue{Name: "slowstart"},
210211
&ServerOptionValue{Name: "sni"},
211212
&ServerOptionValue{Name: "source"},

parsers/peer.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,16 @@ func (l *Peer) parse(line string, parts []string, comment string) (*types.Peer,
3535
adr, p, found := common.CutRight(parts[2], ":")
3636
if found && len(adr) > 0 {
3737
if port, err := strconv.ParseInt(p, 10, 64); err == nil {
38-
return &types.Peer{
38+
peer := &types.Peer{
3939
Name: parts[1],
4040
IP: adr,
4141
Port: port,
4242
Comment: comment,
43-
}, nil
43+
}
44+
if len(parts) > 4 && parts[3] == "shard" {
45+
peer.Shard = parts[4]
46+
}
47+
return peer, nil
4448
}
4549
}
4650
}
@@ -53,8 +57,12 @@ func (l *Peer) Result() ([]common.ReturnResultLine, error) {
5357
}
5458
result := make([]common.ReturnResultLine, len(l.data))
5559
for index, peer := range l.data {
60+
str := fmt.Sprintf("peer %s %s:%d", peer.Name, peer.IP, peer.Port)
61+
if peer.Shard != "" {
62+
str = fmt.Sprintf("%s shard %s", str, peer.Shard)
63+
}
5664
result[index] = common.ReturnResultLine{
57-
Data: fmt.Sprintf("peer %s %s:%d", peer.Name, peer.IP, peer.Port),
65+
Data: str,
5866
Comment: peer.Comment,
5967
}
6068
}

tests/configs/haproxy_generated.cfg.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/integration/peers_data_test.go

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/integration/peers_test.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/peer_generated_test.go

Lines changed: 8 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

types/types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,7 @@ type ExternalCheckCommand struct {
861861
//name:peer
862862
//is:multiple
863863
//test:ok:peer name 127.0.0.1:8080
864+
//test:ok:peer name 127.0.0.1:8080 shard 1
864865
//test:fail:peer name 127.0.0.1
865866
//test:fail:peer name :8080
866867
//test:fail:peer
@@ -869,6 +870,7 @@ type Peer struct {
869870
Name string
870871
IP string
871872
Port int64
873+
Shard string
872874
Comment string
873875
}
874876

0 commit comments

Comments
 (0)