Skip to content

Commit 5864f5a

Browse files
committed
change bgpserver.Connector
1 parent 342b0b8 commit 5864f5a

File tree

5 files changed

+47
-28
lines changed

5 files changed

+47
-28
lines changed

cmd/db-controller/main.go

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,9 @@ import (
3737
"github.com/sakura-internet/distributed-mariadb-controller/pkg/controller"
3838
"github.com/sakura-internet/distributed-mariadb-controller/pkg/nftables"
3939
"github.com/vishvananda/netlink"
40-
41-
"golang.org/x/exp/rand"
4240
)
4341

4442
func main() {
45-
rand.Seed(uint64(time.Now().UnixNano()))
46-
4743
if err := parseAllFlags(os.Args[1:]); err != nil {
4844
panic(err)
4945
}
@@ -84,14 +80,14 @@ func main() {
8480

8581
// start bgpserver
8682
logger.Debug("starting bgpserver", "hostaddress", myHostAddress)
87-
bs := bgpserver.NewDefaultConnector(
83+
bgpServerConnect := bgpserver.NewDefaultConnector(
8884
logger,
89-
uint32(bgpAsNumberFlag),
90-
myHostAddress,
91-
int32(bgpServingPortFlag),
92-
gobgpGrpcPortFlag,
85+
bgpserver.WithAsn(uint32(bgpAsNumberFlag)),
86+
bgpserver.WithRouterId(myHostAddress),
87+
bgpserver.WithListenPort(int32(bgpServingPortFlag)),
88+
bgpserver.WithGrpcPort(gobgpGrpcPortFlag),
9389
)
94-
if err := bs.Start(ctx); err != nil {
90+
if err := bgpServerConnect.Start(ctx); err != nil {
9591
panic(err)
9692
}
9793

@@ -102,7 +98,7 @@ func main() {
10298
}
10399
for _, v := range peers {
104100
logger.Debug("adding peer", "neighbor", v)
105-
bs.AddPeer(
101+
bgpServerConnect.AddPeer(
106102
v,
107103
uint32(bgpAsNumberFlag),
108104
uint32(bgpServingPortFlag),
@@ -124,7 +120,7 @@ func main() {
124120
dbReplicaPassword,
125121
uint16(dbReplicaSourcePortFlag),
126122
chainNameForDBAclFlag,
127-
controller.BgpServerConnector(bs),
123+
controller.BgpServerConnector(bgpServerConnect),
128124
controller.NftablesConnector(nftConnect),
129125
)
130126

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ require (
99
github.com/prometheus/client_golang v1.21.1
1010
github.com/stretchr/testify v1.10.0
1111
github.com/vishvananda/netlink v1.3.0
12-
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394
1312
google.golang.org/protobuf v1.36.6
1413
)
1514

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,6 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
257257
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
258258
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
259259
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
260-
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw=
261-
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
262260
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
263261
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
264262
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=

pkg/bgpserver/connector.go

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,41 @@ type bgpServerConnector struct {
5050
grpcPort int
5151
}
5252

53-
func NewDefaultConnector(logger *slog.Logger, asn uint32, routerId string, listenPort int32, grpcPort int) Connector {
54-
return &bgpServerConnector{
55-
logger: logger,
56-
asn: asn,
57-
routerId: routerId,
58-
listenPort: listenPort,
59-
grpcPort: grpcPort,
60-
server: gobgpserver.NewBgpServer(
61-
gobgpserver.GrpcListenAddress(fmt.Sprintf("127.0.0.1:%d", grpcPort)),
62-
),
53+
func NewDefaultConnector(logger *slog.Logger, configs ...func(*bgpServerConnector)) Connector {
54+
bs := &bgpServerConnector{
55+
logger: logger,
56+
}
57+
for _, f := range configs {
58+
f(bs)
59+
}
60+
bs.server = gobgpserver.NewBgpServer(
61+
gobgpserver.GrpcListenAddress(fmt.Sprintf("127.0.0.1:%d", bs.grpcPort)),
62+
)
63+
64+
return bs
65+
}
66+
67+
func WithAsn(asn uint32) func(*bgpServerConnector) {
68+
return func(c *bgpServerConnector) {
69+
c.asn = asn
70+
}
71+
}
72+
73+
func WithRouterId(routerId string) func(*bgpServerConnector) {
74+
return func(c *bgpServerConnector) {
75+
c.routerId = routerId
76+
}
77+
}
78+
79+
func WithListenPort(listenPort int32) func(*bgpServerConnector) {
80+
return func(c *bgpServerConnector) {
81+
c.listenPort = listenPort
82+
}
83+
}
84+
85+
func WithGrpcPort(grpcPort int) func(*bgpServerConnector) {
86+
return func(c *bgpServerConnector) {
87+
c.grpcPort = grpcPort
6388
}
6489
}
6590

pkg/controller/controller.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,10 @@ func NewController(
167167
currentState: StateInitial,
168168
currentNeighbors: newNeighborSet(),
169169

170-
nftablesConnector: nftables.NewDefaultConnector(logger),
171-
mariaDBConnector: mariadb.NewDefaultConnector(logger),
172-
systemdConnector: systemd.NewDefaultConnector(logger),
170+
nftablesConnector: nftables.NewDefaultConnector(logger),
171+
mariaDBConnector: mariadb.NewDefaultConnector(logger),
172+
systemdConnector: systemd.NewDefaultConnector(logger),
173+
bgpServerConnector: bgpserver.NewDefaultConnector(logger),
173174
}
174175

175176
for _, cfg := range configs {

0 commit comments

Comments
 (0)