Skip to content

Commit e517a0a

Browse files
authored
fix egress HA migration (#3555)
1 parent f4e6cc9 commit e517a0a

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

migrate/migrate.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -536,21 +536,27 @@ func migrateToEgressV1() {
536536
}
537537
for _, node := range nodes {
538538
if node.IsEgressGateway {
539-
egressHost, err := logic.GetHost(node.HostID.String())
539+
_, err := logic.GetHost(node.HostID.String())
540540
if err != nil {
541541
continue
542542
}
543-
for _, rangeI := range node.EgressGatewayRequest.Ranges {
544-
e := schema.Egress{
543+
for _, rangeMetric := range node.EgressGatewayRequest.RangesWithMetric {
544+
e := &schema.Egress{Range: rangeMetric.Network}
545+
if err := e.DoesEgressRouteExists(db.WithContext(context.TODO())); err == nil {
546+
e.Nodes[node.ID.String()] = rangeMetric.RouteMetric
547+
e.Update(db.WithContext(context.TODO()))
548+
continue
549+
}
550+
e = &schema.Egress{
545551
ID: uuid.New().String(),
546-
Name: fmt.Sprintf("%s egress", egressHost.Name),
552+
Name: fmt.Sprintf("%s egress", rangeMetric.Network),
547553
Description: "",
548554
Network: node.Network,
549555
Nodes: datatypes.JSONMap{
550-
node.ID.String(): 256,
556+
node.ID.String(): rangeMetric.RouteMetric,
551557
},
552558
Tags: make(datatypes.JSONMap),
553-
Range: rangeI,
559+
Range: rangeMetric.Network,
554560
Nat: node.EgressGatewayRequest.NatEnabled == "yes",
555561
Status: true,
556562
CreatedBy: user.UserName,

schema/egress.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ func (e *Egress) UpdateEgressStatus(ctx context.Context) error {
5050
}).Error
5151
}
5252

53+
func (e *Egress) DoesEgressRouteExists(ctx context.Context) error {
54+
return db.FromContext(ctx).Table(e.Table()).Where("range = ?", e.Range).First(&e).Error
55+
}
56+
5357
func (e *Egress) Create(ctx context.Context) error {
5458
return db.FromContext(ctx).Table(e.Table()).Create(&e).Error
5559
}

0 commit comments

Comments
 (0)