fix egress HA migration (#3555)

This commit is contained in:
Abhishek K 2025-07-18 12:33:21 +05:30 committed by GitHub
parent f4e6cc94d4
commit e517a0ac66
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 6 deletions

View file

@ -536,21 +536,27 @@ func migrateToEgressV1() {
}
for _, node := range nodes {
if node.IsEgressGateway {
egressHost, err := logic.GetHost(node.HostID.String())
_, err := logic.GetHost(node.HostID.String())
if err != nil {
continue
}
for _, rangeI := range node.EgressGatewayRequest.Ranges {
e := schema.Egress{
for _, rangeMetric := range node.EgressGatewayRequest.RangesWithMetric {
e := &schema.Egress{Range: rangeMetric.Network}
if err := e.DoesEgressRouteExists(db.WithContext(context.TODO())); err == nil {
e.Nodes[node.ID.String()] = rangeMetric.RouteMetric
e.Update(db.WithContext(context.TODO()))
continue
}
e = &schema.Egress{
ID: uuid.New().String(),
Name: fmt.Sprintf("%s egress", egressHost.Name),
Name: fmt.Sprintf("%s egress", rangeMetric.Network),
Description: "",
Network: node.Network,
Nodes: datatypes.JSONMap{
node.ID.String(): 256,
node.ID.String(): rangeMetric.RouteMetric,
},
Tags: make(datatypes.JSONMap),
Range: rangeI,
Range: rangeMetric.Network,
Nat: node.EgressGatewayRequest.NatEnabled == "yes",
Status: true,
CreatedBy: user.UserName,

View file

@ -50,6 +50,10 @@ func (e *Egress) UpdateEgressStatus(ctx context.Context) error {
}).Error
}
func (e *Egress) DoesEgressRouteExists(ctx context.Context) error {
return db.FromContext(ctx).Table(e.Table()).Where("range = ?", e.Range).First(&e).Error
}
func (e *Egress) Create(ctx context.Context) error {
return db.FromContext(ctx).Table(e.Table()).Create(&e).Error
}