Skip to content

Commit 709ac8b

Browse files
committed
set relayed nodes on inetgw migration
1 parent 12b5f1d commit 709ac8b

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

logic/util.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,17 @@ func CompareMaps[K comparable, V any](a, b map[K]V) bool {
222222

223223
return true
224224
}
225+
226+
func UniqueStrings(input []string) []string {
227+
seen := make(map[string]struct{})
228+
var result []string
229+
230+
for _, val := range input {
231+
if _, ok := seen[val]; !ok {
232+
seen[val] = struct{}{}
233+
result = append(result, val)
234+
}
235+
}
236+
237+
return result
238+
}

pro/logic/migrate.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ func MigrateToGws() {
263263
return
264264
}
265265
for _, node := range nodes {
266-
if node.IsIngressGateway || node.IsRelay {
266+
if node.IsIngressGateway || node.IsRelay || node.IsInternetGateway {
267267
node.IsGw = true
268268
node.IsIngressGateway = true
269269
node.IsRelay = true
@@ -274,6 +274,19 @@ func MigrateToGws() {
274274
delete(node.Tags, models.TagID(fmt.Sprintf("%s.%s", node.Network, models.OldRemoteAccessTagName)))
275275
logic.UpsertNode(&node)
276276
}
277+
if node.IsInternetGateway && len(node.InetNodeReq.InetNodeClientIDs) > 0 {
278+
node.RelayedNodes = append(node.RelayedNodes, node.InetNodeReq.InetNodeClientIDs...)
279+
node.RelayedNodes = logic.UniqueStrings(node.RelayedNodes)
280+
for _, nodeID := range node.InetNodeReq.InetNodeClientIDs {
281+
relayedNode, err := logic.GetNodeByID(nodeID)
282+
if err == nil {
283+
relayedNode.IsRelayed = true
284+
relayedNode.RelayedBy = node.ID.String()
285+
logic.UpsertNode(&relayedNode)
286+
}
287+
}
288+
logic.UpsertNode(&node)
289+
}
277290
}
278291
acls := logic.ListAcls()
279292
for _, acl := range acls {

0 commit comments

Comments
 (0)