Filter routes to sync from same HA group (#618)

An additional check and filter for routes that are part
 of the same HA group where the peer is a routing peer
This commit is contained in:
Maycon Santos
2022-12-08 15:15:50 +01:00
committed by GitHub
parent eec24fc730
commit 6f610dca89
5 changed files with 56 additions and 17 deletions

View File

@@ -1080,6 +1080,10 @@ func TestAccount_GetRoutesToSync(t *testing.T) {
if err != nil {
t.Fatal(err)
}
_, prefix2, err := route.ParseNetwork("192.168.0.0/24")
if err != nil {
t.Fatal(err)
}
account := &Account{
Peers: map[string]*Peer{
"peer-1": {Key: "peer-1"}, "peer-2": {Key: "peer-2"}, "peer-3": {Key: "peer-1"},
@@ -1100,6 +1104,18 @@ func TestAccount_GetRoutesToSync(t *testing.T) {
},
"route-2": {
ID: "route-2",
Network: prefix2,
NetID: "network-2",
Description: "network-2",
Peer: "peer-2",
NetworkType: 0,
Masquerade: false,
Metric: 999,
Enabled: true,
Groups: []string{"group1"},
},
"route-3": {
ID: "route-3",
Network: prefix,
NetID: "network-1",
Description: "network-1",
@@ -1120,8 +1136,8 @@ func TestAccount_GetRoutesToSync(t *testing.T) {
for _, r := range routes {
routeIDs[r.ID] = struct{}{}
}
assert.Contains(t, routeIDs, "route-1")
assert.Contains(t, routeIDs, "route-2")
assert.Contains(t, routeIDs, "route-3")
emptyRoutes := account.getRoutesToSync("peer-3", []*Peer{{Key: "peer-1"}, {Key: "peer-2"}})